Ubuntu18.04 x264命令行实操

1 源码下载编译

https://code.videolan.org/videolan/x264/-/branches
克隆命令失败,这里采用的是官网的最新stable版本

tar -xvf x264-stable.tar.gz
cd x264-stable
./configure
make -j 4

2 基本参数介绍

2.1 profile参数详解

从低到高分别为:Baseline、Main、High。
  Baseline(最低Profile)级别支持I/P 帧,只支持无交错(Progressive)和CAVLC,一般用于低阶或需要额外容错的应用,比如视频通话、手机视频等;
  Main(主要Profile)级别提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),同样提供对于CAVLC 和CABAC 的支持,用于主流消费类电子产品规格如低解码(相对而言)的mp4、便携的视频播放器、PSP和Ipod等;
  High(高端Profile,也叫FRExt)级别在Main的基础上增加了8x8 帧间预测、自定义量化和更多的YUV 格式(如4:4:4),用于广播及视频碟片存储(蓝光影片),高清电视的应用。

  • baseline
  • main
  • high
  • high422
  • high444

2.2 tune参数详解

tune的参数主要配合视频类型和视觉优化的参数,或特别的情况。如果视频的内容符合其中一个可用的调整值又或者有其中需要,则可以使用此选项,否则建议不使用(如tune grain是为高比特率的编码而设计的)。

film: 电影、真人类型;
animation: 动画;
grain: 需要保留大量的grain时用;
stillimage: 静态图像编码时使用;
psnr: 为提高psnr做了优化的参数;
ssim: 为提高ssim做了优化的参数;
fastdecode: 可以快速解码的参数;
zerolatency:零延迟,用在需要非常低的延迟的情况下,比如电视电话会议的编码。

2.3 preset参数详解

preset的参数主要调节编码速度和质量的平衡。

  • ultrafast
  • superfast
  • veryfast
  • faster
  • medium
  • slow
  • slower
  • veryslow
  • placebo

2.4 速率控制

QP

量化参数(Quantization Parameter,QP)控制着压缩大小。QP越大压缩率越高同时质量越低,QP越小压缩率越低同时质量越高。在H.264和H.265中,QP的范围是0-51间的整数。你可以很容易的在x264和x265中设置固定QP来编码。

ABR

平均比特率(Average Bitrate,ABR)x264的主要开发者之一说你应该永远不要使用它。为什么?因为编码器不知道后面还未编码的内容,所以它不得不猜测如何达到给定码率。这意味着码率要一直变化,尤其是在开始时。对于 HAS-type流,这会导致在短时间内质量巨大波动。

CBR

恒定码率(Constant Bitrate,CBR)输出文件必须是MPEG-2 TS文件,因为mp4不支持NAL填充。注意这种模式对于简单的视频会浪费带宽,但是它保证整个流的码率一致。你可以在这里找到更多用例。在某些应用中使用这种模式是有意义的,但是你可能希望在可能的时候码率更低。

2-Pass ABR

如果允许编码器两遍(或更多)编码那么它就可以预先估计未来还未编码的内容。它可以在第一遍编码是计算编码代价,然后在第二遍编码是更高效的利用比特。这种模式使得在特定码率下输出的质量最好。

CRF

Constant Rate Factor (CRF)CRF可以保持整个视频流质量恒定。在H.264和H.265中,CRF取值为0到51间的整数(和QP类似)。x264默认值是23,x265默认值是28。CRF增减6会导致码率减半或加倍。对于VP9,CRF取值范围0到63,推荐值为15-35。

VBV

VBV(Video Buffering Verifier)对于VBV可以确保码率不超过某个最大值。这对于流媒体非常有用,你现在可以确定你不会发送比你承诺的更多的比特。VBV可以和2-pass VBR(在两遍编码中都使用)或CRF一起使用。

3 命令行实践

3.1 查看帮助

这里查看详细帮助,里面列举了基本命令包括参数的使用范围,很详细。

x264 --fullhelp

3.2 输入文件

根据帮助文档支持几种格式输入:YUV4MPEG,Avisynth,libav* formats
输入文件生成,这里采用FFmpeg 生成输入文件,支持的类型比较少,采用*.y4m格式文件。

ffmpeg -y -t 5 -i Titanic.ts -pix_fmt yuv420p Titanic.y4m

3.2 输出文件

根据文档输出支持的文件格式包括:.264,.mkv,.flv, .mp4

3.3 基本命令

#生成的yuv文件
./x264 -o Titanic.yuv Titanic.y4m
#生成264文件
./x264 -o Titanic.264 Titanic.y4m
#控制码率
x264 -B 1024 -o Titanic.264 Titanic.y4m
#控制质量
x264 -crf 12 -o Titanic.264 Titanic.y4m
#控制压缩率
x264 --qp 12 -o Titanic.264 Titanic.y4m

x264 --profile baseline --preset superfast --bframes 0 --vbv-maxrate 1024 --crf 23 -o Titanic.264 Titanic.y4m

3.4 参考文献

  1. https://zhuanlan.zhihu.com/p/250585488
  2. https://blog.csdn.net/hutianyou123/article/details/77834789
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值