【问题标题】:ffmpeg itsoffset doesn't work with pcm audio and raw 264 videoffmpeg itsoffset 不适用于 pcm 音频和原始 264 视频
【发布时间】:2019-01-10 10:05:32
【问题描述】:

我需要使用来自硬件编码器的数据创建一个 MP4 容器。编码器输出 PCM 16 位签名音频和原始 H.264 ES 视频帧。

这个ffmpeg 命令行我有工作,但音频和视频不同步。

从其他帖子中我知道itsoffset only works with video 可能还有doesn't work with -v copy

我已确认应用itsoffset 无效。

这是命令行。有什么建议么?

如果您重新编码视频,建议的帖子itsoffset 可以工作。但这样做需要 CPU 能力并增加延迟。 (那么硬件编码器的意义何在?)

ffmpeg -f s16le -ar 44.1k -ac 2      -i Audio_20190110-165736.pcm 
       -fflags +genpts -itsoffset -5 -i Video_20190110-165736.264
       -c:v copy -c:a aac -b:a 128k 
       -f mp4 -movflags +faststart  output.mp4

编辑我

这是上述命令中引用的the audio/video input files 的链接。

【问题讨论】:

  • 我可以在几天内签到,因为我不在城里,但它的偏移量不仅限于视频。用 VLC 检查输出。
  • 谢谢,告诉我。多个帖子说它不适用于音频。此外,我自己的测试显示,无论是应用于音频输入还是视频输入都没有效果。如果需要,我可以发布源文件。 (为了测试,使用上面的命令行,修改itsoffset并在VLC上播放。总是一样)
  • 为我工作。您应该仅在音频输入之前应用偏移量,并将其设为正数。如果音频“早”,跳过偏移并应用-ss X 来修剪音频的前 X 秒。确保您使用的是最新的 ffmpeg 版本 (>3.4)
  • 确实,音频还早。下次有机会我会试试-ss X。谢谢!
  • 是的!做到了。谢谢。如果您将其复制/粘贴到答案中,我会接受正确的:-) 我还必须使用音频采样率来“拉伸”音频以匹配视频持续时间。音频会在剪辑的开头匹配,但在结尾时会关闭。

标签: video ffmpeg


【解决方案1】:

-itsoffset 适用于所有类型的文件 - 该应用程序与媒体无关。

但是,ffmpeg 在编写输出文件时间戳方面有两个问题:同步各种流和避免负时间戳,具体取决于输出格式限制。为了做到这一点,ffmpeg 可以在应用偏移量后操纵一个或多个流的时间戳。这可能会产生意想不到的效果。

为了可靠地使用它的偏移量,它应该尽可能为正数,最好尽可能应用于纯音频输入。如果希望将audio向前推进,跳过较早的内容,请在音频输入之前使用-ss X。要对视频执行相同操作,您可以执行相同操作,但通常需要转码以获得预期结果。

【讨论】:

    猜你喜欢
    • 2020-12-24
    • 1970-01-01
    • 2019-12-28
    • 1970-01-01
    • 2012-08-12
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多