微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过 mlt xml 传递 ffmpeg 选项

如何解决通过 mlt xml 传递 ffmpeg 选项

我正在查看使用 kdenlive 创建的 MLT XML 文件,并想调整传递给 ffmpeg 的命令行选项。

如果我理解正确,这是我需要编辑的部分:

 <consumer f="mp4" g="15" channels="2" crf="15" progressive="1" target="thetargetfile.mp3" threads="0" real_time="-3" format_options="-stillimage" mlt_service="avformat" vcodec="libx264" ab="256k" movflags="+faststart" bf="2" preset="faster" acodec="aac" in="0" out="18263"/>

现在,我想向 ffmpeg 传递一个额外的标志,在我的例子中 -stillimage 用于输出的静态图像优化(我的文件一个录制的幻灯片演示,所以真的没有理由它有数百 MB 大)。

是否有允许将任意标志传递给 ffmpeg 的选项,或者我将如何执行此类优化?

解决方法

这看起来是一个 XY problem

最近的问题是,如何传递静止图像。 根本问题是,如何减小幻灯片的文件大小。

对于stillimage,它是编码器的一种调整,因此格式为tune="stillimage"。见https://www.mltframework.org/plugins/ConsumerAvformat/#tune-3

但是,这种调整会产生适度的好处,或者根本没有好处。

创建更大文件的两个关键参数是

g="15" ... crf="15"

如此低的 CRF 值是一种浪费,除非分辨率相当低 (g 值,会生成大量关键帧,这会导致文件大小膨胀。对于幻灯片,默认值 250 通常就可以了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。