ffmpeg

cooolr 于 2022-06-08 发布

提取mp3

ffmpeg -i source.mp4 -f mp3 -vn output.mp3

切割音频

-ss时:分:秒.毫秒 处开始切割

-t 持续时间

-to时:分:秒.毫秒 处截止

ffmpeg  -i source.mp3  -vn -acodec copy -ss 00:00:00.00 -t 00:00:30 output.mp3

拼接音频

ffmpeg -i "concat:1.mp3|2.mp3" -acodec copy 3.mp3

压缩视频

ffmpeg -i source.mp4 -b:v 2048k -s 1920*1080 output.mp4

视频切片

# -ss 表示开始位置,-t 表示延长时间
ffmpeg -i input.mp4 -ss 00:01:45 -t 10 output.mp4

合并视频

ffmpeg -i "concat:1.mp4|2.mp4|3.mp4" -c copy output.mp4

无画面视频还原

ffmpeg -i source.mp4 -vcodec libx264 output.mp4

加水印

scale: 水印尺寸

overlay: 水印位置

ffmpeg -i 1.mp4 -vf "movie=logo.png,scale=80:20 [wm]; [in] [wm] overlay=5:5 [out]" 2.mp4 -y

自动缩放 [以一个尺寸为标准406:720,自动适应其他尺寸的]

ffmpeg -i 212x420.mp4 -i logo100.png -filter_complex "[0:v]scale=406:720[bg];[bg][1:v]overlay=15:15" -tune psnr -refs 3 -c:v libx265 -preset veryslow -crf 33 -y output_212x420.mp4

查看视频信息

ffprobe -v error -show_format -show_streams test.mp4

裁剪视频

ffmpeg一些常用命令!

crop的参数格式为w:h:x:y, w、h为输出视频的宽和高, x、y标记输入视频中的某点,将该点作为基准点,向右下进行裁剪得到输出视频。 如果x y不写的话,默认居中剪切

ffmpeg -i 360x640.mp4 -strict -2 -vf crop=360:500:140:0 -y out.mp4

图片亦可

ffmpeg -i logo113.png -strict -2 -vf crop=113:30:13:0 -y logo113-2.png

调整图片

指定长,高度按比例缩放:
ffmpeg -i logo.png -vf scale=110:-1 logo110.png

自适应打水印

ffmpeg -i 212x420.mp4 -i logo300.png -filter_complex "[0:v]scale=1088:1920[bg];[bg][1:v]overlay=65:100"
 -tune psnr -refs 3 -c:v libx265 -preset veryslow -crf 33 -y output_212x420.mp4

libx265编码(HEVC) vs libx264编码(AVC)

达到输出质量保持不变的同时节省存储空间

截取视频第一帧

ffmpeg -i 720x1280.mp4 -vframes 1 720x1280.jpg

FFmpeg命令行语法之-filter_complex

如何使用过滤器

# filter_complex先按宽居中等比例裁剪,再缩放到500x500
ffmpeg -i head_img.jpg -filter_complex "[0:v]crop=iw:iw,scale=500:500" -y output.jpg