x264视频压制基础教程

发表于:5 天前 45
[table][tr][td]对于视频的格式转换相信大家都不陌生。
在介绍之前,先需要说几个需要注意的地方:
1.我们传统一般的转换软件,例如一个MP4转MKV
说是MP4格式转换成MKV格式。
其实MP4、MKV指的并不是真正的视频格式,指的是封装视频的容器。
例如一个MP4文件,内部可能包含一个x264的视频轨道和一个FLAC的音频轨道。
其中容器位MP4,视频格式为x264,音频格式为FLAC
为什么视频播放器基本都能放音频呢?
因为视频播放器不光需要解码视频轨道的数据,同时还需要解码音频轨道的数据。
单独放音频则是只有一个音频轨道。

2.x264 10bit与8bit
对于压制来说,10bit就是从10bit版本的x264压出来的视频。
同理8bit就是从8bit版本x264压出来的,8bit的x264压不出10bit视频来。
相比同样的编码10bit压制得到的视频会比8bit略微小一点。
画质来说,8bit更容易产生色块、色带,当然并不是绝对的,还需要以肉眼观看为准。
播放10bit要比8bit需要更高的硬件支持。

3.码率、帧率
码率,也可以叫比特率,就是每秒传输的速度。
比如说一个10G的视频,100分钟,那么码率就是10G/100分钟
帧率,也就是规定视频每秒多少帧,即每秒播放多少张图像。

下面开始介绍基础的x264压制
一般的压制大体可以分为裸压和非裸压。
裸压的意思就是直接将视频通过编码器得到压制的视频。
因为是直接通过编码器,所以裸压的画质不太可能能超过原始片源。
比如说原来视频1G大小,通过压制后变成了500M。
就算参数极其精良,那也是有500M的数据没有了。

很多人觉得用一个命令行看起来要比用一个转换器来压制视频看起来专业。
其实并不是这样的,如果软件的两个转码器是完全一样的,那么压制出来的视频也会是完全一样的。
传统的压制软件只不过是增加了更加友好的人机界面而已,底层跑的东西都是一样的。

那么为什么还会有人选择使用命令行来压制呢?
因为在命令行中可以更好的设置编码的参数,更好的控制压制的参数。
这里推荐小丸工具箱来压制。
小丸工具箱可以省去敲写命令行的时间,将写好的参数直接传递给cmd,然后执行。
对于x264里面有哪些详细的命令,这里就不多说了,x264的注解文档里面有详细的说明。
同时在小丸工具箱里面也有。

下面说一下命令行的写法:
例如我将x264.exe存在了C盘下。
"C:\x264.exe" --crf 15 --level 4.1 --ref 5  -o “D:\01.mkv " "C:01.mp4”
其中:--crf 15 --level 4.1 --ref 5
这些为压制的参数,没有每个参数都单独设置一遍。(每个参数用空格间隔开)
没有输入的参数编码器会按照默认参数来进行编码的。
-o 之后跟着的是输出文件,上面的例子中将在D盘下输出01.mkv文件。
对于输出文件的格式(容器),可以选为mkv和MP4两种,MP4不能进行时时预览。
而mkv可以。也就是说mkv文件可以压制到哪里就放到那里,MP4必须要等完全压制完了以后才能观看。

如果不愿意每次都写代码的话,可以将代码完整的写在一个txt文本中,让将txt后缀更改为bat即可。
需要注意的是所有指令都必须写在一行里面,如果想压制多个文件则需要这么写:
"C:\x264.exe" --crf 15 --level 4.1 --ref 5  -o “D:\01.mkv " "C:01.mp4”
"C:\x264.exe" --crf 15 --level 4.1 --ref 5  -o “D:\02.mkv " "C:02.mp4”
对于非裸压来说,例如加一个AVS滤镜。
那么只需将输入视频换成AVS滤镜文件即可。
"C:\x264.exe" --crf 15 --level 4.1 --ref 5  -o “D:\01.mkv " "C:01.avs”

这里还要说一个误区。
比如说某某制作组压制的,感觉画面很圆润,而另一个制作组压制的看起来很锐利。
很可能是一个加载了柔化滤镜,而另一个加载了锐化滤镜。
对于这两种方式压出来的片子,没有什么对比性可言,自己觉得哪种看着舒服,哪种就是好的。
值得注意的一点是,滤镜加载后,往往是不可逆的操作。
例如先对视频做锐化处理,然后再模糊,和先模糊再锐化得到的视频是不一样的。
所以想要自己压制最好还是能找到DVD、BD镜像这种最好,或者是高码率的裸压版本。
当然自己有原盘是最好的了。

下面接着说压制。
对于x264来说,大致有三种压制方式。
最为常见的是比特率的压制方法
在一般的视频转换软件里面都会有这种。
比如说原始影片的平均码率位1M,那么采用2M的比特率来压制的话,可以说就是无损了。
采用0.5M来压缩的话,那么就是实打实的损失一般数据。
根据比特率来压制的一个优点是得到的视频体积非常容易控制。
缺点就是在有些可以是低码率的地方会造成码率的浪费。

第二种是固定量化值模式(qp)
对于这种模式来说,质量与系数的严格的等级关系,0为无损。
注意无损压制后,得到的体积会非常巨大(大的都难以忍受)

第三种则是固定码率系数模式(crf)
这种也是目前比较流行的编码方式。
crf 0为无损,一般的16以下就很接近无损了。
24以上则是有损越来越严重。
16~24之间,码率变化,但画质变化不明显(不明显和不大是不同的)
一般的压制参数都是在这个范围内。
crf的缺点是无法确定文件的体积,两个原本同样长度的视频,同意体积。
使用同样参数很可能压制出来体积会想差几倍。

对于基础教程来说,最关键的就是参数怎么写了。
在论坛里面很多帖子都有贴出视频的详细参数。
以下面为例:cabac=1 / ref=6 / deblock=1:-2:-2 / analyse=0x3:0x133 / me=umh / subme=9 / psy=1 / fade_compensate=0.00 / psy_rd=0.60:0.00 / mixed_ref=1 / me_range=32 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=18 / lookahead_threads=3 / sliced_threads=0 / nr=0 / decimate=0 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / fgo=0 / bframes=9 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=500 / keyint_min=1 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=17.0000 / qcomp=0.60 / qpmin=0:0:0 / qpmax=81:81:81 / qpstep=4 / ip_ratio=1.40 / aq=2:0.80 / aq-sensitivity=10.00 / aq-factor=1.00:1.00:1.00 / aq2=0 / aq3=0

稍微整理一下:
crf 17
ref 6
subme 9
trellis  2
mbtree 1 (开启,关闭位no-mbtree)
deblock -2:-2
me_range 32
…..等等
然后根据上面就可以得出对应的参数写法:
--crf 17  --ref 6  --me umh --subme 9 --b-adapt 2 --bframes 9 --keyint 500 --min-keyint 1  
--scenecut 40 --direct auto --merange 32 --deblock -2:-2 --psy-rd 0.6:0 --aq-mode 2
--aq-strength 0.8  --threads 18  --trellis 2 --no-dct-decimate --partitions all
找不到地方可以去x264的注释文档内查找。

对于刚刚开始压制的新手来说,知道压制的方法非常简单,难度就是如何根据片子配置出合理的压制参数。
建议多找几个比较有名的压制组,然后看看文件内的详细参数。
然后模仿改进一下。

以下是我个人看法:
视频不见得体积越大就越好。
虽然x264的码率与视频体积是成正比关系的,但是刨除质量因素,还有很多地方可以影响码率。
例如 bframes(B帧)、mbtree等等。
对于crf模式来说,crf是第一重要的因素。
crf16、crf17 16的画质理论上肯定比17要好。
但是通过bframes、mbtree等参数,很可能会让16的体积比17还要小。
体积减小一方面是压缩率的提高,比如bframes
另一方法则是牺牲了某些场景的码率,例如mbtree。
对于mbtree而言,可以用10bit来减弱其副作用。

对于非裸压的视频而言,视频参数可以影响体积,但是对画质(肉眼感官)的影响就没那么巨大了。
滤镜对于画面的影响是最大的。
因而视频只要看着舒服就好。没有太多的必要纠结到底哪个压制组压制的好。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
收藏
送赞
分享

发表回复

评论列表(9)

[table][tr][td]看着感脚很深奥 1.gif
5 天前 回复
[table][tr][td] 1.gif 我只想说高端大气上档次
5 天前 回复
[table][tr][td]
第一次写这种东西,所以里面废话比较多。
5 天前 回复
[table][tr][td]技术贴需顶一记
5 天前 回复
[table][tr][td]技术贴,赞一个,待会空下来就看一看
5 天前 回复
[table][tr][td]
写的比较仓促,比较乱,有错误地方欢迎指正。
5 天前 回复
[table][tr][td]
感觉理科生好多是这样啊。
我一直吐槽英语一直必修 大学语文有些系不用修的情况……
5 天前 回复
[table][tr][td]
写论文写习惯了,本来1K字就能说明白的事情,必须要写1W。 1.gif
和语文其实没什么关系。
PS:我语文超级烂~
5 天前 回复
[table][tr][td]
看几本古文的史书就能治好。
5 天前 回复