原比例如图
原比例如图 | ![]() |
---|---|
裁剪后的比例 | ![]() |
代码:
方法一:极速
ffmpeg -i input.mp4 -vf "crop=1080:750:0:345" -c:v libx264 -preset ultrafast -c:a copy output.mp4
关键参数说明:
vf “crop=宽:高❌y”:定义裁剪区域。
-c:v libx264:使用高效 H.264 编码器。
-preset ultrafast:最大化编码速度。
-c:a copy:直接复制音频流,避免重新编码。
标题如果想自动化处理
import subprocess
# 输入输出路径
input_path = "input.mp4"
output_path = "output.mp4"
# 裁剪参数
width = 1080
height = 850
x = 0#裁剪区域左上角X坐标
y = 200#裁剪区域左上角Y坐标
# 构建 FFmpeg 命令
command = [
"ffmpeg",
"-i", input_path,
"-vf", f"crop={width}:{height}:{x}:{y}",
"-c:a", "copy",
output_path
]
# 执行命令
subprocess.run(command)
方法二:moviepy
from moviepy.editor import VideoFileClip
# 加载视频
clip = VideoFileClip("input.mp4")
# 裁剪视频区域 (x1, y1, x2, y2)
cropped_clip = clip.crop(x1=0, y1=345, x2=1080, y2=1095)
# 导出视频(保留音频)
cropped_clip.write_videofile("output.mp4", codec="libx264", audio_codec="aac")
⏱️ 速度排序(从快到慢)
FFmpeg 命令行
优势:原生 C 实现、硬件加速、最小化开销。
推荐场景:批量处理、自动化脚本、对速度要求高的场景。
Python 调用 FFmpeg
优势:保持 Python 代码结构,适合集成到脚本中。
劣势:子进程启动开销,编码速度略低于纯命令行。
moviepy
优势:Python 封装,适合开发复杂逻辑。
劣势:依赖 FFmpeg 但封装层增加开销,编码速度较慢。
OpenCV
优势:适合图像处理、帧级操作。
劣势:不支持音频、编码器效率低,仅适合小视频或测试。
最后总结:
🚀 为什么 FFmpeg 命令行最快?
- 专为多媒体处理优化
FFmpeg 是专业的多媒体框架,底层采用 C 语言实现,编码效率极高 。
支持 硬件加速 (如 NVENC、VAAPI),大幅提升处理速度。
可通过参数(如 -preset ultrafast)进一步优化编码速度。 - 最小化 I/O 开销
直接读写文件,无需通过 Python 或其他语言的封装层。
可并行处理多个流(如视频和音频)。