2014-03-12 5 views
0

일련의 인코딩 된 패킷, H.264 비디오 및 AAC 오디오가 있습니다. 그들이 올 때, 나는 av_write_frame을 사용하여 비디오 파일에 그것들을 쓰고있다. 타이밍 문제 libav로 오디오 및 비디오를 멀티플렉싱 할 때

은 행에서 다음 비디오의

  • 10 초 비디오 및 오디오의 다음
  • 10 초 비디오의
  • 10 초 다음과 같은 상황을 감안할 때.

모든 것이 잘 섞이며 VLC 또는 QuickTime을 통해 재생할 때 모든 것이 잘 보입니다. Windows Media Player에서 재생하면 오디오가 즉시 재생됩니다.

뭔가 잘못하고있는 것 같지만 오디오 스트림 패킷의 PTS를 확인하면 오디오 스트림의 시간 기준으로 10 초로 설정됩니다.

+0

실제 오디오 앞에 빈 오디오 패킷이 필요할 수 있습니다. Mac 측에서 AVFoundation을 사용하는 유사한 코드를 사용하면 결과 파일의 초기 오디오 PTS는 0이므로 빈 오디오 패킷이 미리 채워집니다. –

+0

어떤 컨테이너를 사용하고 계셨습니까? 일부 muxer는이 유스 케이스를 다르게 처리 할 수 ​​있습니다. – Jack

+0

나는 mov와 mp4를 시도했다. 둘 다 똑같은 문제가있었습니다. –

답변

1

스트림 시작 부분에 빈 오디오 패킷을 삽입하는 것이 가장 좋습니다. 이것이 WMP에서 비디오 재생이 작동하는 유일한 방법입니다. 모든 플레이어가 스트림을 다르게 처리하므로 플레이어 간의 호환성을 보장하는 가장 좋은 방법입니다.