首页 > 视频编解码 > AVC > 高清控MP4格式教程
2015
01-13

高清控MP4格式教程

1、编码器选择如图1:

高清控MP4格式教程 - 第1张  | 资料库吧

      视频源为1080P或者720P的BDRip的电影,视频码率经过多次实践1100Kbps为最佳,既保证了视频的质量,又兼顾了体积,一般体积在900M左右。
格式选则h.264编码,使用二次编码模式,效果会比直接压缩好得多。
      编码器使用x264。有的童鞋就要问了,为啥不用intel视频硬件加速或者N卡CUDA加速呢!因为这两种硬件加速在顾及速度的同时,相同码率下的画面质量远远低于CPU软件编码器x264,大家不信可以自己试试。按照现在的电脑配置,CPU软件编码速度也不会比硬件加速慢太多,还是可以接受的范围。
      X264编码器设置对于画面质量至关重要,iPhone4和4S硬件支持高规格的h.264编码,所以我推荐使用High profile @5.1最高规格,未越狱用户使用itunes导入的话建议使用High@L3.1(注意:如果你需要在PSP上播放的MP4-AVC那么Profile必须选择Main,否则PSP无法播放!);
      预设使用自定义,详细参数稍后讲解;
      优化保持默认;
      GOP保持默认。
      子像素优化,动态预测和分区方式,可选项1-11 该选项选择的数值越大画面质量越好速度越慢!建议选择6或7。

2、进阶视频编码选项如图2:
      点击图1中的高级:

高清控MP4格式教程 - 第2张  | 资料库吧

     我们只更改红色框中的选项,其他请保持默认。
       项B帧是在I帧与P帧之间可插入B帧数量的最大值,范围0-16。 建议:大于1 ,我的设置是3,数值越高编码速度也会越慢!
      项Enable all macroblock type:动态块划分方法,在Level较低时允许使用包括8×8、4×8、4×4划分方法。 建议选择(注意:如果要使用这些划分方法,需要Subpel refinement quality俗称子像素优化设置大于等于5!)以提高画质。
Adaptive spatial transform size:允许动态划分方法在4×4和8x8DCT之间自动选择,并且允许使用i8x8动态划分方法。建议选择(注意:如果不选,那么只是用4x4DCT动态预测!)

Fullpixel motion estimation algorithm对全像素块动态预测搜索的方式,可选项:
  Diamond:菱形搜索,搜索半径为1;
  Hexagonal:正六边形搜索,搜索半径为2;
  Uneven Multi-Hexagon:可变半径六边形搜索;
  Exhaustive:全面搜索;
  Hadamard Exhaustive:用Hadamard方式进行全面搜索,比Exhaustive更慢。
   建议选择Uneven Multi-Hexagon ( Exhaustive和Hadamard Exhaustive实在太慢了,而且质量提高极不明显。除非你不怕浪费时间且追求高质量画面的骨灰级玩家并且很相信自己机器配置,那么就选 Hadamard Exhaustive吧!)
   
    ③ 项Rate-distortion optimal quantization(trellis):Trellis量化,建议开启,该参数能提画面高质量,配置较低的电脑且对画面质量没有要求的用户可以选择 Enabledonly for the final encode,配置较高的电脑且对画面质量有要求的用户可以选择Enabledduring all mode decision;画面质量:Enabledonly for the final encode比Enabledduring all mode decision差!编码速度:Enabledonly for the final encode比Enabledduring all mode decision快!     How AQ distribures bits:自适应量化模式,可以在1帧中不同宏块间重新分配量化值,能提高暗部细节,但会提高码率,建议开启。
      Reduce blocking and blurring in flat and textureareas:AQ强度,减小低细节宏块的量化值,建议选择Normal。

 


 
 

3、分辨率相关设置如图3:

高清控MP4格式教程 - 第3张  | 资料库吧

      iPhone分辨率固定为960×540 (iPad1/2固定为1024×576),刚好满足16:9画面标准。
      帧率设置为23.976,即为电影标准帧率。
     
       ①点击“分辨率”按钮,出现下图:

高清控MP4格式教程 - 第4张  | 资料库吧
     
      缩放算法设置为Lanczos算法,此算法速度较快,而且画面锐利,推荐使用。
   
      查看一下视频源的像素宽高比例是否为16:9,如图4:
高清控MP4格式教程 - 第5张  | 资料库吧

      一部片源是1080P或者720P的标准格式影片的宽高比皆为16:9。但是有的片源也许会是12:5或者其他。如果还是按照iPhone960x540 (iPad1/2@1024×576)分辨率压缩的话就会拉长影像产生画面比例失真,假设以片源宽高比12:5为例,按照图3第②项选择“设置显示宽高 比”并且固定宽高比为16:9,并且画面剪裁设置为0:-140:1920:1080,因为片源是1920×800@12:5的分辨率,要还原成16:9 必须上下都加一道140像素的黑边才能变成1920×1080@16:9的标准比例,也就是说12:5要加黑边才是16:9。关于宽高比算法我解释一 下,12:5要转换成16:9必须要算出视频像素高度值,也就是5*16=12*X,计算X值,公式就是这样。然后加黑边=X-原始像素高度值/2。其他 不标准分辨率影片按照以上方法依次类推。
      完成以上工作画面宽高比就固定下来了,因为加了黑边还方便压缩字幕,使字幕不会遮挡住画面。

二、音频设置
      如图5:

高清控MP4格式教程 - 第6张  | 资料库吧

      音频格式选择成HE-AAC,iPhone可以硬件解码的。
      编码器使用Nero Encoder。
      码率模式设置为CBR固定比特率。
      码率设置为64Kbps。
      其他设置默认。

三、封装容器
      如图6:
高清控MP4格式教程 - 第7张  | 资料库吧

      iPhone对MP4格式支持很好,而且MP4容器完美支持h.264视频和AAC音频。

四、添加字幕
      如图7:
高清控MP4格式教程 - 第8张  | 资料库吧

      红框处添加字幕文件所在路径,渲染方式使用默认,字体可以按照个人爱好调整,其他值使用默认。       

、附录

 

x264的参数设置
      Bitstream profile:压缩时使用规格模式。可选项:Auto、Baseline、Main、High建议:选择Main
(注意:需要在PSP上播放的MP4-AVC必须选择Main,否则PSP无法播放!)
Bitstream level:–Level:表示编、解码等级
P frame Quantitizer:–qp:固定量化模式并设置使用的量化值。
Maximum interval between IDR-frames:–keyint:最大IDR帧间距。一般来说 压 制 动画时,可以增大该值。
默认值:250
Minimum interval between IDR-frames:–min-keyint:最小IDR帧间距。一般来说 压 制 动画时,可以减小该值。
默认值:25
Frames used as predictors in B and P frames:–ref:最大参考帧数,范围0-16。该参数对质量和压缩比都有提高。
建议:大于1
(注意:数值越高速度越慢!)
Maximum B frames between I and P frames:–bframes:在I帧与P帧之间可插 入 B 帧数量的最大值,范围0-16。
建议:大于1
(注意:数值越高速度越慢!)
Adaptive B-frame decision method:–b-adapt:自适应B帧判定模式。0:关闭;1:快速;2:优化。下拉菜单中:0-Off为:关闭,1-Fast为:快速,2-Optimal为:优化。默认值为:1-Fast。
建议:选择2-Optimal
(注意:当该选项选择为2时, Number of B-frames参数设置较高时,编码速度会下降!)。
B-frames used as for predicting:–b-pyramid:允许B帧做参考帧。
建议:选择No
Alpha parameter of deblocking filter:设置环路滤波的AlphaC的参数,范围-6-6。
默认值:0
Beta parameter of deblocking filter:设置环路滤波的Beta的参数,范围-6-6。
默认值:0
(注意:Alpha parameter of deblocking filter和Beta parameter of deblocking filter在X264中的参数为–deblock 0:0前一个0对应Alpha parameter of deblocking filter的参数值,后一个0对应Beta parameter of deblocking filter的参数值!)


熵编码与缓冲

Use CABAC:内容自适应二进制算术编码,高效率的熵编码。关闭该参数时会严重降低画面质量,但是能提高编码速度。(当不勾选该项时该参数显示为:–no-cabac)。
默认值:选择Yes
Minimum quantizer:–qpmin:设置最小量化值,范围0-51。
默认值:10
Maximum quantizer:–qpmax:设置最大量化值,范围0-51。
默认值:51
Quantizer step:–qpstep:设置相邻帧之间的量化值差,范围0-50。
默认值:4
Maximum local bitrate:–vbv-maxrate:平均码率模式下,最大瞬时码率 (与-B设置相同)。
默认值:0
(注意:该参数的取值与在ABR编码模式下的Bitrate(码率)保持一致!)
Averaging period for maximum local bitrate:–vbv-bufsize:码率控制缓冲区的大小,单位kbit。
默认值:0
Initial buffer occupancy:–vbv-init:码率控制缓冲区数据保留的最大数据量与冲区大小之比,范围0-1.0。
默认值:0.9
Quantizer compression percentage:–qcomp:线性量化控制,0.0为固定码率,1.0为固定量化值,只能用于二次压缩和基于质量的压缩模式。
默认值:60
Direct macroblocks prediction:–direct:动态预测方式。可选项:None、Spatial、Temporal、Auto。
默认值:Temporal。
建议:选择Auto
Use weighted prediction for B-frames:–weightb:允许 B 帧加权预测,可以减少相邻 B 帧 质量低的影响,对质量和压缩比都有提高,且对速度影响极少。
建议:选择Yes
(注意:要使该参数生效需要让Maximum B frames between I and P frames设置大于1!)
Enable all macroblock type:动态块划分方法,在Level较低时允许使用包括8×8、4×8、4×4划分方法。
建议:选择Yes
(注意:如果要使用这些划分方法,需要Subpel refinement quality设置大于等于5!)
Adaptive spatial transform size:允许动态划分方法在4×4和8x8DCT之间自动选择,并且允许使用i8x8动态划分方法。
建议:选择Yes
(注意:如果选择No那么只是用4x4DCT动态预测!)


动态预测与分区

Fullpixel motion estimation algorithm:–me:对全像素块动态预测搜索的方式,可选项:
Diamond:菱形搜索,搜索半径为1;
Hexagonal:正六边形搜索,搜索半径为2;
Uneven Multi-Hexagon:可变半径六边形搜索;
Exhaustive:全面搜索;
Hadamard Exhaustive:用Hadamard方式进行全面搜索,比Exhaustive更慢。
建议:选择Uneven Multi-Hexagon
(注意:建议设为Uneven Multi-Hexagon;Exhaustive和Hadamard Exhaustive实在太慢了,而且质量提高极不明显。除非你不怕浪费时间且追求高质量画面的骨灰级玩家并且很相信自己机器配置,那么就选 Hadamard Exhaustive吧!)
Motion search radius:–merange:Fullpixel motion estimation algorithm选择为Uneven Multi-Hexagon或Exhaustive时的搜索半径,最大64。
默认值:16
Ignore chroma in motion estimation:不进行色度的动态预测。
建议:选择No
(注意:当选则Yes时该参数显示为:–no-chroma-me!)
Subpel refinement quality:–subme:动态预测和分区方式,可选项1-9
1:用全像素块进行动态搜索,对每个块再用快速模式进行四分之一像素块精确搜索
2:用半像素块进行动态搜索,对每个块再用快速模式进行四分之一像素块精确搜索
3:用半像素块进行动态搜索,对每个块再用质量模式进行四分之一像素块精确搜索
4:用快速模式进行四分之一像素块精确搜索
5:用质量模式进行四分之一像素块精确搜索
6:进行I、P帧像素块的速率失真最优化(rdo)
7:进行全部帧像素块的速率失真最优化
8:进行I、P帧运动矢量及块内部的速率失真最优化
9:进行全部帧运动矢量及块内部的速率失真最优化
建议:设置为7
(注意:该选项选择的数值越大画面质量越好速度越慢!)


Psy算法与量化值

Psychovisual optimization strength for RDO:–psy-rd 0:0:在rdo中使用Psy算法(一种心理视觉模型)。
默认值:1.0
建议:0
(注意:这个参数对应–psy-rd 0:0中前面的数值!当Subpel refinement quality参数大于等于6时才能使用该这个参数。该参数会影响到Chroma Qp Offset参数。当设置该数设置为1.0时Chroma Qp Offset会自动设置为-2;当该参数设置为0时Chroma Qp Offset会自动设置为0!)
Psychovisual optimization strength for Trellis:–psy-rd 0:0sy-Trellis量化,可提高细节,但会大幅提高码率。
默认值:0.0。
(注意:该参数需要Subpel refinement quality参数大于等于6且Trellis参数大于等于1才能使用。这个参数对应–psy-rd 0:0中后面的数值!)
Mixed reference frame:–mixed-refs:可以在一帧内使用不同参考帧。该参数能提高画面质量,但对速度影响较大。
默认值:不勾选
建议:勾选
Rate-distortion optimal quantization(trellis):–trellis:Trellis量化,对每个8×8的块寻找合适的量化值,需要勾选CABAC才能使用该参数。可选项:
Disabled:关闭(0);
Enabled only for the final encode:只在最后编码时使用(1);
Enabled during all mode decision:一直使用(2)。
默认值:0
建议:开启该参数
(注意:该参数能提画面高质量,配置较低的电脑且对画面质量没有要求的用户可以选择Enabled only for the final encode,配置较高的电脑且对画面质量有要求的用户可以选择Enabled during all mode decision;画面质量:Enabled only for the final encode比Enabled during all mode decision差!编码速度:Enabled only for the final encode比Enabled during all mode decision快!)


量化模式等设置

How AQ distribures bits:–aq-mode:自适应量化模式,可以在1帧中不同宏块间重新分配量化值,能提高暗部细节,但会提高码率。不能在固定量化模式(Const.Quantizer模式)中使用。0:关闭;1:开启。可选项:
Disabled:关闭(0);
Variance:AQ开启(1)。
默认值:Variance AQ(1)
Reduce blocking and blurring in flat and texture areas:–aq-strength:AQ强度,减小低细节宏块的量化值。可选项:Weak、Normal、Strong。
默认值:Normal
Intra luma quantization deadzone:–deadzone-intra:设置intra模式下,亮度死区量化值,范围0-32。
默认值:11
Inter luma quantization deadzone:–deadzone-inter:设置inter模式下,亮度死区量化值,范围0-32;
默认值:21
Performs early skip detection in P-frames:关闭P帧快速跳过的检测。
默认值:Yes
建议:勾选No
(注意:勾选No后视屏参数中显示为:–no-fast-pskip!)
Eliminate DCT blocks with small coefficient:关闭P帧联合编码。关闭该项后可以增加细节,但也会增大体积。
默认值:Yes
建议:不勾选
(注意:不勾选后视屏参数中显示为:–no-dct-decimate!)
Noise reduction:–nr:噪声去除,范围0-100000。
默认值:0
Interlaced video content:–interlaced:启用纯交错模式。用于隔行扫描的源。
默认值:No
Global header:在基于码率的编码模式下 SPS和PPS只会在开头出现一次。许多播放器(如索尼的PSP)需要使用这一功能.默认会让PPS在每个阶段重复检测。
默认值:No
Use access unit delimiters:–aud:使用数据定义符号。
默认值:No
Enable picture timing data:允许画面启用定时数据。
默认值:No
Set SPS and PPS id number:–sps-id:设置SPS和PPS的ID值。
默认值:0
JM-compatible custom quant matrices file:–cqmfile:读取JM格式的外部量化矩阵文件。
默认值:空
(注意:如果设置了该选项x264会自动忽略其他–cqm选项)


编码线程与加速

Threads:–threads:编码线程,使用多线程技术。多核CPU可以选择自己的CPU核数加快编码速度。
默认值:0(自动)
Non-deterministic:–non-deterministic:非确定性。可以稍微减少多线程的开销。
默认值:Yes
Crop overscan setting:–overscan:过扫描线。可选项:
Undefined:不设置
Show:观看
Crop:去除
默认值:Undefined(不设置)
Video format:–videoformat:视频格式,有点像播放制式。
可选项:Component、Pal、Ntsc、Secam、Mac、Undefined.
默认值:Undefined
Full range samples setting:–fullrange:指定颜色全范围样本设置。
默认值:No
Color Primaries:–colorprim:原始色度格式。
默认值:空
Transfer characteristics:–transfer:转换方式。
默认值:空
Color matrix setting:–colormatrix:色度矩阵设置.
默认值:空
Chroma sample location:–chromaloc:色度样本指定,范围0-5。
默认值:0  
Turbo Mode:在多次编码时通过降低Subpel refinement quality参数和Frames used as predictors in B and P frames参数从而加速第一次编码的速度。
可选项:
Disabled:禁止使用加速功能。
Reduce subq:保持Subpel refinement quality参数为用户设置参数不变,降低Frames used as predictors in B and P frames参数为1。
Reduce subq and frameref to 1:将Subpel refinement quality参数和Frames used as predictors in B and P frames参数都降低为1.
默认值:Reduce subq and frameref to 1
(注意:Reduce subq and frameref to 1的编码速度大于Reduce subq大于Disabled;编码质量Disabled优于Reduce subq优于Reduce subq and frameref to 1!)
在音频选项栏中的参数设置及含义如下:
转换音频流:对原始音频进行编码。只有勾选该项后,才会启用编码器对原始音频进行编码。
建议:勾选

打赏
最后编辑:
作者:admin
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。