我的ffmpeg输出总是在最后增加30多个沉默

问题描述 投票:0回答:1

这是我用来将1个音频和1个图像合并为1个视频的代码/参数。出于某种原因,无论来源如何,它都会在输出视频的末尾增加30秒的静音。

我在Win10 x64上运行它,安装了最新的ffmpeg。我已经检查了代码,但无法确定它使沉默的位置。

ffmpeg -y -loop 1 -framerate 2 -i "some.png" -i "with.mp3" 
-c:v libx264 -tune stillimage -c:a aac -b:a 192k -pix_fmt yuv420p -shortest "result.mkv"

输出不应包含额外30秒的静音。它应该在音频耗尽时结束。

我应该补充一点,我从一些网站复制了大部分参数,并且OP似乎使用它很好,所以我不确定这是否只是我的问题。

windows ffmpeg albumart
1个回答
0
投票

使用

ffmpeg -y -loop 1 -framerate 2 -i "some.png" -i "with.mp3" -c:v libx264 -tune stillimage -c:a aac -b:a 192k -pix_fmt yuv420p -shortest -fflags +shortest -max_interleave_delta 100M "result.mkv"

容器(AVI,MP4,MKV)通常以交错的方式存储多个流,即几秒的视频,然后是几秒的音频,等等。因此ffm​​peg在写入时缓冲来自所有流的数据。

-shortest处于相对较高的水平,并在第一个流完成时触发。但是,来自其他流的缓冲数据仍将写入文件。当使用足够高的max_interleave_delta时,-fflags shortest处于较低级别并停止写入缓冲数据。

© www.soinside.com 2019 - 2024. All rights reserved.