2014-03-12 69 views
0

我有一系列的编码数据包,H.264视频和AAC音频。当他们进来时,我正在使用av_write_frame将它们写入视频文件。当音频和视频与libav混音时的问题

给出下面的情况连续视频

  • 10秒钟,然后
  • 10的视频和音频秒钟,然后视频
  • 10秒。

一切都很好,当通过VLC或QuickTime播放时,一切看起来不错。如果我在Windows Media Player中播放,立即播放音频。

看来我做错了什么,但检查音频流数据包的PTS,他们被设置为10秒的时间基础上的音频流。

+0

看起来好像在实际音频之前可能需要空的音频数据包。在使用AVFoundation的Mac端使用类似的代码,生成的文件将其初始音频PTS设置为0,因此它将预填充空音频数据包。 –

+0

你在使用什么容器?有些复用器可能会以不同的方式处理这种用例。 – Jack

+0

我试过mov和mp4。两者都有同样的问题。 –

回答

1

看来最好是在流的开始处注入空音频数据包。这是WMP中播放视频的唯一方法。每个玩家都以不同的方式处理流,这是确保玩家间兼容性的最佳方式。