ffmpeg - 通过 mlt xml 传递 ffmpeg 选项
问题描述
我正在查看我创建的 MLT XML 文件,kdenlive
并希望调整传递给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 问题。
最接近的问题是,如何传递静止图像。根本问题是,如何减小幻灯片的文件大小。
因为stillimage
,它是编码器的一种调整,所以格式是tune="stillimage"
。见https://www.mltframework.org/plugins/ConsumerAvformat/#tune-3
但是,这种调整将产生适度的好处,或者可能根本没有好处。
创建更大文件的两个关键参数是
g="15" ... crf="15"
除非分辨率相当低(< 360p),否则如此低的 CRF 值是一种浪费。将其保持在 23 左右。在如此低的g
值下,会生成大量关键帧,这会使文件大小膨胀。对于幻灯片,默认值 250 通常就可以了。
推荐阅读
- java - 使用同一个 WebDriver 对象执行多个 JUnit 测试
- java - Spring Boot 应用程序中的 JVM“EXCEPTION_ACCESS_VIOLATION”崩溃
- android - 是否有任何适用于 M-Pesa 支付网关的 android/iOS SDK?
- delphi - Delphi 单元名称的 XMLDoc
- html - CSS绝对定位容器大小自动适应内部相对定位的div
- javascript - laravel 谷歌地图当前位置
- swift - AVAudioSession.mode 在从 swift 3 迁移到 swift 4.2 时导致“源文件中的编辑器占位符”错误
- atom-editor - centos 7中的原子编辑器gcc链接器-lm
- python - 使用 python 从 Outlook 发送电子邮件
- python - 将一个数据框中的列表中的值映射到另一个数据框中的唯一值