我不是开发人员或类似的人员,所以我只是从不同的地方复制脚本直到它工作起来,所以请耐心等待......
我正在使用这个脚本,我的所有视频最后都会多出 2 秒:
/ffmpeg -loop 1 -i PathToMyImage -i PathToMyAudio -c:v libx264 -tune stillimage -c:a aac -b:a 192k -pix_fmt yuv420p -shortest PathToMyTheOutputMP4File
例如,如果音频长度为 2 分钟,则最终的视频长度为 2:02
答案1
查看帖子 我的 ffmpeg 输出总是在最后添加额外的 30 秒静音。
接受的答案中的解释如下:
容器(AVI、MP4、MKV)通常以交错方式存储多个流,即几秒钟的视频,然后是几秒钟的音频,依此类推。因此,ffmpeg 在写入时会缓冲来自所有流的数据。
-shortest
作用于相对较高的级别,并在第一个流完成时触发。但是,来自其他流的缓冲数据仍将写入文件。作用于-fflags shortest
较低的级别,并在与足够高的 max_interleave_delta 一起使用时停止写入缓冲数据。
您正在使用-shortest
,但未指定max_interleave_delta
。
答案建议使用-max_interleave_delta 100M
。