如何解决如何将 ffmpeg 命令行转换为 ffmpeg-python 代码?
int
我想在python中将其转换为ffmpeg-python代码。
但不知道该怎么做?
这是我目前所做的:
df.eq
解决方法
您可以添加.global_args('-report')
来测试FFmpeg命令行的正确性。
-report
参数生成一个名为 ffmpeg-20210715-000009.log
的日志文件。
日志文件中的第一个文本行是带参数的 ffmpeg 命令行。
有很好的 ffmpeg-python 示例 here 和 here。
您也可以阅读reference(不长)。
您可以使用记录中的“特殊选项名称”:
具有特殊名称的参数,例如 -qscale:v(可变比特率)、-b:v(恒定比特率)等,可以指定为关键字参数字典,如下所示:
...
.output('out.mp4',**{'qscale:v': 3})
...
您可以使用以下命令(使用“特殊名称”):
(
ffmpeg
.input('0.mp4')
.output('out.mkv',**{'c:v': 'libx265'},preset='fast',crf=28,**{'tag:v': 'hvc1'},**{'c:a': 'aac'},**{'bitexact': None},map_metadata='-1')
.global_args('-report')
.run()
)
在报告的日志文件中,命令行是:
ffmpeg -i 0.mp4 -bitexact -c:a aac -c:v libx265 -crf 28 -map_metadata -1 -preset fast -tag:v hvc1 out.mkv -report
除了输出参数的顺序之外,它与您发布的命令行相同。
为了使用较少的“特殊名称”,您可以用等效名称替换特殊名称:
- 将:
c:v
替换为vcodec
- 将:
c:a
替换为acodec
- 用
tag:v
替换vtag
可能有 **{'bitexact': None}
的替代品,但我找不到。
更新后的代码是:
(
ffmpeg
.input('0.mp4')
.output('out.mkv',vcodec='libx265',vtag='hvc1',acodec='aac',map_metadata='-1')
.global_args('-report')
.run()
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。