ffmpeg itsoffset不适用于pcm音频和原始264视频

时间:2019-01-10 10:05:33

标签: video ffmpeg

我需要使用来自硬件编码器的数据创建一个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的链接。

1 个答案:

答案 0 :(得分:0)

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

但是,ffmpeg在编写输出文件时间戳方面有两个问题:同步各种流以及根据输出格式约束避免负时间戳。为了做到这一点,ffmpeg可以在应用偏移后处理一个或多个流的时间戳。这会产生意想不到的效果。

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