- 格式转换
ffmpeg -i INPUT.flv OUTPUT.mp4
- 编码转换
ffmpeg -i INPUT.mp4 -c:v libx265 OUTPUT.mp4
//软件编码H.265:libx265
//软件编码H.264:libx264
//硬件编码H.265:hevc_videotoolbox
//硬件编码H.264:h264_videotoolbox
//H.265压制懒人版(视频硬件编码,码率15M,音频直接复制):
ffmpeg -i INPUT.mp4 -c:v hevc_videotoolbox -tag:v hvc1 -profile:v main -level 5.1 -b:v 15000K -c:a copy OUTPUT.mp4
- 压制H.264视频(使用该指令可以压缩出比较清晰,而且文件转小的H.264视频文件)
ffmpeg -threads 4 -I INPUT.mp4 -r 29.97 -vcodec libx264 -s 480x272 -flags +loop -cmp chroma -deblockalpha 0 -deblockbeta 0 -crf 24 -bt 256k -refs 1 -coder 0 -me umh -me_range 16 -subq 5 -partitions parti4x4+parti8x8+partp8x8 -g 250 -keyint_min 25 -level 30 -qmin 10 -qmax 51 -trellis 2 -sc_threshold 40 -i_qfactor 0.71 -acodec libfaac -ab 128k -ar 48000 -ac 2 OUTPUT.mp4
- 拼接两段视频
准备一个待拼接的文件列表file.txt,格式如下
file 'A.mp4'
file 'B.mp4'
使用如下命令拼接:
ffmpeg -f concat -safe 0 -i file.txt -c copy concat.mp4
- 裁剪一段视频时长
ffmpeg -i before.mp4 -vcodec copy -acodec copy -ss 00:00:00 -to 00:39:00 after.mp4 -y
- 常用的参数
-c:v copy //视频编码(直接复制)
-c:a copy //音频编码(直接复制)
-b:v 15000K //视频码流(15M)
-b:a 15000K //视频码流(15M)
-vf scale=1920:1080 //设置分辨率(注意等比例)
-crf 28 //CRF模式(仅软件编码),数字越小画质就越好,其它参数相同的情况下,数字每减少6,文件增大一倍,建议H.264的值为23,H.265的值为28
-threads 16 //多线程(软件编码时有效,建议最多请求16个)
-preset ultrafast