转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]
本文链接:http://www.php-oa.com/2009/07/28/mencoder_h264.html
x264在着非常好的压缩比,在同等码流上比别的视频清楚多了,如下是最常常用参数优化.使用的2次pass
1st pass
mencoder -sws 9 -oac faac -faacopts mpeg=4:br=160:object=2 -srate 48000 -channels 2 -vf crop=708:480:12:0,harddup,scale=480:272,unsharp=l3x3:0.5,dsize=-1 -ovc x264 -ffourcc H264 -x264encopts bitrate=900:turbo=2:keyint=300:keyint_min=6:scenecut=40:frameref=4:bframes=3:b_adapt=2:nob_pyramid:deblock:deblock=-1,0:cabac:qp_step=6:qcomp=0.8:direct_pred=auto:weight_b:partitions=all:8x8dct:me=umh:me_range=24:subq=6:chroma_me:mixed_refs:trellis=2:psy-rd=0,0:nofast_pskip:nodct_decimate:aq_mode=2:aq_strength=1:level_idc=22:nointerlaced:nopsnr:nossim:threads=auto:pass=1
"INPUT.mpg" -o "OUTPUT.avi"
2ed pass
mencoder -sws 9 -oac faac -faacopts mpeg=4:br=160:object=2 -srate 48000 -channels 2 -vf crop=708:480:12:0,harddup,scale=480:272,unsharp=l3x3:0.5,dsize=-1 -ovc x264 -ffourcc H264 -x264encopts bitrate=900:turbo=1:keyint=300:keyint_min=6:scenecut=40:frameref=4:bframes=3:b_adapt=2:nob_pyramid:deblock:deblock=-1,0:cabac:qp_step=6:qcomp=0.8:direct_pred=auto:weight_b:partitions=all:8x8dct:
me=umh:me_range=24:subq=6:chroma_me:mixed_refs:trellis=2:psy-rd=0,0:nofast_pskip:nodct_decimate:aq_mode=2:aq_strength=1:level_idc=22:nointerlaced:nopsnr:nossim:threads=auto:pass=2 "INPUT.mpg" -o "OUTPUT.avi"
deblock=<−6−6>,<−6−6>(这样的码率deblock用-2,-1不好,建议-1,0)
第一个参数是AlphaC0(默认值:0)。该参数调整的是H.264内循环反块效应滤镜所用的阈值。第一,该参数调整的是滤镜对于任何一个像素所允许产生的变动的最大数量。第二,该参数影响的是将被滤除的边界两侧差别的阈值。正数值使更多的块效应损伤得到削减,但同时也会损伤画面细节。
第二个参数是Beta(默认值:0)。该参数影响的是画面细节的阈值。细节很多的块将不被过滤,因为滤镜产生的平滑效果会比原来的块效应效果更加明显。
滤镜的默认行为几乎总是带来最优的质量,所以最好要么不调这个选项,要么只对其作少量调整。然而,如果你的源视频素材已经有一些块效应或噪声效果你想要去除,那么可能将这个选项调高一点是个不错的办法。
AVC格式内置了一个极其实用的特性,它可以消除马赛克和其他人为编码的瑕疵,而这些问题曾经使得AVC之前的那些格式饱受困扰。它在AVC的编码中相当实用,由于AVC是构筑在这个滤镜之上的事实以及你可能经历到的在视频中存在过多的马赛克以及人为编码的瑕疵(糟糕的片源),一般来说在正常情况下不要禁止这个去块插件。然而,因为它会占用大量的解码时间,如果解码器又不支持在播放时手动关闭它,你可能会考虑(在编码时)禁止掉它以获得尽可能快的解码速度(Xbox、掌上电脑等等)。
应该有这样的认识:即由于人类的视觉系统(human visual system (HVS))在空间上比较复杂的场景中往往会把瑕疵和马赛克当作该场景的固有细节,因此去块插件的使用在原则上常常会存在争议。因为x264会默认地除去这些人为编码的痕迹,人类的视觉系统便会以为这是“损失了细节”,即使从技术角度来讲,x264的细节处理其实相当精确——甚至在相近的比特率之下的表现有过之而无不及。事实上,已经有共识认为(Doom9论坛的编解码器性能对比也很好地支持这一观点)x264确实是在致力于比ASP(未去马赛克的)编解码器在相近的比特率之下更精确地保持更多的细节。然而,去块插件对人为编码瑕疵的去除仍然为人类的视觉系统所干涉并认为它移除了本该存在的画面细节,而存在这些虚假的“细节”的画面正是人们在不使用去块插件的情况下所习惯了的。对于那些认为在编码视频中的噪点可以得到一个更为柔和和舒服的画面的人们来说,去块插件对这些噪点的去除也并不讨巧。这些偏好依据各人的情况是有所不同的,所以请努力地发现什么样的设定对你的眼睛和需求来说是最合适的。
Alpha去块阈值“strength”(P)帮助决定需要多强的去块效果来除去马赛克。Beta去块阈值“threshold”(见上图的Q)确定有多少马赛克需要去除。这个值设定得越高,x264就会将越多的视频部分理解为马赛克(如果设定得过高,会将过多的视频部分判断为马赛克),因而会进行更多的去块操作。当然,如果你对原材料“清洗”(比喻去块)得不够,在那些没有被清洗到的地方就会有污渍(比喻马赛克)残留下来——就这样按照清洗衬衫的方法来考虑它——而如果你清洗的强度不够,有些污渍便不会完全消失。然而,如果你洗得过多,力量过强,你就会毁掉这件衬衫而不是清洗污渍了——会有很难看的褪色,并且纹理和细节都被抹掉了。
==========================================
turbo(仅用于二阶段编码)(建议pass1里加入turbo=2)
使用更快的算法并禁用大量占用CPU的选项以使第一阶段编码的运行大幅加快。该选项可能稍稍降低全局峰值信噪比(大约为0.01dB)并且改变单个帧的类型以及稍稍改变该帧的峰值信噪比(最多至0.03dB)。
==========================================
(no)b_pyramid(建议关掉)
允许B帧作用预测其它帧的参照帧。例如,考虑3个连续的B帧:IO B1 B2 B3 P4。不用这个选项的话,B帧的样式与MPEG-[124]中的一样。这样这些帧将以IO P4 B1 B2 B3的次序编码,而所有的B帧都是从IO和P4中预测出来的。使用了这个选项后,这些帧将编码为IO 04 B2 B1 B3。 B2与前面所述的一样,但B1是从IO和B2预测出来的,而B3是从B2和P4预测出来的。这种方式通常产生稍许好一些的压缩效果,而几乎没有运行速度上的开销。然而,这是一个实验性的选项:没有完全调整好并且可能不能总是起作用。要求bframes
>= 2。缺点:将解码延迟量增加至2帧。
==========================================
(no)b_adapt(建议设置成b_adapt=2)
自动决定何时使用B帧以及使用多少,数量上限为以上所指定的最大值(默认值:开启)。如果禁用了这个该项,那么将使用的B帧数为最大值。
==========================================
me=<name>(建议umh和hex)
选择全像素运动估计算法。dia
菱形搜索,半径为1(运行快)hex
六边形搜索,半径为2(默认值)umh
非均匀的多六边形搜索(运行慢)esa
彻底性搜索(运行非常慢,而且不比umh好多少)
==========================================
subq=<0−9>(建议6-7)
调整亚像素优化质量。该参数控制的是运动估计决策过程中质量与速度的权衡。 subq=5能比subq=1多压缩掉10%。 0
对于所有候选宏块类型运行全像素精度的运动估计操作。然后选择 SAD 指标最佳的类型(比 subq=1 快,不推荐,除非你需要极其快速的编码)。 1
执行值为 0 时的操作,然后优化这种类型的运动值,使其达到快速四分之一像素模式的精度(运行快)。2
对于所有候选宏块类型运行半像素精度的运动估计操作。然后选择 SATD 指标最佳的类型。然后优化这种类型的运动值,使其达到快速四分之一像素模式的精度 3
与2相似,但采用较慢的四分之一像素优化模式。4
对于所有候选宏块类型运行快速四分之一像素精度的运动估计操作。然后选择 SATD 指标最佳的类型。然后完成对于此种类型的四分之像素模式的优化操作。5
在选择最佳类型之前,对于所有候选宏块类型运行最佳质量的四分之一像素精度的运动估计操作。同时也使用 SATD 指标优化双向宏块中使用的两个运动矢量,而不是重用向前和向后搜索中找到的矢量。6
启用I帧和P帧中宏块类型的码率失真优化模式。(默认值)7
在所有帧中启用宏块类型的码率失真优化模式。8
启用运动矢量的码率失真优化模式,以及I帧和P帧中的内部预测模式。9
启用运动矢量的码率失真优化模式,以及所有帧中的内部预测模式。(最佳)
以上内容中,“所有的候选宏块类型”并不恰恰意味着所有已启用的类型: 4×4、4×8、8×4只有当8×8比16×16好时才尝试采用
==========================================
(no)mixed_refs
允许每个8×8或16×8的运动部分独立地选取一个参照帧。不用这个选项的话,整个宏块必须采用同一个参照帧。要求frameref>1。
==========================================
frameref=<1−16>建议(4-6)
B帧和P帧中的预测器里所使用的之前出现的帧的数量(默认值:1)。该选项在动画是有效果的,但在实况视频素材中,大约6个参照帧之后参照帧的优化效果急剧下降。该选项对于解码速度没有影响,但确实增加了解码所需的内存量。某些解码器最多只能处理15个参照帧。=<1−16>(建议4-6)
==========================================
bframes=<0−16> (建议3)
I帧和P帧之间连续出现的B帧的最大数量(默认值:0)
==========================================
partitions=<list>
启用一些可选的宏块类型(默认值:p8x8,b8x8,i8x8,i4x4)。 p8x8
启用p16x8、p8x16、p8x8类型。p4x4
启用p8x4、p4x8、p4x4类型。 p4x4只在subq >= 5,并且分辨率低时才推荐使用。b8x8
启用b16x8、b8x16、b8x8类型 i8x8
启用i8x8类型。除非启用了8x8dct,否则i8x8没有任何效果。i4x4
启用i4x4类型。all
启用以上所有类型。
none禁用以上所有类型。
不管这个选项设为何值,p16x16、b16x16和i16x16三种宏块类型总是启用的。
其思想是找到最适合描绘画面某一区域的宏块类型和尺寸。例如,全局摇摄镜头较好以16×16的块来表示,而小型移动物体较好以小一点的块来表示。
===========================================
scale[=w:h[:ilaced[:chr_drop[:par[:par2[:presize[:noup[:arnd]]]]]]]]
使用软件缩放器(速度慢)缩放图像并执行YUV<−>RGB色彩空间转换(另参见−sws)。
<w>,<h>
缩放后的宽/ 高值(默认值:原始的宽/ 高值)
注意: 若使用了−zoom,并且底层的滤镜(包括libvo)无法执行缩放,则其默认设置为 d_宽/ d_高!
0:缩放后的d_宽/ d_高
−1:原始的宽/ 高
−2:使用另一个尺寸的值和缩放前的宽高比计算w/h。
−3:使用另一个尺寸的值和原始的宽高比计算w/h。
−(n+8):与以上的−n相似,但舍入尺寸值至最接近的16的倍数
<ilaced>触发隔行扫描视频的缩放方式。
0:关闭(默认)
1: 打开
<chr_drop>色度信息的跳过方式 chroma skipping
0:使用所有可用输入扫描行上的色度信息。
1: 只使用每隔2个输入扫描行上的色度信息。
2: 只使用每隔4个输入扫描行上的色度信息。
3: 只使用每隔8个输入扫描行上的色度信息。
<par>[:<par2>](另参见−sws)根据−sws中所选的缩放器类型设置缩放参数。
−sws 2 (双立方插值):B(雾化)和C(色斑)
0.00:0.60 默认值
0.00:0.75 VirtualDub中的“精确双立方插值”
0.00:0.50 Catmull-Rom插值
0.33:0.33 Mitchell-Netravali插值
1.00:0.00 立方式B-插值
−sws 7 (高斯模糊):锐化度(0(柔和) − 100 (锐利))
−sws 9 (LANCZOS迭代):过滤长度(1−10)
<presize>
缩放至预设尺寸。
qntsc: 352×240 (NTSC四分之一大小屏幕)
qpal: 352×288 (PAL四分之一大小屏幕)
ntsc: 720×480 (标准NTSC)
pal: 720×576 (标准PAL)
sntsc: 640×480 (正方形像素NTSC)
spal: 768×576 (正方形像素PAL)
<noup>不允许放大时超出原始尺寸。
0:允许放大时超出(默认)。
1: 若有一个尺寸超出其原始值时则不允许。
2: 若有两个尺寸均超出其原始值时则不允许。
<arnd>垂直缩放器使用精确数值舍入,这可能比默认的舍入方式快速或缓慢。
0:禁止精确数值舍入(默认)
1:允许精确数值舍入(默认)
-vf scale=512:-3:-vf表示视频格式,scale是缩放,512:-3表示强制将宽度设置为512,高度写为-3表示保持高宽比,也可以设置为 -1或-2,具体表示什么,有兴趣的可以尝试一下。如果要强制转化为统一大小,可以直接写-vf scale=640:480,但笔者个人建议用-3来保持高宽比。-vf里还有expand和crop参数,例如:-vf scale=512:384,expand=512:384:::1,crop=512:384:0:0,expand表示膨胀,crop表示裁剪;
分享到:
相关推荐
它支持大量的编码格式和协议,如H.264、VP9、AAC、Opus等,并且能够处理各种容器格式如MP4、MKV、AVI等。FFmpeg的强大之处在于它的灵活性和可扩展性,可以通过命令行参数进行高度定制,满足各种复杂的转换需求。 ...
在多媒体处理领域,FFmpeg和MEncoder是两个非常重要的视频转码工具,广泛应用于各种视频格式的转换、编码和解码。这两个工具都是基于命令行的,因此它们提供了高度的灵活性和控制,使得用户能够根据具体需求进行定制...
- **视频编码器**:mencoder 支持多种视频编码器,如libmpeg3(MPEG-1/2)、libxvid(Xvid)、libx264(H.264)等。libx264 是目前广泛使用的高质量、高压缩率的编码器,适用于创建高清视频。 - **音频编码器**:...
5. **版本更新**:“h264enc-8.7.7”这个版本意味着该工具经过了多次迭代和优化,能够应对更多编码场景,提升编码质量和稳定性。 使用h264enc时,我们通常需要解压下载的“h264enc-8.7.7”压缩包,然后按照文档指示...
其中,`x264`是`mencoder`支持的一种高级编码器,专门用于H.264/AVC视频流的编码。本篇将重点介绍如何使用`mencoder`结合`x264`编码器进行视频编码,特别是针对`x264`编码选项的设置。 #### 二、x264编码器简介 `x...
使用mencoder,你可以将视频文件转换为不同的编码格式,如MPEG-1、MPEG-2、XviD、DivX、H.264等。此外,还可以调整输出视频的分辨率、比特率、帧率等参数,以适应不同的设备或网络条件。 3. **音频处理** 不仅...
它支持大量编码格式,包括常见的H.264、VP9、AAC等,并且可以处理网络流。 2. **ffplay.exe**:这是一个简单的媒体播放器,使用FFmpeg库进行解码和显示。它可以实时播放本地文件或网络流,对于测试和调试很有帮助。...
- 在进行视频转码时,注意选择合适的编码参数,如比特率、质量控制参数等,以平衡输出文件的质量和大小。 - 转码过程中可能会丢失一些元数据或音视频同步信息,因此在处理时需格外小心。 - mencoder虽然功能强大,但...
与FFmpeg相比,MEncoder更专注于视频的编码工作,提供了大量的视频编码选项和优化设置,适合对视频质量有较高要求的用户。`mencoder.exe`同样是Windows环境下的可执行程序,用于执行视频编码任务。 在使用这两个...
FFmpeg和mencoder是两个广泛使用的音视频转码工具,它们在数字媒体处理领域具有重要地位。FFmpeg是一个全面的开源项目,包含了多种用于处理音视频的库和工具,而mencoder则是MPlayer播放器的一部分,专为视频转码...
mencoder input.vob -o output.mp4 -ofps 25 -ovc lavc -lavfopts vcodec=h264 ``` 尽管FFmpeg在许多方面都超越了MEncoder,但两者都有其独特的优点和适用场景。根据项目需求和资源限制,开发者可以选择更适合的工具...
FFmpeg和MEncoder是两个非常强大的开源多媒体处理工具,它们在音视频编解码领域具有广泛的应用。在Windows环境中,这两个工具通常以可执行文件(.exe)的形式存在,允许用户通过命令行进行操作,无需复杂的安装过程...
FFmpeg支持众多的编码格式和编解码器,如H.264、VP9、AAC、Opus等,使得它能够处理大部分市面上的视频和音频格式。其强大的功能使其成为开发者处理多媒体数据的首选工具。 Mencoder则是MPlayer项目的附属工具,主要...
mencoder是一款强大的视频编码工具,支持多种输入格式,并且拥有丰富的参数设置和快速的编码速度。 首先,确保mencoder已经安装: ```bash sudo apt-get install mencoder ``` 接下来,通过以下命令检查系统支持的...
- 通常选择H.264,因为它提供了高效的压缩率和良好的画质,适合MP4-AVC格式。 - **容器**: - MP4是常用选择,兼容性好。如果需要高兼容性和大容量,可以选择Matroska (MKV)。 3. **复制视屏流**: - 如果勾选...
FFmpeg是一个强大的跨平台的命令行工具,用于处理音频和视频文件,而mencoder是MPlayer的一部分,同样用于视频编码和转换。 首先,让我们理解FFmpeg的基本概念。FFmpeg支持多种视频、音频格式的编码、解码、转码、...
在提供的"mencoder转换工具及使用说明"文件中,应该包含了详细的步骤和参数解释,帮助用户正确使用mencoder。这可能包括但不限于: 1. **系统需求**:确保您的系统已安装了mencoder和所有必要的依赖库。 2. **安装...
1. **编码与解码**:FFmpeg支持大量的音频和视频编码格式,如H.264、VP9、AAC、Opus等,可以将一种格式的文件转换为另一种格式。 2. **格式转换**:用户可以通过简单的命令行参数将视频文件从MP4转换为MKV,或者从...
对于初学者,建议查阅Mencoder的官方文档或在线教程,以便更深入地了解每个参数的具体含义和使用方法。 总之,Mencoder是一个功能强大的视频处理工具,通过熟练掌握它的使用,您可以高效地进行视频编辑和优化工作。...