ffmpeg编码x264

协助查看编码的工具有:Elecard、Bitrate Viewer、ffprobe

 

x264参数.png

x264参数1.png

prest的参数有:ultrafast 、superfast、veryfast、faster、fast、medium、slow 代表不同的速度,越慢质量越好

转码参数为ultrafast,转码速度为4.26倍速
./ffmpeg -i test2.mp4 -vcodec libx264 -preset ultrafast -b:v 2000k output264.mp4

tune调优编码:
直播编码推流时tune的参数zerolatency将会提升效率

profile(档次)与level:
BaseLine、Extented、Main、High、Hight10等

 

x264编码profile参数.png

Leve的影响,以下为部分截图:

 

level参数的影响.png

每50帧设置一个GOP间隔生成60秒的mp4视频,也就是控制多少帧有一个关键帧。有利于切片
./ffmpeg -i test2.mp4 -c:v libx264 -g 50 -t 60 output.mp4

利用sc_threshold解决场景切换会强制插入GOP问题
./ffmpeg -i test2.mp4 -c:v libx264 -g 50 -sc_threshold 0 -t 60 -y output.mp4

不希望出现B帧:
./ffmpeg -i test2.mp4 -c:v libx264 -x264opts “bframes=0” -g 50 -sc_threshold 0 output.mp4

控制I帧、P帧、B帧的频率与规律,可通过控制GOP中B帧的帧数来实现,p帧的频率可以通过x264的参数b-adapt进行设置

在GOP中每2个P帧之间存放3个B帧:
./ffmpeg -i test2.mp4 -c:v libx264 -x264opts “bframes=3:b-adapt=0” -g 50 -sc_threshold 0 output.mp4

总结:B帧越多,同码率清晰度将会越高,但编码复杂度越高,合理用B帧对于清晰度与码率的平衡尤其重要。

CBR恒定码率,VBR可变码率。

控制码率波动:
-b:v、maxrate、minrate 最大码率与最小码率

./ffmpeg -i test2.mp4 -c:v libx264 -x264opts “bframes=10:b-adapt=0” -b:v 1000k -maxrate 1000k -minrate 1000k -bufsize 50k -nal-hrd cbr -g 50 -sc_threshold 0 output.ts

分析命令:
设置B帧的个数,每2个P帧直接包含10个B帧
设置视频码率为1000kbit/s
设置最小和最大码率为1000kbit/s
设置编码buffer大小为50KB(过大过小会影响码率)
设置H.264的编码HRD信号形式为CBR
设置每50帧一个GOP
设置场景切换不强行插入关键帧(sc_threshold)


 

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值