美文网首页
ffmpeg编码x264

ffmpeg编码x264

作者: gleeeli | 来源:发表于2019-05-31 09:12 被阅读0次

    协助查看编码的工具有: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)

    相关文章

      网友评论

          本文标题:ffmpeg编码x264

          本文链接:https://www.haomeiwen.com/subject/weiitctx.html