裁剪/调整视频的性能比命令行版本慢得多
作者: listix创建于 2026年8月23日更新于 2026年8月23日
我使用的 Python 代码是:
stream = ffmpeg.trim(stream, start=start_time, duration=duration)
stream = ffmpeg.filter(stream, "framerate", 23.976)
stream = ffmpeg.filter(stream, "scale", width=720, height=540, flags="lanczos")
video_output = "output_python.mp4"
stream = ffmpeg.output(stream, video_output)
stream = ffmpeg.overwrite_output(stream)
print(stream.get_args())结果为:
['-an', '-i', 'video.mkv', '-filter_complex', '[0]trim=duration=1.0:start=12\\\\:12[s0];[s0]framerate=23.976[s1];[s1]scale=flags=lanczos:height=540:width=720[s2]', '-map', '[s2]', 'output_python.mp4', '-y']
但是,这要花更长的时间。如果我使用这些参数并自己运行它:
time ffmpeg -an -i video.mkv -filter_complex "[0]trim=duration=1.0:start=12\\\\:12[s0];[s0]framerate=23.976[s1];[s1]scale=flags=lanczos:height=540:width=720[s2]" -map [s2] output_code.mp4 -y
________________________________________________________
Executed in 12.88 secs fish external
usr time 169.18 secs 788.00 micros 169.18 secs
sys time 2.05 secs 0.00 micros 2.05 secs速度差距大约是 50 倍。此外,两个文件的 sha1 也不同。我是否在做一些明显错误的事情并注意到这一点呢?
内容来源: kkroening/ffmpeg-python