使用 moviepy 和 ffmpeg 参数剪辑 webm 文件

cliping a webm file using moviepy and ffmpeg parameters

使用 moviepy,我正在尝试 trim 像这样的 webm 文件的一部分:

my_file.write_videofile(name, codec = 'libvpx')

当然,我已经定义了剪辑的开头和结尾等。代码正在返回我想要的片段,但是,我注意到文件的质量有所下降。 我没有在任何地方调整文件大小或限制文件大小,所以我不明白为什么剪辑的质量比原始剪辑低。

有一些我可以使用的参数,我怀疑这些参数在 moviepy 中设置为默认值以提高视频处理速度,但 moviepy 的文档没有说明它们:

ffmpeg_params :

Any additional ffmpeg parameters you would like to pass, as a list of terms, like [‘-option1’, ‘value1’, ‘-option2’, ‘value2’]

有人熟悉保持原始文件质量的正确参数吗?作为替代方案,是否有人熟悉 trim webm 文件的任何其他库?

下面是两张显示质量差异的图片。第一个是 trimmed 文件的一帧,第二个是与原始文件大致相同的帧。

谢谢

您要查找的参数是"bitrate"(出于某种原因我在文档中省略了它,它将在下一个版本中修复)。如果你不提供,ffmpeg有个默认值,确实很低。

myclip.write_videofile("test_1.webm", bitrate="50k") # low quality.
myclip.write_videofile("test_2.webm", bitrate="50000k") # high quality.

顺便说一句,您还可以用`audio_bitrate='50k'调整音频的比特率。比特率为 ffmpeg 提供了比特率的上限,但大多数情况下,当您提供“50000k”时,实际比特率将低于“50000k”。 50000k 提供质量不错的视频,但请记住,webm 仍然是一种有损格式。