ffmpeg 转码过程中参数含义
frame= 649 fps= 73 q=28.0 size= 3072kB time=00:00:25.88 bitrate= 972.4kbits/
frame= 694 fps= 74 q=28.0 size= 3328kB time=00:00:27.68 bitrate= 984.9kbits/
frame= 732 fps= 74 q=28.0 size= 3584kB time=00:00:29.20 bitrate=1005.5kbits/
frame= 771 fps= 74 q=28.0 size= 3840kB time=00:00:30.76 bitrate=1022.7kbits/
frame= 812 fps= 74 q=28.0 size= 3840kB time=00:00:32.40 bitrate= 970.9kbits/
frame= 852 fps= 74 q=28.0 size= 4096kB time=00:00:34.00 bitrate= 986.9kbits/
frame= 889 fps= 74 q=28.0 size= 4352kB time=00:00:35.48 bitrate=1004.8kbits/
frame= 926 fps= 74 q=28.0 size= 4608kB time=00:00:36.96 bitrate=1021.3kbits
- frame: 编码的帧数量
- fps:每秒编码的帧数
- q:质量因子
- size/ Lsize:视频和音频编码后的大小,即基本等于视频和音频 之和
- time:输出帧的显示时间
- bitrate:输出视频的比特率
- dup:输入帧重复(duplicate)的数量
- drop:输入帧丢弃(drop)的个数
- speed:编码速度
ffmpeg 码率控制
在使用FFmpeg进行视频编码时,控制码率是一个重要的参数,它影响输出视频文件的大小和质量。以下是一些控制码率的常用方法:
使用 -b:v 设置视频的平均比特率。例如,将视频码率设置为2000kbit/s:
ffmpeg -i input.mp4 -b:v 2000k output.mp4
使用 -minrate 和 -maxrate 设置视频的最小和最大比特率,以防止码率波动超过这些限制。例如,设置最小码率为1500kbit/s,最大码率为2500kbit/s:
ffmpeg -i input.mp4 -b:v 2000k -minrate 1500k -maxrate 2500k output.mp4
使用 -bufsize 设置码率控制缓冲区的大小。缓冲区有助于平滑码率波动,但也会影响编码器的响应速度和文件的实时特性。例如,设置缓冲区为1000kbit:
ffmpeg -i input.mp4 -b:v 2000k -bufsize 1000k output.mp4
使用 -qscale 设置常量质量。这会影响输出的视频质量,但不会改变码率。例如,设置常量质量为20:
ffmpeg -i input.mp4 -qscale 20 output.mp4
使用 -crf 设置常量速率因子。这是控制输出质量的常用方法,其中CRF值越低,输出质量越高,码率也越高。例如,设置CRF值为18:
ffmpeg -i input.mp4 -crf 18 output.mp4
选择码率控制方法时,需要权衡输出文件的大小和质量需求。通常,在保证视频质量的前提下,降低码率可以减少文件大小,而增加码率可以提升视频质量。
qmin qmax 最小和最大量化因子
-qmin <数值> 设定最小质量,与-qmax(设定最大质量)共用,比如-qmin 10 -qmax 31