【发布时间】: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。谢谢! -
是的!做到了。谢谢。如果您将其复制/粘贴到答案中,我会接受正确的:-) 我还必须使用音频采样率来“拉伸”音频以匹配视频持续时间。音频会在剪辑的开头匹配,但在结尾时会关闭。