# 剪辑

# 裁剪图像

请注意,剪切视频将影响质量。除非必要,请勿剪切

# 语法
ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4
# crop 裁切 w  h x  y 矩形的宽度 高度  x坐标 y 坐标
ffmpeg -i input.mp4 -filter:v "crop=640:360:160:90" output_crop.mp4

裁切区域会限制在视频区域内

crop

# 剪切视频

# -ss 指定开始时间 默认为0
ffmpeg -i input.mp4 -ss 30 output_cut_30s_to_end.mp4
# -t  指定持续时间 单位为秒 也可以使用hh:mm:ss格式指定
ffmpeg -i input.mp4 -t 30 output_cut_start_to_30s.mp4
ffmpeg -i input.mp4 -t 00:00:30 output_cut_start_to_30s.mp4
# 搭配使用 剪切 00:00:30 到 00:01:30
ffmpeg -i input.mp4 -ss 00:00:30 -t 00:01:00 output_cut_30s_to_90s.mp4
# 搭配使用 剪切成多个部分 00:00:00-00:01:00 part.mp4 00:01:00-end part2.mp4
mkdir videos
ffmpeg -i input.mp4 -t 00:01:00  ./videos/part1.mp4 -ss 00:01:00 ./videos/part2.mp4

# 剪切音频

# 同理 00:00:30-00:01:30s
ffmpeg -i input.mp3 -ss 00:00:30 -t 00:01:00  output_cut_30s_to_90s.mp3
# 同理 00:00:00-00:01:00 part.mp3 00:01:00-end part2.mp3
mkdir audios
ffmpeg -i input.mp3 -t 00:01:00  ./audios/part1.mp3 -ss 00:01:00  ./audios/part2.mp3

# 设置视频宽高比

# aspect 16:9 4:3 16:10
ffmpeg -i input.mp4 -aspect 4:3 output_aspect_4:3.mp4

# 添加封面到音频

# 提取音频
ffmpeg -i input.mp4 -vn input.mp3
# 提取图像
ffmpeg -i input.mp4 -r 1 -f image2 ./images/image-%3d.png
# 复制图像
cp  ./images/image-001.png  ./input.png  -rf
ffmpeg -loop 1 -i input.png -i input.mp3  output_one_image.mp4
# -loop 1 表示图片无限循环
# shortest 表示音频结束,输出视频就结束

# 合并视频

# join.txt
file ./videos/part1.mp4
file ./videos/part2.mp4
ffmpeg -f  concat  -i join.txt -c copy ./videos/merge.mp4
# 如果提示  join.txt: Operation not permitted 添加 -safe 0
ffmpeg -f  concat -safe 0  -i join.txt -c copy ./videos/merge.mp4

# 调整速度

# 两倍速
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output_0.5pts.mp4
# 0.25倍速
ffmpeg -i input.mp4 -vf "setpts=4.0*PTS" output_4.0pts.mp4