windows - 我的 ffmpeg 输出总是在最后添加额外的 30 秒静音

标签 windows ffmpeg albumart

这是我用来将 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 似乎可以很好地使用它,所以我不确定这是否只是我的问题。

最佳答案

利用

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)通常以交错方式存储多个流,即几秒钟的视频,然后是几秒钟的音频,等等。因此,ffmpeg 在写入时会缓冲来自所有流的数据。
-shortest以相对较高的级别运行,并在第一个流完成时触发。但是,来自其他流的缓冲数据仍将写入文件。 -fflags shortest当与足够高的 max_interleave_delta 一起使用时,在较低级别上起作用并停止写入缓冲数据。

关于windows - 我的 ffmpeg 输出总是在最后添加额外的 30 秒静音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55800185/

相关文章:

android - 如何使用 MediaStore.Audio.Albums.ALBUM_ART 显示专辑封面?

swift - 在 iOS13 中更改 UIImagePickerController 的 NavigationBar 标题

windows - 使用 Msys2 为 mingw 安装 Rust 和 Cargo 的分步说明?

windows - 检测尚未与无线网络建立任何连接的无线计算机

c++ - 转换失败!管道中带有自定义 exe 的 FFMpeg

FFmpeg 幻灯片 concat 仅输出最后一张图片

c++ - Winsock 2 地址信息 * 结果?

java - 从 Java 在 Mac 中启动外部安装程序应用程序

java - FFmpeg - 过滤器覆盖有一个未连接的输出

android - 获取音乐播放器 Android 的专辑封面