X264参数详解

1、预设值

        preset: fast/slow,fast一般用于实时通讯,要求速度;slow一般用于点播,保证质量

tune: 质量相关,比如:用于电影、动画等不同

2、帧相关参数

        keyint/min-keyint,keyint 设置gop

        scenecut: 用于场景切换

        bframes: B帧的数量,一般是3帧

        ref:参考帧的数量

no-deblock/deblock(滤波器):去块化,一般指解码后视频看起来还有一些块状模糊,这时我们可以使用deblock进行平滑处理

no-cabac:是否使用cabac熵编码

3、码流相关参数

        Qp 关乎量化器,比crf码流大而且与bitrate/crf 互斥

        Bitrate,关注码流,无法控制质量

crf,关注质量,默认是23,数越低越好

4、编码分析

        Partitions(宏块类型) p8x8,b8x8,i8x8,i4x4...

        Me 运动评估算法,钻石、六边形算法...

5、输出

        SAR 设置输出的宽高比

        fps 帧率

        level 

举例:输出:

         ffmpeg -vsync -async(代表音视频同步) 1 -i xxx.flv

        -b:v 200K(码流) -maxrate 250K(最大码流250K) -bufsize 400K

        -pix_fmt yuv420p

        -vcodec libx264 -coder 1(采用cabac熵编码)

        -refs(参考帧数量) 3 -bf(b帧数量) 5

        -flags +loop -deblock -1:-1(采用滤波器)

        -partitions i4x4+i8x8+p8x8(宏块分析) -me_method umh(运动估计算法)

        -g(gop) 60 -keyint_min(最小帧组) 30

        -qmin(最小量化值) 0 -qmax (最大量化值)69 -diff(帧与帧的量化差别数) 2

        out.mp4

参考资料:

        http://www.chaneru.com/Roku/HLS/X264_Settings.html(具体参数的含义)

        https://sites.goole.com/site/linuxencoding/x264-ffmpeg-mappng(x264与FFmpeg参数的对照)

你可能感兴趣的:(音视频)