AVEncode 板


LINE

转自米饭网 本文主要翻译:mewiki.project357.com/wiki/X264_Settings,同时参考doom9 论坛、 Silky Bible、以及其它互联网资料加以注解。 解释x264命令可选项的用途和使用方法。同执行 x264 --fullhelp 显示顺序。 词汇翻译: macroblock:宏区块。是一种图像压缩的术语。 宏区块是运动预测的基本单位,一张完整的图像(frame)通常会被切割成几个宏区块。 h.264 的宏区块大小是可变的,常用 16x16 pixels。 帮助 X264 内置帮助文档。运行 x264 时带上 --help、--longhelp 或者 --fullhelp 即可看 到帮助信息。三个选项给出的信息一个比一个详细。 输入 使用单一位置参数指定视频源。如: x264.exe --output NUL C:\input.avs x264 --output /dev/null ~/input.y4m 当输入是原始 YUV 数据时,必须告诉 x264 分辨率。同样的还要指定帧率: x264.exe --output NUL --fps 25 --input-res 1280x720 D:\input.yuv x264 --output /dev/null --fps 30000/1001 --input-res 640x480 ~/input.yuv 预置 选项 预设的成套选项,方便、好用、少出错。更详细信息参见 x264.exe --fullhelp Profile 默认值:未设置 限定编码输出流的等级。如果你指定了等级,它将取代全部其它选项,所以使用等级选项 可以得到良好的兼容性。但使用等级选项,就无法使用无损压缩(--qp 0 or --crf 0)。 如果你的播放器仅能支持特定等级的话,就需要指定等级选项。大多数播放器支持高等级 ,就不需要指定等级选项了。 可选项: baseline, main, high. Preset 默认值: medium 选择预设配置需要综合考虑压缩效果和编码速度。 修改 x264 参数顺序:预设配置先於其它选项。 最好设置为可以接受的 slowest。 可选项: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, placebo. 个人体会:slow, slower, verslow 质量基本相当,slow 略差一点。placebo 反而不如 那三个,但速度却慢的多。建议使用 slower。 Tune 默认值: 未设置 对输入内容进行优化。 修改 x264 参数顺序:调优项後於 --preset,但先於其它选项。 如果源内容符合下面的条件,可以使用调优,否则就不要用。 可选项: film(胶片电影), animation(动画片), grain(颗粒感很重的), stillimage(静态图像), psnr(信噪比。参见: http://baike.baidu.com/view/1624289.htm), ssim(结构相似性。参见: http://baike.baidu.com/view/1559204.htm), fastdecode(快速解码。主要用於一些 低性能的播放设备), zerolatency(低时延。主要用於直播等). slow-firstpass 默认值: 未设置 --pass 1 选项隐含把下列参数追加到 x264 命令行末尾: ‧ --ref 1 ‧ --no-8x8dct ‧ --partitions i4x4 (本来有,继续有;本来无,则没有) ‧ --me dia ‧ --subme MIN( 2, subme ) ‧ --trellis 0 可以使用 --slow-firstpass 关闭 --pass 1 这项特性。 注意:使用 --preset placebo 隐含应用 slow-firstpass 选项。 参阅 --pass 选项。 帧类型 选项 「帧」基础知识: 影片可以看作是由一张张连续的图片组成的,每幅图片就是一帧。压缩的视频由3种不同 类型的帧(Intra (I) frames (也叫 key frames),Predictive (P) 和 Bidirectional (B) frames)组成。 特定类型的帧之间可以参考,意思是一幅帧有时仅需保存自身与被参考帧的不同之处即可 。不过参考模式会导致错误延续传播,即 X 帧出错,参考它的 Y帧也会出错,那麽参考 Y 帧的 Z 帧也会出错。。。,後果很严重,所以视频里一定要有不能被参考的帧。 I 帧需要包含完整图像信息,所以压缩的少,体积大。在视频播放中,跳跃式快进(快退 )时需要 I 帧,有的视频快进後黑屏,就是在新的播放位置还没有找到 I 帧引起的。 P 帧保存自身与 I 帧或其它 P 帧之间的差异。P 帧可以被当作参考帧,它需要包含足够 多的信息,由於采用运动补偿压缩技术,P 帧比 I 帧保存的内容少。 B 帧也是保存自身与其它帧之间的差异,它既可以参考它前面的帧也可以参考它後的帧( 播放顺序),但是它不能作为参考帧(特殊的"B-frame pyramid" 除外)。H.264 支持 "B-frame pyramid",这种特殊的 B 帧可以被另外的连续 B 帧参考,除此之外,B 帧不 能被其它帧参考。B 帧的压缩最大,包含的信息最少。 图像质量高、压缩率高的视频就是I、P、B 帧的完美结合。 Keyint 默认值: 250 设置 x264 输出流中两个IDR 帧(也叫 keyframes 关键帧。IDR英文原意为「瞬间解码刷 新」)之间的最大间隔帧数。也可以定义「无限」从而不再插入非场景转换 IDR 帧。 IDR 帧就像视频流里的『分隔符』,位於它前後(播放顺序)的帧之间是不能相互参考的 。而且 IDR 帧也是 I 帧,因此它也不能参考其它帧。这些特性意味着它们可以作为视频 跳跃播放时的新开始点。 一般情况下 I 帧比 P 或 B 帧体积大的多(在低运动场景中常常是10倍或更大),当和 低 VBV 设置并用时会给码率控制带来极大的麻烦。关於这种情况,参考 --intra-refresh。 默认设置适合大多数视频。但当用於蓝光、广播、生活录像或其它专业录像时,可能需要 较小的 GOP (图像组。一个GOP就是一组连续的画面。)长度(常常为fps 的1倍左右) 。 参照: --min-keyint, --scenecut, --intra-refresh min-keyint 默认值: auto (取 --keyint/10 和 --fps 两个中的最小值) 设置两个 IDR 帧之间的最小间隔帧数。 阅读 --keyint 了解 IDR 帧。非常小的关键帧范围会造成错误放置 IDR 帧(例如:频闪 场景)。选项限定在每个 IDR 帧之後放置 IDR 帧的最小间隔。 min-keyint 最大允许值为 --keyint/2+1 推荐: Default, 或 1倍的framerate. 参照: --keyint, --scenecut no-scenecut 默认值: 未设置 完全关闭自适应 I 帧决策。 参照: --scenecut scenecut 默认值: 40 设置放置 I 或 IDR 帧的阀值(阅读:场景变换检测)。 x264 为每个帧计算一个度量来评估它与它前面的帧有多大不同。假如值小於 scenecut 设定值,意味着发生场景切换。如果此帧与前面最後一个 IDR 帧间隔小於 --min-keyint 就放置一个 I 帧,否则就放置一个 IDR 帧。过大的 scenecut 值会导致 产生大量的场景切换。欲详细了解场景切换的比较过程,请参考 http://forum.doom9.org/showthread.php?t=121116 scencecut 设置为0时相当於--no-scenecut。 推荐: Default 参照: --keyint, --min-keyint, --no-scenecut intra-refresh 默认值: Off 禁用 IDR 帧,取而代之的是 x264 对位於 --keyint 位置的帧采用宏区块内编码方式。 这样做的好处是可以获得比使用 IDR 帧更恒定的帧大小,对要求低时延的视频流更有利 。同时也增加了丢包後的视频流恢复能力。这个选项会降低压缩率,因此仅在确有必要时 才使用。 个人理解:IDR 帧虽然也是 I 帧,即本身是自解码帧,不需要参考其它帧来解码。但是 IDR 帧内部各宏区块之间是互相参考的,如果传输过程中某宏区块丢失,会导致整帧无 法解码。 Bframes 默认值: 3 设置 x264 可以使用的最大连续 B 帧数量。 如果没有 B 帧,典型的 x264 流的帧类型就像:IPPPPP...PI。如果设置 --bframes 2, 两个连续的 P 帧将被 B 帧代替,就像:IBPBBPBPPPB...PI。 除了 B 帧可以参考後面的帧(播放顺序)外,B 帧和 P 帧差不多。向後参考可以极大提 高压缩率。B 帧的平均质量由 --pbratio 控制。 有趣的现象: ‧ x264 偶尔需要区分两种不同类型的 B 帧。一个『B』帧可以参考另一个用於 被其它帧参考的 B 帧(见 --b-pyramid,这里的 『b』指的是参考了别的B帧的帧,而 B 不是。假如你看到既『b』又有『B』,就是这个意思。当不需要区分的时候,用『B』 代表所有的 B 帧。) ‧ 欲详细了解 x264 压缩时如何把候选帧确定为 P 或 B 帧,请参考 http://article.gmane.org/gmane.comp.video.ffmpeg.devel/29064。这种情况下,帧类 型看起来就像(播放顺序)(如果 --bframes 3):IBBBPBBBPBPI。 参照: --no-b-adapt, --b-bias, --b-pyramid, --ref, --pbratio, --partitions, --weightb b-adapt 默认值: 1 设置放置 B 帧决策算法。控制 x264 如何在 P 或 B 帧之间抉择。 0.关闭。总是选择 B 帧。与老的 no-b-adapt 选项相同。 1. 快速算法,较快的,当 --b-frames 值较大时速度会略微加快。采用这种模式时,基 本都会使用 --bframes 16。 2.最优算法,较慢的,当 --b-frames 值较大时速度会大幅度降低。 注:当采用多遍编码时,仅需在决定帧类型的第一遍编码中使用。 b-bias 默认值: 0 控制用 B 帧代替 P 帧的可能性。值大於0增加采用 B 帧的可能性,小於0则相反。这个 数没有度量单位。范围从 -100 到 100。值100不保证都是 P 帧,值-100不保证没有 P 帧(真想没有 P 帧可以使用 --b-adapt 0)。 仅当你感觉能比 x264 更好的控制码率的时候采用。 参照: --b-frames, --ipratio b-pyramid 默认值: normal 允许 B 帧作为其它帧的参考帧。不设置,就只能参考 I 或 P 帧。尽管高质量的 I/P 帧 作为参考帧更有价值,但 B 帧也可以作为参考帧。作为参考帧的 B 帧将被量化至 P 帧 和普通 B 帧之间(所谓的半量化)。 --bframes 至少为2时B-pyramid 才开始工作。 压制蓝光时,使用'none' 或 'strict'。 ‧ none: 不允许 B 帧作为参考帧。 ‧ strict: 蓝光标准强制性规定:每个 minigop 中只允许一个 B 帧作为参考帧 。 ‧ normal: 每个 minigop 中允许任意数量 B 帧作为参考帧。 参照: --bframes, --refs, --no-mixed-refs open-gop 默认值: none Open-GOP 是一种提高压缩率的编码技术。有三种模式: ‧ none: 关闭 ‧ normal: 启用 ‧ bluray: 启用。一个较低效率版本的 Open-GOP,当压制蓝光时 normal 模式 不能工作。 一些解码器不完全支持Open-GOP 流,这就是为什麽默认是关闭的。你需要测试播放视频 流的解码器,或者等到Open-GOP 被普遍支持。 Open-GOP 的解释:http://forum.doom9.org/showthread.php?p=1300124 no-cabac 默认值: 未设置 禁用CABAC (Context Adaptive Binary Arithmetic Coder) 流压缩,转而使用较低效的 CAVLC (Context Adaptive Variable Length Coder)。显着降低压缩率(一般为10-20% )和解码能力要求。 ref 默认值: 3 控制 DPB(Decoded Picture Buffer(已经解码图像缓存))大小。范围为0-16。简单的 说,就是每个 P帧可以在它前面多少帧中选取参考帧(B 帧要少1个或者2个,取决於它们 是或否作为参考帧)。最小值是1。 H.264规范限定每个 level 的 DPB 大小。如果遵守 Level 4.1 规范,720p 和 1080p 视 频最大的 refs 值为9和4。 参照: --b-pyramid, --no-mixed-refs, --level no-deblock 默认值: 未设置 关闭 loop filter(环内滤波)。不推荐。 参照: --deblock deblock 默认值: 0:0 控制 loop filter(环内滤波。也叫 inloop deblocker),是 H.264 标准的一部分。就 平衡编码时间与图像质量来说它非常有效。 参考 http://forum.doom9.org/showthread.php?t=109747(楼主帖和 akupenguin 的回 复)来了解 loop filter 参数如何工作。 注:楼主(*.mp4 guy)的描述有误,仔细看 lovelove 的回复。 参照: --no-deblock slices 默认值: 0 设置每帧的分片数量,并且强制矩形分片。 编码蓝光时设为4,除此之外不要使用这个选项,除非你知道你在干什麽。 参照: --slice-max-size, --slice-max-mbs. slice-max-size 默认值: 0 以字节为单位设置切片最大尺寸,包括预估的网络层开销在内。(目前和 --interlaced 不兼容) 参照: --slices slice-max-mbs 默认值: 0 以宏区块为单位设置切片最大数。(目前和 --interlaced 不兼容) 参照: --slices tff 开启隔行编码方式,并指定 top field(顶部图场)在先。x264的隔行编码使用 MBAFF, 不如逐行编码效率高。因此,只有需要在隔行扫瞄设备上播放时才开启隔行扫瞄编码(或 者是视频流在送给 x264 之间无法完成反隔行变换)。隐含应用 --pic-struct。 bff 开启隔行编码方式,并指定 bottom field(底部图场)在先。更多信息见 --tff。 constrained-intra 默认值: 未设置 开启强制内部预测,这是 SVC 编码的基本要求。由於 EveryoneTM 放弃了 SVC, 你也可 以无视这个选项了。 pulldown 默认值: none 『软』胶卷过带(逐行,恒定帧率。之所以叫『软』是因为大部分胶卷过带是硬件实现的 )。更多解释见http://trac.handbrake.fr/wiki/Telecine。可选项:none, 22, 32, 64, double, triple, euro. 除 none 外其它选项隐含应用 --pic-struct。 Telecine(胶卷过带)和 IVTC(inverse telecine。反胶卷过带)实现方法: 电影原本是 24fps 的,如果要在 NTSC 制式的电视上播放,就需要胶卷过带,在此过程 中,会把影片经过 3:2 pulldown 转为 30fps。 把电影原本的 1 2 3 4 四个帧,拆成 1o 1e 2o 2e 3o 3e 4o 4e,每个帧拆成奇数扫瞄 线组成的奇数图场(Odd Field)和偶数扫瞄线组成的偶数图场(Even Field)。重新组 合如下(以 Odd Field First 的顺序) 1o 1e - 2o 2e - 2o 3e - 3o 4e - 4o 4e [ A ] - [ B ] - [ C ] - [ D ] - [ E ] 每两个 Field 再重新组合成一个帧,就变成 [A][B][C][D][E] 五个帧。这样由原本的 4 张变成 5 张,4*6 = 24 => 5*6 = 30,就能从 24fps 转为 30fps。 理解了胶卷过带,再理解 IVTC 就容易了。IVTC,将 30fps 转回 24fps,这样压缩的画 面张数由 30fps 减少为 24fps,少了 20%,等於码率增加 20%,而且画面无交错容易压 缩,所以压出来的画质会好很多。 fake-interlaced 默认值: 未设置 把视频流标记为隔行方式,即使它不是隔行方式编码。允许编码 25p 和 30p 蓝光兼容视 频流。 码率控制 qp 默认值: 未设置 三种可用的码率控制方法之一。以恒定量化值(Constant Quantizer)方式编码。此选项 的参数用於指定 P 帧量化值。I 和 B 帧的量化值由 --ipratio 和 --pbratio 控制。 CQ 模式的目标是恒定的量化值,这就意味着最终文件大小不可知(尽管能用一些方法预 测)。参数 0 表示无损输出。同等的视觉质量下, qp 比 --crf 产生的文件要大。由於 固定量化值的缘故,qp 模式会关闭自适应量化。 本选项与 --bitrate 和 --crf 是互相排斥的,就是三选一的意思。欲详细了解码率控制 ,参见 http://git.videolan.org/?p=x264.git;a=blob_plain;f=doc/ratecontrol.txt;hb=HEAD 。 可以使用 --crf 代替 qp,不过 qp 模式不需要预分析会更快一些。 参照: --bitrate, --crf, --ipratio, --pbratio bitrate 默认值: 未设置 码率控制方法之二。以比特率(bitrate)作为目标的编码方式。最终文件大小可知,但 最终图像质量不可知。x264 把给定的比特率作为总平均值来作为目标,也就是说每帧的 比特率可能不符合给定的比特率,但是总体平均比特率符合给定的比特率。比特率的单位 是 kilobits/sec(8bits = 1字节)。需要注意的是 1 kilobit 是 1000 bits,而不是 1024 位。 这个选项常和 --pass 一起用於2遍编码。 本选项与 --qp 和 --crf 是互相排斥的,就是三选一的意思。欲详细了解码率控制,参 见 http://git.videolan.org/?p=x264.git;a=blob_plain;f=doc/ratecontrol.txt;hb=HEAD 。 参照: --qp, --crf, --ratetol, --pass, --stats crf 默认值: 23.0 最後的码率控制方法:恒定比例因子。(Constant Ratefactor。也叫恒定质量)。qp 的 目标是确定的量化值,bitrate的目标是确定的文件大小,crf 的目标是确定的『质量』 。这个概念就是 crf n 能给人以 qp n 相同的视觉质量,仅仅体积小一些。crf 的单位 是「ratefactor」。 crf 依靠降低『不太重要』帧的质量来达到减小体积的目的。在这里,『不太重要』是指 帧包含复杂或高速运动的场景,在这些地方保持与其它地方相同质量的代价很高(即耗费 比特)且又缺乏可视性(就是正常播放的时候看不清楚的意思),就增加它们的量化值( 量化值越大图像质量越差)。把节省下的比特用到刀刃上。 crf 比2遍编码方式节省时间,因为它少了一次编码。另外,crf 的最终比特率是不可预 测的,即文件大小不可知。使用哪种码率控制方式取决於你。 本选项与 qp 和 --bitrate 是互相排斥的,就是三选一的意思。欲详细了解码率控制, 参见 http://git.videolan.org/?p=x264.git;a=blob_plain;f=doc/ratecontrol.txt;hb=HEAD 。 参照: --qp, --bitrate rc-lookahead 默认值: 40 设置用於 mb-tree 码率控制和 vbv-lookahead 的帧数。最大允许值为250。 对於 mb-tree,增加帧数能得到更好的结果但是会更慢。mb-tree 的最大值是 rc-lookahead 和 keyint 中的最小数值。 对於 vbv-lookahead,增加帧数会更稳定和精确。vbv-lookahead 的最大值是: MIN(rc-lookahead, MAX(--keyint, MAX(--vbv-maxrate, --bitrate) / --vbv-bufsize * --fps)) 参照: --no-mbtree, --vbv-bufsize, --vbv-maxrate mb-tree 的解释:http://baike.baidu.com/view/3098244.html vbv 的解释:http://baike.baidu.com/view/1519233.htm vbv-lookahead 是vbv 预检测。 vbv-maxrate 默认值: 0 设置 vbv 缓存被再充满的最大码率。由於 vbv 缓存充满会造成溢出,为防止溢出发生, 视频的最大码率不能超过 vbv-maxrate。 vbv 降低图像质量,仅在确实需要时再使用。 参照: --vbv-bufsize, --vbv-init 和 vbv 编码建议: http://mewiki.project357.com/wik ... stions#VBV_Encoding vbv-bufsize 默认值: 0 以 kilobits 为单位设置 vbv 缓存大小。 vbv 降低图像质量,仅在确实需要时再使用。 参照: --vbv-maxrate, --vbv-init 和 vbv 编码建议: http://mewiki.project357.com/wik ... stions#VBV_Encoding vbv-init 默认值: 0.9 设置开始播放前 vbv 缓存必须的充满率。 假如小於1,初始填充量为 vbv-init * vbv-bufsize。反之则是单位为 kilobits 的初始 填充量数值。 参照: --vbv-maxsize, --vbv-bufsize 和 vbv 编码建议: http://mewiki.project357.com/wik ... stions#VBV_Encoding crf-max 默认值: 未设置 类似 --qpmax,除了把指定最大量化值改为指定最大比例因子。仅当使用 crf 并且 vbv 有效时起作用。让 x264 即使违反 vbv 约束也不能把比例因子(也叫「质量」)降低到 给定值之下。常用於定制的流媒体服务器。更多信息参见: http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=81eee062a4ce9aae1eceb3befcae855c25e5ec52 参照: --crf, --vbv-maxrate, --vbv-bufsize qpmin 默认值: 0 定义最小量化值。量化值越低,输出越接近输入,到某个量化值,输出看起来就和输入一 样,尽管并不是真的相同。通常没有理由让 x264 在特别宏区块上浪费码流。 当自适应量化开启时(默认开启),提高 qpmin 是不可取的,因为这样会降低帧中平坦 背景区域的画面质量。 参照: --qpmax, --ipratio qpmax 默认值: 51 和 qpmin 相反,定义最大量化值。51是 h.264 规范中可以采用的最大量化值,质量相当 低。默认值相当於禁用 qpmax。假如想控制输出的最低质量,也许你会把它设的低一些( 30-40是你能设的最低值),但不建议调整它。 参照: --qpmin, --pbratio, --crf-max qpstep 默认值: 4 设置两帧之间量化值的最大差值。 ratetol 默认值: 1.0 这是一个双用途参数: ‧ 在 1-pass 编码中,告诉 x265 可以与设定比特率相差百分之几。可以设置为 『inf』来彻底关闭码率溢出检测。最低可设为0.01。设的高些有利於 x264 处理影片末 尾的复杂场景。单位是%(例如:1.0 就是 1% 的比特率偏差)。 许多动作片等,结尾都是火爆场景。但 1-pass 不知道这些,常常会低估影片末尾的码率 需求。inf 参数让编码更像 --crf 模式来缓解这个问题,但文件大小会超标。 ‧ 当 vbv 启用时(例如:使用带 --vbv 前缀的选项),这个设置也影响 vbv 的作用强度。设的值越高,vbv 的波动范围就越大,甚至会有突破 vbv 设置极限的可能 。由此,度量单位可以是任意的。 ipratio 默认值: 1.40 修改 I 帧量化值比 P 帧量化值的平均增加量。值越大生成的 I 帧质量越高。 参照: --pbratio pbratio 默认值: 1.30 修改 B 帧量化值比 P 帧量化值的平均减少量。值越大生成的 B 帧质量越低。不能和 mbtree(默认开启)一起使用,mbtree 会自动计算 B 帧最佳量化值。 参照: --ipratio chroma-qp-offset 默认值: 0 给色度的量化值增加一个偏移量。可以是负值。 当开启 psy-rd 和/或 psy-trellis 时,x264 会自动减小偏移量来提高亮度质量,造成 色度质量下降。默认从偏移量中减2。 注意:在 q29以下,x264 对亮度和色度以相同量化值进行编码。超过29後,色度量化值 的增长率小於亮度,直至亮度达到 q51 和 色度达到 q39。这是 H.264 标准要求的。 aq-mode 自适应量化模式 默认值: 1 不用 AQ,x264 倾向於给缺乏细节的场景分配较少的码流。AQ 用来把可用的码流更好的 分配给所有的宏区块。此选项用於改变 AQ 重新分配码流的范围: ‧ 0:关闭 AQ。 ‧ 1:在整个视频范围和帧内部分配。 ‧ 2:根据帧的比重自动分配(实验性质)。 参照: --aq-strength aq-strength 自适应量化比重 默认值: 1.0 让 AQ 向低细节(平坦、单调)宏区块倾斜。不允许负值。 参照: --aq-mode pass 默认值: 未设置 这是两边编码的重要选项。控制 x264 如何处理 stats 文件。有三种设置: ‧ 1:生成新 stats 文件。在第一遍编码时使用。 ‧ 2:读 stats 文件。在最终编码时使用。 ‧ 3:读 stats 文件,并更新文件。 stats 文件包含每个帧的信息,x264 用於提高输出质量。第一遍编码时生成 stats 文件 ,第二遍编码时利用它来优化视频。最佳用途是码率控制。 参照: --stats, --bitrate, --slow-firstpass X264_statsfile stats 默认值: 'x264_2pass.log' 设置存放 stats 文件的位置及文件名。 参照: --pass no-mbtree 默认值: 未设置 禁用宏区块树(mb-tree)码率控制。使用宏区块树跟踪宏区块在帧中的使用情况和权重 可以提高压缩率。需要生成一个很大的状态文件来保存数据。 推荐: Default 参照: --rc-lookahead qcomp 默认值: 0.60 量化值曲线因子。0.0 趋向於 恒定比特率,1.0 趋向於 恒定量化值。 当和 mb-tree 连用时,影响 mb-tree 权重。(高 qcomp 等价於减弱 mb-tree) 推荐: Default 参照: --cplxblur, --qblur cplxblur 默认值: 20 以指定的半径对量化值曲线应用高斯模糊滤镜。就是通过模糊相邻帧的量化值来达到限制 量化值波动的目的。 参照: --qcomp, --qblur qblur 默认值: 0.5 在量化值曲线压缩後,以指定的半径对量化值曲线应用高斯模糊滤镜。这个设置不重要。 参照: --qcomp, --cplxblur zones 默认值: 未设置 可以把视频分段(zone),对每段分别设置压缩选项。你可以修改 zone 中的大部分 x264 选项。 ‧ 单个 zone 格式为 <start frame>,<end frame>,<options> ‧ 多个 zone 之间用 '/' 分隔。 zone 选项: 有两个选项比较特殊。可以仅设置一个,假如你设置一个的话,它必须是这个 zone 中的 第一个选项。 ‧ b=<float> 乘以原有 bitrate 是 zone 的 bitrate。有益於高速和低速场景 优化。 ‧ q=<int> 为 zone 提供一个恒定量化值。可以对一部分帧单独优化。 其它可用选项如下: ‧ ref=<integer> ‧ b-bias=<integer> ‧ scenecut=<integer> ‧ no-deblock ‧ deblock=<integer>:<integer> ‧ deadzone-intra=<integer> ‧ deadzone-inter=<integer> ‧ direct=<string> ‧ merange=<integer> ‧ nr=<integer> ‧ subme=<integer> ‧ trellis=<integer> ‧ (no-)chroma-me ‧ (no-)dct-decimate ‧ (no-)fast-pskip ‧ (no-)mixed-refs ‧ psy-rd=<float>:<float> ‧ me=<string> ‧ no-8x8dct ‧ b-pyramid=<string> 限制: ‧ zone 的参考帧数不能超过原有 --ref 定义值。 ‧ 不能在 zone 中 关闭 或 开启 scenecut;如果已经开启,仅可以修改。 ‧ 如果 subme 原有值为 0,则不能修改。 ‧ 如果 --me 原有值为 dia, hex 或 umh,则不能设置为 esa 或 tesa。 ‧ 如果 --me 原有值为 esa 或 tesa ,则不能超越。 例子: 0,1000,b=2/1001,2000,q=20,me=3,b-bias=-1000 建议: Default qpfile 人为改变标准码率控制。提供一个文件用於指定特定帧的 量化值 和 帧类型。格式为『 帧序号 帧类型 量化值』。例如: 0 I 18 < IDR (key) I-frame 1 P 18 < P-frame 2 B 18 < Referenced B-frame 3 i 18 < Non-IDR (non-key) I-frame 4 b 18 < Non-referenced B-frame 5 K 18 < Keyframe* ‧ 不需要指定每一帧。 ‧ 把量化值设为 -1等於让 x264 自动判断最佳量化值,当仅需要指定帧率时有 用。 ‧ 如果大量指定帧类型和量化值并且还让 x264 自行优化的话,会降低 x264 执 行效率。 ‧ 假如设置 --open-gop none,则 'Keyframe' 等价於是一个 IDR I帧的普通关 键帧,反之,等价於是一个带恢复点标志 SEI的非 IDR I帧。 分析 选项 partitions 默认: 'p8x8,b8x8,i8x8,i4x4' 压缩过程中视频被分割成16x16 的宏区块。这些块能被进一步分割的更小,这些就由本选 项控制。 使用本选项,你可以单独定义分割类型。分割类型按帧类型(如:I, P, B)分类。可用 的分割类型为 p8x8, p4x4, b8x8, i8x8, 和 i4x4。 ‧ I: i8x8, i4x4 ‧ P: p8x8 (亦包含 p16x8/p8x16), p4x4 (亦包含 p8x4/p4x8) ‧ B: b8x8 (亦包含 b16x8/b8x16) 你也可以设置为'none' 或 'all' p4x4 通常不太有用,通过使用它来增加图像质量将极大的降低压缩速度。 参照: --no-8x8dct direct 默认: 'spatial' 设置直接运动矢量的预测模式。有两种模式:空域和时域(spatial, temporal)。你也 可以选择 none 禁用直接运动矢量,或选择 auto 让 x264 根据情况在两种模式之间切换 。如果设为 auto,x264 会在编码结束後输出相关信息。auto 在两遍编码方式下工作的 很好,而且在单遍编码下也可以工作。在第一遍编码为 auto 时,x264 保存每种方法的 平均执行情况,并从中选出下一种预测模式。注意:如果第一遍编码时用的 auto,第二 遍编码时就只能用 auto;否则,第二遍编码将默认为 temporal。使用 none 浪费码流, 严重不建议。 建议: 'auto' no-weightb 默认: 未设置 H.264 允许设置 B 帧参考帧的权重,权重可以让你改变各参考帧对预测画面的影响程度 。本选项关闭此特性。 建议: Default weightp 默认: 2 在 P 帧中开启加权预测用於提高压缩率。同时提高淡入淡出场景质量。值越大越慢。 模式: ‧ 0. 关闭 ‧ 1. 简单: 淡入淡出分析,但是不重复引用。 ‧ 2. 智能: 淡入淡出分析,重复引用。 me 默认: 'hex' 设置全像素运动预测方式。有5种选择: ‧ dia (diamond。菱形) 最简单的搜索方式,从最佳预测点开始,在1个点的上 、下、左、右四个方向判断此点的运动轨迹,选择最佳值,重复此过程直至找不到较好的 轨迹。 ‧ hex (hexagon。六角形) 秉承简单策略,除了它是在两行共搜索6个方向,这 也是它名称的由来。比 dia 有效且速度基本相当,因此是用於普通编码的好选择。 ‧ umh (uneven multi-hex。非偶多六角形) 比 hex 慢,但是通过搜索复杂的多 六角形区域从而避免错过难以找到的运动轨迹。不像 hex 和 dia,参数 merange 直接控 制 umh 的搜索半径,允许你增加或减小搜索范围。 ‧ esa (exhaustive。穷举) 在最佳预测点 merange 范围内的整个运动空间进行 高度优化的智能搜索。它在数学上相当於在区域内搜索每个运动向量的穷举法。尽管比较 快,还是比 umh 慢,没有太多好处,不适用於天天编码。 ‧ tesa (transformed exhaustive。改进的穷举) 这种算法试图粗略估计对每个 运动向量进行 Hadamard 变换的效果;像 esa,更好一点也更慢一点。 参照: --merange merange 默认: 16 merange 以像素为单位控制最大运动搜索范围。对於 hex 和 dia,在默认16下,它的范 围强制在 4-16。对於 umh 和 esa,能在16在的基础上增加从而搜索更大的范围,对於高 清和高速影片很有用。注意:对於 umh, esa 和 tesa,增加 merange 将明显降低编码速 度。 参照: --me mvrange 默认: -1 (auto) 以像素为单位设置所有运动向量最大(垂直)范围。默认值依赖於 level 等级: ‧ Level 1/1b: 64 ‧ Level 1.1-2.0: 128 ‧ Level 2.1-3.0: 256 ‧ Level 3.1+: 512 注意:如果想手工设置 mvrange,当设置时从上面的值中减 0.25(如: --mvrange 127.75)。 建议: Default mvrange-thread 默认: -1 (auto) 设置流(threads)之间的最小运动向量缓冲。不要动它。 建议: Default subme 默认: 7 设置亚像素估计复杂度。值越大越好。1-5仅仅控制亚像素精细程度。6开启 RDO 用於模 式决策,8开启 RDO 用於运动向量和内部预测模式。开启 RDO 的明显慢於未开启的。 使用小於2的值可以更快,且更低质量的向前预测模式,这就相当於造成降低场景切换阀 值,因此不推荐这样做。 可选参数: 0. fullpel only 1. QPel SAD 1 iteration 2. QPel SATD 2 iterations 3. HPel on MB then QPel 4. Always QPel 5. Multi QPel + bi-directional motion estimation 6. RD on I/P frames 7. RD on all frames 8. RD refinement on I/P frames 9. RD refinement on all frames 10. QP-RD (需要 --trellis=2, --aq-mode > 0) 建议: Default, 或更高,除非编码速度很重要。 subq --subme 的别名。 psy-rd 默认: 1.0:0.0 参数中第一个数字是 Psy-RDO 的强度(当 subme>=6 时有效)。第二个数字是 Psy-Trellis 的强度(当 trellis>=1 时有效)。注意:Trellis 仍处於实验阶段,至少 对卡通片来说是坏事情。 psy-rd 的解释:http://forum.doom9.org/showthread.php?t=138293 no-psy 默认: 未设置 关闭所有用於降低 PSNR 或 SSIM的视觉效果优化功能。同时还关闭一些无法通过 x264 命令行设置的内部 psy 优化功能。 建议: Default no-mixed-refs 默认: 未设置 混合参考将以 8x8区块选择参考对象,优於按宏区块大小选择参考对象。当使用多个参考 帧时可以提高图像质量,会降低编码速度。设置这个选项将关闭它。 建议: Default 参照: --ref no-chroma-me 默认: 未设置 通常,在亮度和色度两个位面进行运动预测。本选项关闭色度运动预测并能略微提高编码 速度。 建议: Default no-8x8dct 默认: 未设置 8x8 DCT 开启智能的自适应的在 I 帧中使用 8x8 离散余弦变换。本选项关闭此特性。 建议: Default trellis 默认: 1 通过分格量化(Trellis quantization)来提高效能。 0. 关闭 1. 开启。仅用於最终宏区块编码,速度和效能的良好平衡。 2. 开启。用於所有决策,降低编码速度。 分格量化:http://en.wikipedia.org/wiki/Trellis_quantization 建议: Default 注意: 需要 --cabac no-fast-pskip 默认: 未设置 关闭P 帧提前跳过检测。以很大的速度损耗为代价换来非常微弱的质量提高。 建议: Default no-dct-decimate 默认: 未设置 DCT Decimation 将去除中被认为不重要的 DCT 块。这样做可以提高编码效率, 并有些 微的质量损失。设置本选项将关闭此功能。 建议: Default nr 默认: 未设置 执行快速降噪。在量化前,基於此值评估影片噪点,并试图通过去除微小细节的方法清除 噪点。效果不如良好的外部降噪滤镜,但是速度非常快。 建议: Default 或 (100 to 1000) deadzone-inter/intra 默认: 未设置 设置inter/intra 模式下亮度量化死区值。取值应在 0 - 32 之间。死区值定义了细节精 细程度等级。非常精细的细节解码和编码都很困难,去除这些细节不再保存它们有助於节 省码流。Deadzone 与 Trellis 不兼容。 建议: Default cqm 默认: Flat 把全部自定义量化矩阵设为内建预置。内建预置量化矩阵为 flat 或 JVT。 建议: Default 参照: --cqmfile cqmfile 默认: 未设置 从 JM 兼容文件读取自定义量化矩阵。覆盖任何其它--cqm* 选项。 建议: Default 参照: --cqm cqm4* / cqm8* 默认: 未设置 ‧ --cqm4: 设置所有4x4量化矩阵。用逗号分隔的16个整数。 ‧ --cqm8: 设置所有8x8量化矩阵。用逗号分隔的64个整数。 ‧ --cqm4i, --cqm4p, --cqm8i, --cqm8p: 设置亮度和色度量化矩阵 ‧ --cqm4iy, --cqm4ic, --cqm4py, --cqm4pc: 设置单独的量化矩阵 建议: Default Video Usability Info 这些选项在输出流中设置标志位,标志能被解码器读出且可能起作用。值得注意的是这些 选项大多数情况下是无意义的,而且通常会被软解码器忽略。 overscan 默认: undef 如何处理过扫瞄。过扫瞄在这里的意思就是播放设备仅能显示整幅图像的部分。 可选参数: ‧ undef - 未定义 ‧ show - 显示全部。理论上讲如果设置了就应该被遵守。 ‧ crop - 在支持过扫瞄的设备上让图像适应播放器。不一定遵守。 建议: 在编码前裁剪,如果设备支持的话,设置 show,其它情况下忽略它。 videoformat 默认: undef 表明视频在编码/数字化前是什麽制式。 可选参数: ‧ component ‧ pal ‧ ntsc ‧ secam ‧ mac ‧ undef 建议: 随便, 或不定义 fullrange 默认: off 表明亮度和色度是否使用全范围。如果设为 off,则使用有限范围。 参考:http://en.wikipedia.org/wiki/YCbCr 建议: 如果你的源是从模拟信号数值化来的,设为 off。其它,设为 on。 背景: BluRay/DVD/DV 等使用 MPEG 压缩,记录格式为 YCbCr,遵循 ITU-R BT.601 规范,其数 据范围(动态范围)为 Y(亮度)16~235,C(色度)以 128 为中心代表无色,范围 16~240。 做处理和显示的时候,YCbCr 要转为 RGB,其范围为 16~235。 但是计算机屏幕上,纯白的点,其 RGB 值为 (255,255,255),纯黑的点,其 RGB 为 (0,0,0)。所以 MPEG 所记录的纯白 (235,235,235) 在计算机屏幕上看起来就不是纯白 ,纯黑 (16,16,16) 在计算机屏幕上看起来也不会是纯黑。 因此 DV 录下来的东西,拿到计算机上看,会觉得颜色变淡,好像照上了一层白纱。同时 因为数据范围(动态范围)缩小为 16~235,而不是全范围(Full Scale)0~255,所以会 觉得对比不足(最亮和最暗的差距缩小),不如在电视上看漂亮。 colorprim 默认: undef 设置把什麽源色彩色系转换为 RGB 色系。 可选参数: ‧ undef ‧ bt709 ‧ bt470m ‧ bt470bg ‧ smpte170m ‧ smpte240m ‧ film 参考: http://en.wikipedia.org/wiki/RGB_color_spaces http://en.wikipedia.org/wiki/YCrCb 建议: 默认, 除非知道源使用的是什麽。 transfer 默认: undef 设置光电传输特性。(就是设置伽马曲线用於校正) 可选参数 ‧ undef ‧ bt709 ‧ bt470m ‧ bt470bg ‧ linear ‧ log100 ‧ log316 ‧ smpte170m ‧ smpte240m 伽马校正:http://en.wikipedia.org/wiki/Gamma_correction 建议: 默认, 除非知道源使用的是什麽。 colormatrix 默认: undef 设置从 RGB 转换时亮度和色度的矩阵系数。 可选参数: ‧ undef ‧ bt709 ‧ fcc ‧ bt470bg ‧ smpte170m ‧ smpte240m ‧ GBR ‧ YCgCo 参考:http://en.wikipedia.org/wiki/YCbCr 建议: 随便,或 默认。 chromaloc 默认: 0 设置色度取样位置。(在 ITU-T 规范附录 E 中定义。参见 http://www.itu.int/rec/T-REC-H.264/en) 值从0到5。 参考:http://git.videolan.org/?p=x264.git;a=blob;f=doc/vui.txt 建议: ‧ 如果正确的从 MPEG1(比如 VCD)的 4:2:0 格式二次采样转码,且不做任何 色彩空间转换,应该设为1。 ‧ 如果正确的从 MPEG2(比如 DVD)的 4:2:0 格式二次采样转码,且不做任何 色彩空间转换,应该设为0。 ‧ 如果正确的从 MPEG4(比如蓝光)的 4:2:0 格式二次采样转码,且不做任何 色彩空间转换,应该设为0。 ‧ 其它,默认。 nal-hrd 默认: None 标记 HRD 信息。用於蓝光、广播电视和一些其它专业领域。参数有: ‧ none 没有 HDR 信息。 ‧ vbr 指定 HRD 信息。 ‧ cbr 指定 HRD 信息且把视频流按 bitrate 规则封装。要求编码时使用 bitrate 码率控制模式。 建议: none, 除非需要指定此信息 参照: --vbv-bufsize, --vbv-maxrate, --aud pic-struct 默认: Not Set 在 Picture Timing SEI 中强制发送pic_struct。 当使用 --pulldown 或 --tff/--bff 时隐含采用此选项。 建议: Default Input/Output output 默认: 未设置 指定输出文件名。由指定的文件名後缀决定视频格式。如果後缀不可识别则采用默认的 raw 格式(通常 .264 後缀用这种格式存储)。 特殊的文件名 NUL (Windows)或者 /dev/null (Unix)表示丢弃输出内容。当使用 pass 1 时特别有用,你唯一关心的输出来自 stats。 muxer 默认: auto 指定用什麽格式写文件。 可用参数:: ‧ auto ‧ raw ‧ mkv ‧ flv ‧ mp4 『auto』选项将根据提供的文件名选择封装器。 参照: --output 建议: Default demuxer 默认: 自动检测 设置 x264 用於分析输入视频的分离器和解码器。 可用参数: ‧ auto ‧ raw ‧ y4m ‧ avs ‧ lavf ‧ ffms 如果输入文件有 raw、y4m 或 avs 後缀,x264 使用相关的分离器读取文件。标准输入使 用 raw 分离器。否则,x264 将依次尝试使用 ffms, lavf 来打开文件,直至放弃。 『lavf』 和『ffms』参数需要用各自的库文件编译 x264。如果使用两者之一,而且输出 不是 raw 的话,x264 将暂缓处理输入文件中的时间码。这将有效的使 x264 采用 VFR-aware。其它参数使用 --fps 指定的固定码率或 --tcfile-in 指定的可变码率。 参照: --input, --muxer 建议: Default input-csp 默认: i420 告诉 x264 视频源的色彩空间。支持的色彩空间列表见 x264 --fullhelp。 注意:当指定为 RGB 色彩空间时,视频在压缩前会按 bt601 矩阵转换为 YUV。 参照: --input-res, --fps input-res 指定 raw 格式视频源的分辨率。使用格式:--input-res 720x576 参照: --input-csp, --fps index 默认: 未设置 一个仅当使用 ffms --demuxer 时起作用的选项。为 ffms 指定一个用於为输入源建立索 引数据的文件,以後编码的时候可以省去再次建立索引的时间。通常不需要,因为相对於 编码来说索引非常快。 参照: --demuxer, FFMS2 API 文档: http://ffmpegsource.googlecode.com/svn/trunk/doc/ffms2-api.html 建议: Default, 除非你想节约一分钟的索引时间。 sar 默认: 未设置 以 宽:高 格式指定编码器使用的视频源的采样纵横比(Sample Aspect Ratio (SAR))。 综合使用 SAR 和 帧尺寸可以做出依赖显示纵横比(Display Aspect Ratio (DAR))的可 变形(anamorphic)输出,公式为:DAR = SAR x width/height 建议:假如使用 resize 滤镜和变形视频源的话,应该指定。 参考:http://en.wikipedia.org/wiki/Asp ... age%29#Distinctions 译者说明:「可变形」是种特殊应用,欲详细了解可以参考「细说DVD的画面比例」这篇 文章:http://www.tfcc.cn/dvd/2004-8-25_14-36-56_1259.html fps 默认: autodetected 以浮点数(29.970)、有理数(30000/1001)或整数(2997/100)值指定视频的帧率。x264 在 有效的视频源头部(y4m,avs,ffms,lavf)检测帧率并采用,否则使用25。本选项隐含使 用 force-cfr。 如果正在使用 raw YUV 视频源并且基於 --bitrate 码率控制,需要使用此选项或 --tcfile-in 指定正确的帧率。否则,x264 无法达到设定的码率目标。 seek 默认: 未设置 设定编码的起始帧,允许从视频源的任意位置开始编码。 建议: Default frames 默认: 未设置 设定编码的最大帧数,允许在视频源结束前的任意位置终止编码。 建议: Default level 默认: -1 (自动) 在输出流中设定等级标志(H.264 标准附录A。 http://en.wikipedia.org/wiki/H.264#Levels)。允许的等级有: 1 1.1 1.2 1.3 2 2.1 2.2 3 3.1 3.2 4 4.1 4.2 5 5.1 (等级 1b 不被支持) 如果没有设定等级,x264 将试图自动判断。自动判断并不完美且在不使用 VBV 的情况下 可能低估等级。x264 将自动限制 DPB 尺寸(看 --ref)与你设定的等级相匹配(除非你 手工指定 --ref)。注意:--vbv_maxrate 或 --vbv_bufsize 不会根据设定的等级自动 设置,但是如果它们的参数超越设定的等级会告警。 选择什麽等级? Level 4.1 常常是桌面型硬件能支持的最高等级。蓝光碟仅支持 Level 4.1,许多非手机 类设备,像 Xbox 360,指定 Level 4.1 为官方支持的最高等级。手机设备,像 iPhone/Android 则是完全不同的处理方式。 详细的等级限制图表,参见:http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Levels 建议: Default,除非是为一个特定设备编码。 verbose 默认: 未设置 显示每个已编码帧的统计信息。 建议: Default no-progress 默认: 未设置 编码时关闭进度指示器。 建议: Default quiet 默认: 未设置 开启安静模式,屏蔽 x264 发出的状态信息。 建议: Default log-level 默认: info 手工设定 x264cli 和 libx264 的日志等级。 可用参数: ‧ none ‧ error ‧ warning ‧ info ‧ debug 越往下,日志信息越详细。 建议: Default psnr 默认: 未设置 开启 PSNR 计算,会在编码完成後给出报告,略微降低压缩速度。 建议: Default ssim 默认: 未设置 开启 SSIM 计算,会在完成後给出报告,略微降低压缩速度。 建议: Default threads 默认: auto (基於帧的线程数:1.5 x 逻辑处理器数量,向下舍入取整;基於分片的线程 数:1 x 逻辑处理器数量) 在多核处理器上通过使用开启多线程并行编码以加快速度。质量损失可以忽略不计,除非 使用非常多的线程(超过16个)。速度增长和线程的数量近似於线性,直至在视频垂直方 向每40px 多於1个线程为止,超过临界点後再增加线程获得的速度增长将大幅下降。 当前在 x264 内部对线程数量限制为128,实际上你也不会设置这麽高。 建议: Default 参照: thread-input, sliced-threads sliced-threads 默认: off 开启基於分片的线程。比默认方式质量低、效率低,但是没有编码延迟。 基於分片的最大线程数量公式:MIN( (height+15)/16 / 4, 128 ) 建议: Default (off),除非你正在做实时流排序或者低延迟非常重要。 thread-input 默认: Set if threads > 1 在单独线程中解码输入视频用於编码进程。 建议: Default sync-lookahead 默认: auto (bframes+1) 设置用於线程预测的帧缓存大小。最大值是250。在第二遍及更多遍编码或基於分片线程 时自动关闭。 设为0将关闭线程预测,将减小延迟,但是以降低性能为代价。 建议: Default non-deterministic 默认: 未设置 在 --threads>1 时可以稍微提高编码质量,以非确定性输出编码为代价。开启多线程 mv 和 在分片类型决策时使用全部的向前预测缓存。 一般不用。 建议: Default 参照: threads asm 默认: auto 不理会自动 CPU 检测。用於调试或排除故障。 建议: Default no-asm 默认: 未设置 关闭所有 CPU 优化。用於调试或排除故障。 建议: Default visualize 默认: 未设置 开启已编码视频宏区块可视化。用於逐帧调试或分析。 需要编译支持和 X11 窗口系统。 建议: Default dump-yuv 默认: 未设置 把重建的 YUV 帧转储到指定文件。通常用於调试。一般不用。 建议: Default sps-id 默认: 未设置 设置 SPS(sequence parameter set)和 PPS(picture parameter set) id。 一般不用。 建议: Default aud 默认: 未设置 设置访问单元分隔符。 建议: Default,仅用於蓝光碟。 force-cfr 默认: 未设置 如果使用 ffms2 或 lavf 分离器,且输出文件不是 raw 格式,则从输入文件复制时间码 。此选项关闭这个功能,并强制 x264 自己产生。当使用此选项时估计你也会设置 --fps 。 建议: Default tcfile-in 指定一个说明视频源帧率的时间码文件。可以是 v1 或 v2 格式。 mkvmerge 文档中的解释:http://www.bunkus.org/videotools ... rnal_timecode_files 参照: tcfile-out, force-cfr, fps tcfile-out 输出一个基於输入时间戳的时间码文件(v2 格式)。用於当你正在编码一个 VFR 视频源 且想转储时间码的时候。关於文件格式,参见 tcfile-in。 timebase 默认: 未设置 允许自定义时间基准。 分子是『秒』,分母是『ticks』。意思是1个 tick 多少秒。 ‧ 如果得数为有理数,将相应的设置分子和分母。 ‧ 如果得数为整数,并且通过 tcfile-in 设置了时间码文件,将使用得数做分 子,并相应的生成分母。 ‧ 如果得数为整数,并且没有设置时间码文件,将得数作为分母并从视频源生成 每帧『ticks』数。 与 --force-cfr 不兼容。 建议: Default dts-compress 默认: 未设置 一个小把戏,仅适用於FLV和MP4容器,可以在有缺陷的解码器下工作,这些解码器认为所 有的 DTS 都是正确的。使用此选项风险自担,请看说明: http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=80d0bd4b57163389289714e681bdc53ceaaf0f7a 注:DTS 指的是解码时间戳(Decode TimeStamp)。每一帧都分配一个 DTS,对应其在流媒 体『编码顺序』中的位置,不同於由显示时间戳(Presentation TimeStamp)指定的『显示 顺序』。由於使用 B 帧等压缩技术的原因,各帧在视频流中的保存顺序与其显示顺序是 不同的,这就造成某些帧需要後续帧的数据。 Filtering video-filter x264 过滤系统会在视频源被压缩前处理它们。可以顺序使用多个过滤器。 过滤器的基本语法: --video-filter <filter> 连续使用多个过滤器时用 / 分隔: --video-filter <filter1>/<filter2> 你可以按自己喜欢的方式链式使用多个过滤器。 可用的过滤器有: crop 语法: crop:left,top,right,bottom 从帧的边缘移去像素。就是常说的剪裁喽。 ‧ 当视频源是yv12、i420、或 nv12 格式时,剪裁的像素必须是2的倍数。 ‧ 当视频源是 i422 格式时,在宽度方向剪裁的像素必须是2的倍数。 resize 语法: resize:[width,height][,sar][,fittobox][,csp][,method] 调整帧尺寸 和/或 转换帧的色彩空间。需要 x264 编译时带上 libswscale 库。 如何调整帧尺寸有几种可能的方式: ‧ 仅 分辨率:按照指定的分辨率调整帧尺寸,同时调整 SAR 从而避免图像拉伸 变形。 ‧ 仅 SAR:设定 SAR,同时调整帧尺寸从而避免图像拉伸变形。 ‧ 分辨率 + SAR:按照指定的分辨率调整帧尺寸并且按指定值设定 SAR,可能产 生拉伸变形。 ‧ Fittobox:基於指定约束模式调整帧尺寸,分辨率按1:1的 SAR 自适应。 ‧ width:调整帧尺寸来符合指定宽度约束。 ‧ height:调整帧尺寸来符合指定高度约束。 ‧ both:调整帧尺寸来符合指定矩形约束。 ‧ Fittobox + SAR:除额外指定 SAR 外与 Fittobox 类似,收缩视频使可变形 视频符合指定的约束。 与调整尺寸无关的参数: ‧ csp:同时将帧转换为指定的色彩空间。可用的色彩空间列表见 x264 --fullhelp ‧ method (默认 bicubic):当调整帧尺寸时,使用指定的调整方法 fastbilinear, bilinear, bicubic, experimental, point, area, bicublin, gauss, sinc, lanczos, spline 范例: resize:width=1280,height=720,method=spline select_every 语法: select_every:step,offset1[,offset2,...] 仅选择部分输入帧进行编码,丢弃其它。每隔 step 帧,仅使用 offset 指定的帧。例如 : 每2帧,丢弃第1帧,采用第2帧: select_every:2,1 每3帧,采用第0,1帧,丢弃第2帧: select_every:3,0,1 更多例子:http://avisynth.org/mediawiki/Select#SelectEvery 另请参阅 ‧ http://git.videolan.org/?p=x264.git;a=tree;f=doc;hb=HEAD x264 源代码树中的文档。几乎是最高级别的技术特性解释。一些文档相当老,但是仍然 很精确。 ‧ http://sites.google.com/site/linuxencoding/ Linux 编码 - x264 编码选项指南。非常实用的选项。大多数由 x264 的开发者Dark Shikari 编写。 ‧ http://mulder.dummwiedeutsch.de/pub/x264 Lord Mulder 的 x264 Avidemux 指南。值得一看 ‧ http://sites.google.com/site/x264bluray/home 使用 x264 进行蓝光编码。很多范例,极有用。 ------------------------------------------------------------------------------ PS:大陆译文转繁体 当然还是大陆用语 部分参数解释与感想可能因人而异 最好是自己实验过後再评断 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.136.177.17







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP