【问题标题】:Timing Issues When Muxing Audio and Video with libav使用 libav 混合音频和视频时的时序问题
【发布时间】:2023-03-31 08:53:02
【问题描述】:

我有一系列编码数据包,H.264 视频和 AAC 音频。当它们出现时,我正在使用 av_write_frame 将它们写入视频文件。

连续给定以下情况

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

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

好像我做错了什么,但是检查音频流数据包的PTS,它们根据音频流的时基设置为10秒。

【问题讨论】:

  • 似乎在实际音频之前可能需要空的音频数据包。在使用 AVFoundation 的 Mac 端使用类似代码,生成的文件的初始音频 PTS 为 0,因此它预填充了空音频包。
  • 您使用的是什么容器?一些复用器可能会以不同的方式处理此用例。
  • 我试过 mov 和 mp4。两者都有同样的问题。

标签: ffmpeg libav


【解决方案1】:

似乎最好在流的开头注入空音频包。这是在 WMP 中播放视频的唯一方法。每个播放器处理流的方式不同,这是确保播放器间兼容性的最佳方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 2012-11-19
    • 2013-05-22
    • 2019-08-31
    • 2014-06-04
    • 2020-07-08
    • 2018-07-31
    相关资源
    最近更新 更多