悲剧的非官方x264…
非官方x264,针对intel优化的。参数subme=10的时候,mediainfo无法读取编码参数。
然后还发现无论是官方/非官方的x264.exe,subme哪怕你写一个100都不会报错,官方版本是直接取最大10,非官方由于无法读取,也就不知道到底是多少了...
悲剧,重新压...
非官方x264,针对intel优化的。参数subme=10的时候,mediainfo无法读取编码参数。
然后还发现无论是官方/非官方的x264.exe,subme哪怕你写一个100都不会报错,官方版本是直接取最大10,非官方由于无法读取,也就不知道到底是多少了...
悲剧,重新压...
CPU都是如下:
首先是x264_x86_r1400_QxSSSE3_icc_techouse.7z这个版本,据jaychu讲针对core duo2优化的。
1st pass:
encoded 189743 frames, 10.04 fps, 11381.67 kb/s
2nd pass
encoded 189743 frames, 7.20 fps, 11992.19 kb/s
下面准备用官方的x264.exe试试看。当然,版本也是1400.
很多都是个人理解,参照了hdbits、x264wiki的一些文章。斜线为自己的理解,可能有问题哦。
Crop (0,0,-0,-0)
分别代表左上右下。顺时针。
如果是奇数,那么就需要用
spline36resize(1920,816,0,131,0,-133)
也就是把resize和crop写到了一起。但是可能会造成质量损失。
让切片接近OAR
OAR=(高/宽)*1280
一行行的来解释。有些可能megui里面并没有列出。
新的x264(r1177)里面加入的。和速度有关系,建议值是你能容忍的最慢的值。
会在presents之后,其他所有参数之前被应用。根据你的源来确定,如果不确定你的源,那就不指定(default)。
可能参数:file,animation,grain,psnr,ssim,fastdecode,zerolatency,touhou..
在结尾加上--pass 1自动加上了特定的一些参数。在最慢的么present下无效。参见wiki。
设置x264输出中, IDR-frame之间的最大间隔。
什么是IDR-frame?IDR-frame就是该帧的另一边没有可参照的帧。IDR-Frame需要I-Frame,但是不是所有的I-Frame都是IDR-Frame。大多数情况x264会把场景的第一个帧做为IDR-Frame。
建议值:
Blu-Ray设置为framerate的10被,其他设置为5~10倍。
IDR-frame之间的最短长度。
建议及默认值:
默认25,建议默认或者1xframerate。
默认以及建议值
未设置。作用完全禁止adaptive I-frame decsion
设定I/IDR帧放置的阀值。x264会计算每个帧和前面帧的不同,如果不同值低于“scenecut”,那么就确定为是一个scenecut,如果同时又少于min-keyint帧数,那么就随后放置一个I-frame,否则会放置一个IDR-frame。这个值越高,增加scenecut被侦测的几率。
默认值40
默认3。设定x264最多能同时使用多少个b-frame。
如果没有b-frame,那么x264的帧类型如下:IPPPPP...PI,如果--bframe 2,那么就最多两个连续的P可以被替换为B,比如IBPBBPBPPPB..PI
B-frame和P-frame的区别在于B可以对将来的帧使用动态预测(motion prediction)。可以显著的提高压缩率。平均质量通过pbratio参数控制。如果可能的话,用b-adapt来强制x264使用固定的B-frames。
默认以及建议值
如果是--b-adapt 2,--bframes越高会显著的降低压缩速度,但是没有太多的好处。一般设置为2~5。Blu-Ray限制了最大B-frames到3。
如果不是--b-adapt 2,那么使用--bframes 16(怎么这么拗口...:lol),也就是最大值。这是最合适以及最快的压制参数。
即:--b-adapt影响到--b-frame的选择。
B帧可以/也不可以参照另一个B帧,假设后面的B帧是另一个B帧的参考帧。这就是B-frame的两种形式,比方叫做"B"和"b"。
要确定压制的时候使用多少个B-frame,参考x264 log中的'consecutive B-frames',
设定B-frame放置决定算法。控制x264如何决定是放置一个B还是一个P帧。多pass下时,该参数仅对Pass1有效,因为在pass1中frame types就决定了。
建议参数
2,如果你不怕耽误时间的话。
控制代替P-frames的B-frames的可能性。大于0的数值增加B-frames的权重,小于0的相反。不是数值型的,只是主观的度量。数值从-100~+100,100并不代表保证所有的P-frame会被替代--使用--badapt 0效果更好。
建议参数
0,除非你认为你比x264更好的控制。
允许用B-frame作为其他帧的参考帧。如果没有这个设定那么只能用I/P帧。虽然I/P用起来效果更好(IP的画质好),但是B-frame同样可用。
作为参考帧的B-frame会得到P-frame以及正常B-frame的一般quantizer(容器,编码器?)。在b-pyramid工作前,至少需要2歌B-frame。
参数有3种,
默认以及建议参数
设置为Normal。如果是Blu-Ray,使用None或者Strict。
关闭cbac并且使用老式的cavlc。降低效率。
默认以及建议值
未设定。建议使用CBAC。
控制DPB(Decoded Picture Buffer)的大小。从0~16。这个值代表每个P-frame可以用来作为参考帧的个数。根据B-frames本身是否被用作参考帧,它用到的会少1~2个。最小值为1。
需要注意的是ITU-T(国际电信联盟)标准限制了DPB以及每个level的ref数目。如果遵守Level 4.1标准的话,1080p和720p的大小分别是9以及4。如果视频高度非标准高度,应该使用高一点的ref值。Blu-Ray和HD-DVD用到的就是Level 4.1标准,并且是众多播放器比如xbox,ps3所支持的最高标准。这也是为什么设置错误的ref会造成无法硬解的原因。
公式:
建议及参考值
4~6。增加会造成质量降低以及速度损失。非常大的ref并不有效,但是16的ref在动画,视频游戏捕获,CGI记忆其他场合比较有效。
有个列表
两种Deblocking,称为Deblocking strength以及Deblocking threshold,分别对应Alpha Deblocking以及Beta Deblocking(官方名称)。
Lower values of Beta Deblocking apply less deblocking to more flat blocks with details present (but more deblocking to blocks without details), while Higher values cause more deblocking to be applied to less flat blocks with details present.
默认没有设置。x264的interlaced encoding比progressive encoding效率更低。所以最好在压制前反交错一个源,而不是使用interlaced模式。
设定每个帧中的片。并且枪支直角slices。如果设定了slice-max-size或者slice-max-mbs则会覆盖掉slice。
后面两个,设定最大的slice大小(单位字节),包含estimated NAL overhead,以及设定macroblocks中最大的slice大小。两者都和interlaced不兼容。
建议值:
不要使用slice,除非是blu-ray。用4。
默认没有设置。允许constrained intra预测。用于base layer of SVC encodes。
一般称为subme。建议值:8~10。
aq 0.7~1.5。很复杂,后面继续写。
--thread auto即可。但是四合的话,最好是--threads 6....不是很明白。
1080p,8000~14000k
720p,4000~6000k
crf,18~21用于1080p,越低,质量越高。720p,crf18最佳。
首先抄一段hdbits wiki的例子
avis [info]: 1920x800 @ 23.98 fps (225877 frames)
x264 [info]: using cpu capabilities: MMX MMXEXT SSE SSE2 SSSE3
x264 [info]: slice I:19020 Avg QP:14.99 size:135578
x264 [info]: slice P:104481 Avg QP:16.42 size: 63445
x264 [info]: slice B:102376 Avg QP:18.27 size: 25097
x264 [info]: mb I I16..4: 10.3% 61.9% 27.8%
x264 [info]: mb P I16..4: 1.3% 16.4% 5.2% P16..4: 44.0% 21.7% 4.9% 0.2% 0.1% skip: 6.1%
x264 [info]: mb B I16..4: 0.1% 1.3% 0.3% B16..8: 32.7% 2.0% 3.6% direct: 9.0% skip:51.1%
x264 [info]: 8x8 transform intra:67.7% inter:48.0%
x264 [info]: direct mvs spatial:89.3% temporal:10.7%
x264 [info]: ref P 66.7% 17.7% 9.1% 3.8% 2.8%
x264 [info]: ref B 81.9% 12.0% 3.7% 1.4% 0.9%
x264 [info]: kb/s:10000.5
这是MeGUI压制完成后的log。
我们关注3~5行(黑色部分)。Average Quantizer代表Transparency to the source,其中0代表1:1,也就是和源一摸一样。
好的数值:
如果想将x264运行于低优先级,那么写好bat之后,使用
start /b /low x264.exe
即可。如果已经使用了/b /low,那么就没必要在bat里面再让x264.exe使用地优先级了。
比较的简单。注意如果两个片源老是自动同步帧---而其实根本不是同一帧---我们可以将第一个视频Trim (1,1000),然后再和第二个对比,这样就不会自动同步了。
可用于demuxing,DTS encoding等等。这个似乎可说的不多。eac3to也可以用于合并m2ts,evo,或者解音频,字幕等。不过一般用的都是TSMuxer。
啊啊
Thanks to "GrandDK's x264 Reencode Guide - HDWiki"in hdbits.
使用xml完成。待完成。不多写了。
http://forum.doom9.org/showthread.php?t=118559
:: dotBL0t's X264 Stats Analyzer ::