如何将指定ffmpeg视频裁剪命令转换为ffmpeg-python版本代码
ffmpeg 9:16裁剪命令的Python实现
以下是两种常用的实现方式,和你给出的原生ffmpeg命令效果完全一致:
方案1:subprocess直接调用(推荐,无额外依赖风险)
直接调用系统安装的ffmpeg程序,参数和原命令完全对齐,不需要处理滤镜语法的转义问题,稳定性最高:
import subprocess # 按你的实际路径修改即可 input_file = "/Users/Aaron/lol.mp4" output_file = "/Users/Aaron/Desktop/lol1.mp4" command = [ "ffmpeg", "-i", input_file, "-filter:v", "crop=9/16*ih:ih", "-y", # 可选参数,自动覆盖已存在的输出文件,无需手动确认 output_file ] # 执行命令,可通过返回值排查错误 run_res = subprocess.run(command, capture_output=True, text=True) if run_res.returncode == 0: print("裁剪完成") else: print(f"处理失败,错误日志:{run_res.stderr}")
方案2:使用ffmpeg-python封装库
适合需要频繁拼接多个ffmpeg操作的场景,代码更符合Python写法,需要先安装依赖:pip install ffmpeg-python
实现代码:
import ffmpeg input_file = "/Users/Aaron/lol.mp4" output_file = "/Users/Aaron/Desktop/lol1.mp4" ( ffmpeg .input(input_file) .filter('crop', w='9/16*ih', h='ih') .output(output_file, y=None) .run(capture_stdout=True, capture_stderr=True) )
注意事项
- 两种方案都需要本地提前安装好ffmpeg程序,并且已经添加到系统环境变量中,可在终端执行
ffmpeg -version验证安装状态 - Windows系统下路径建议用原始字符串格式,避免转义问题,比如
r"C:\Users\Aaron\lol.mp4"
内容的提问来源于stack exchange,提问作者bodyanyash
相关产品推荐
相关产品推荐

