• 3
    积分
  • 9
    星梦
  • 0
    星券
  • 13
    帖子
  • 1
    主题
  • 0
    贡献
  • 0
    记录
  • 0
    日志
  • 0
    好友
跳转到指定楼层   *输入需要访问的楼层直接跳转

[生活智能] [整理]視頻壓制

翡翠誓言 发布于2009-7-19 08:36 1238 次浏览 9 位用户参与讨论   [复制分享主题]
[整理+原创]用Megui -x264压制简介看到论坛中经常有朋友问关于x264压制方面的问题,网上这方面的教程比较零乱,因此整理了一下就有了此文。
# F6 A. c% V. N( V' M9 |! z7 v4 v1 X6 F) t6 O" A; i  N
为什么用Megui -x264?0 _' X, m: ~' b8 a$ E5 Q
对于H264(AVC)的编码工具其实有不少,比如nero7中的Recode组件也可以进行编码,不过nero的编码比较傻瓜,自己定制的余地很小,而且是商业软件(尽管我们都用的是D版 [s:14] )。x264则是一个开源的H264规范的编码器。只是x264是命令行模式的工具,对于新手来讲可能很郁闷。所以偶们就用Megui来作为其图形界面。顺便提一下,x264有一个vfw版本,不过因为h264和avi的兼容性的问题,该版本已经停止了开发。% u4 `8 I9 u' M: a, o

% p) _7 k! C; l准备的工具6 P9 I* B; k- K* L& W0 r0 M
Megui(要MS .NET Framework 2.0):http://sourceforge.net/projects/megui+ u5 t0 c* p' Y* B, h
x264 Cli:http://x264.nl/(其实不需要Megui可以自动更新的)( y) a+ R, z8 b! ^/ Z$ I, S
Avisynth:http://sourceforge.net/projects/avisynth2/
9 A! v4 @2 F- Y* `# D4 \( E/ S' X7 ^) j
把解压到指定目录(最好不要有中文路径,可能互有问题)- S# }  V- y* I3 L
运行megui可以看到主窗口' A* I' E) L# _- a; J7 C

( e4 p, r& n7 ~' @3 z( Y" }0 j3 |第一次运行Megui会自动进行更新。可能有个别的服务器有问题,如果用不到可以不更新。如果只是x264编码需要的就是mencode、mp4box、x264、还有profile等几个。
8 \. A$ k3 S* A: q  W  R2 U选tool菜单下setting。$ M. ?6 G4 e* A
   
: C6 |' n$ F9 C1 P6 s- ?main标签下基本可以默认,可以把Open Preview after Avisynth script selection的勾去掉。其它的如Default Priority(进程的优先级),Shutdown after encoding(完成关机)自己酌情选择* G/ o. `( T( ?' r, S( O6 V
  
( U+ R5 p: g3 U0 i, ?! M/ U, fProgram Path这个标签是为了选择相关文件的关联,检查一下x264.exe文件是否在相应的目录系即可& @* ~* g8 {5 I

- x' X5 h0 c) M由于只能读入avs文件所以接下去就是编写avs script。如果熟悉avs的话直接用记事簿写就可以了。4 q8 V% b& M& m. S7 u
当然也可以使用Megui提供的工具,点开tool菜单下Avisynth Script Creator
9 ?, k. k$ Q% K) j& p3 |  
1 @4 _* s3 B  I8 T5 r选择你所要压制的媒体文件,默认下会有resize根据你自己的片源情况,可以自行考虑需不需要。* V. W/ z8 D# n/ f0 H/ F3 U
  & o! D# q% a$ A, f2 H4 j
在edit标签下你可以自行增删你所需要的avs script。也可以在load DLL选择所需要的滤镜
4 X- N- w* f6 h, B! u5 f6 D完成save
1 S9 `" |/ x+ _; V1 d
- v2 t2 Y8 R5 d5 T* c* g- q5 q/ lMegui会自动把文件添加到vedio部分# I: d1 j4 ~$ }
  
# {' Z& ~# V# Y, ~: e9 r6 pCodec自然是选择x264,Container可以选择MP4,也可以MKV,RAW的话出来的文件是.264,不能直接用mmg进行mkv封包,只能用MP4进行打包。我们选择默认MP4
9 i$ \$ q8 ^1 O' H, T4 L! l! j接下去点开Config可以看到有很多东西可以选
" R) i4 j0 d# V4 H7 a  ) O. c. q8 [9 \6 L% P: ~+ m4 D3 m
在最下方我们下拉Profiles可以看到有很多预置的profile
- a9 t) @; {- a. q/ H0 r+ N先解释一下各个Profile的含义,再简单说说那些主要参数的含义 引用:
最高画质设置:
5 j$ h0 c6 e" d& y) z% {HQ-Slow: 速度比较慢,质量接近最好
* G$ j8 D' N. h) D5 ^9 Q4 Y2 F3 KHQ-Slower: 比HQ-Slow满,压缩中使用更多的参考帧
) `( u5 H- p3 w; Q* a" @1 {; tHQ-Slowest: 比HQ-Slower更慢
/ J3 T1 L" V: CHQ-Insane: 所有都是最大设置
) H' q  k* ?7 Z& H; w' ~3 U(越慢画质相对越好。insane代表疯狂模式,是编码速度最慢的。)' z1 O% p7 V; D5 I( V5 N) R6 N/ Q

! K$ d1 J: x4 h! e通用2-passes设置8 j+ X6 A' _5 e4 x/ a6 b8 b
CE-Highprofile: high profile设置 (不兼容QuickTime)
+ \6 E9 B2 C% y  x2 W8 [8 i5 _/ nCE-Mainprofile: main profile设置 (不兼容QuickTime)
2 p) T( Q) J4 Y% L7 T. d, |( jCE-QuickTime: QuickTime 7兼容设置
7 p5 _( E. ^& b( g$ `6 OCE-Baseline: baseline profile设置 (兼容QuickTime 7)
! X% }, w; Q, u2 A1 z% f6 D# w; u
5 C$ |5 J3 v2 S  D3 Q% \: X快速编码设置使用1-pass,对要求快速编码的朋友适用
7 B( u. U) U/ O1P-Maxspeed: 最快速度,几乎所有优化指令都关闭了,最求最快速度。适合编码视频流放到web上实时观看) K8 C0 W, K+ r4 N: `$ ~$ l5 E
1P-Intermediate: 中等速度9 Q8 V) b  P$ o7 ^$ o/ Q
1P-Goodquality: 速度画质兼顾/ }9 q, n1 Q' y! y$ k/ e1 v% G
8 x. T6 h6 p) l( e1 h8 g
恒定画质(constant quality)设置, U, o3 P+ ]/ v! s: j; J. Q
CQ-Lossless: 无损编码,适合采集视频时用
2 T' H4 E1 f3 S  L' a& M; PCQ-ASP_Q2_equiv: 恒定量化值编码,相当于Xvid的Q2
& O6 E+ \* @0 I' eCQ-ASP_Q2_eq(crf): 恒定质量编码,相当于Xvid的Q2  R. ~! B  v! a
% B: F0 |, Z4 e: B2 b
卡通编码设置(2 pass),编码动画片的时候用的* Y/ i, l% V: u6 o- Z; |* s( O
AE-Standard: 2 pass,标准画质(这个标准的定义应该是0day里动画编码的标准)# w  I, b. b. p; M2 h" L
AE-Goodquality: 高画质,速度慢于standard编码0 w6 n$ T% N( D0 J) Y# d2 \
AE-Maxquality: 速度最慢,画质最好+ w3 q; o: l& i7 ]8 e9 L. m" M, B

- U. J% g8 {1 Z游戏机、PSP和iPOD video编码设置8 s' J6 D5 U: e5 Y0 ]( f* t
PD-PSP: 按照PSP指定规格的设置! S; e+ @  p( n- b: @* o1 Z$ J9 z% k
PD-Xbox_Hires: XBOX高分辨率设置(需要XBMC),不知道XBMC是什么,有XBOX的朋友可能已经知道了' h% o1 t) R. T- @$ P+ ]
PD-Xbox_LoRes: XBOX低分辨率设置(需要XBMC)
0 d1 u5 Z+ k3 R3 B0 ?PD-iPod: iPOD的视频编码设定

相关帖子

已有(9)人评论

翡翠誓言 发表于 2009-7-19 08:36:26 | 显示全部楼层
我通常选择AE-Goodquality这个profile,依照我的机器配置AMD64 3000+,1G内存。24分钟的片子大约需要2到2.5小时。' v7 y, G0 A2 k, y: c' V( v
解释一下那些参数的具体意义,main标签页下; B$ L8 c: o# l) z  E
Mode是可选的模式:
2 E, Y- K- N6 o4 A4 ~ABR(average bitrate)是码率被设定在一个平均数上下浮动(不适合视频编码)0 I# Z9 s* B* q# ?; `+ z8 H; b. |* i
constant quality恒定画质(一般不用)
, h/ E  W" F) g) D, [$ @constant quantizer,恒定量化值,范围0~51,0为无损压缩,默认26(貌似Megui里无法选0,值越小质量越高,熟悉Xvid编码的知道Xvid的Q值和x264的量化值存在以下关系x264(Q值) = 12 + 6*log2(XVIDQ值))因为是恒定量化值,所以最终的文件大小会根据片源情况发生波动- K$ Z$ m4 B% M( M% G7 h5 l
其它的是各种pass,x264的1-pass不编码会形成.stats文件,多pass编码可以勾选前面的Turbo以加快编码速度。可以通过选择Bitrate来控制文件的大小4 G" M( u# t8 ]6 T
2 N6 v  K' h, ]3 [7 \
Enable PSNR calculati不用勾选,这是个画面质量的校验机制,关掉不会影响画质,还会缩短压缩时间。
  w) X3 _; i5 H* P' sNumber of thread是设置你的CPU数,双核的CPU可以选2' ?1 ~4 o+ h# Z. s$ r
fourCC是媒体文件识别符号,选x264
# j6 }% ^' ~* l; n! b
2 z2 S7 H* q: L8 Z7 ?  b; j% mDeblocking可以进行噪点的处理,根据片源的情况自行选择,正值起到柔化作用,可以减少噪点,负值则起到锐化的作用。如果你在编码时开启deblocking的话,那么在解码时也要打开deblocking,否则会出现色块、马赛克现象。
# Q8 K3 I3 I+ a0 T" V2 g1 Y: G
1 a( C7 w5 j) W% x* xAVC Profile和AVC level与我们在电脑上看片无关,不用去理会。
/ q- u2 i- v) e- ^. M
( m7 c% m9 S! k, }/ l& IZone标签是用于区域处理,可以对某段帧进行特殊处理,我们不用去理会8 V9 B2 ^4 N; y6 o9 {/ E/ T( x

$ _4 J8 k- |+ v6 b' @: |, `RC and ME标签( \8 P5 S& q& N9 W2 F) O* I

9 I4 j. N4 ?. KVBV Buffer size:码率控制缓冲区的大小,单位kbit,默认0
  d, x! d" O# m9 S: OVBV Maximum Bitrate:平均码率模式下,最大瞬时码率,默认0
) n: Z  a/ r4 w! }; D/ b* EVBV Initial Buffer:码率控制缓冲区数据保留的最大数据量与缓冲区大小之比,范围0~1.0,默认0.9
" @! X6 B5 g. }, I0 sBitrate Variance: 平均码率模式下,瞬时码率可以偏离的倍数,范围0.1~100.0,默认1.0" B9 r: ^% n7 z  W0 P' e
Quantizer Compression: 线性量化控制,0.0为固定码率,1.0为固定量化值,默认0.6,只用于2-pass和质量模式
0 q; @' h9 B( G( ?7 k0 c2 Z9 a* DTemp. Blur of est. Frame complexity:根据相邻帧平滑量化值比例的最大值,范围0~99.9,默认20.0,只用于2-pass和质量模式0 ~7 N/ N8 ^8 k5 D2 k- y
Temp. blur of Quant after CC: 对统计文件结果平滑量化值比例的最大值,范围0~99.9,默认0.5,只用于2-pass
1 Y! z8 ?6 ?3 W2 R. hChroma M.E.: 勾选进行色度的动态预测
  L3 g/ L; p4 BM.E. Range: M.E. Algorithm为Hexagon/Exhaustive时的搜索半径,最大64,默认16
! [  n# O' r5 o1 H1 Q( ^0 r0 XScene Change Sensitivity: 画面动态变化限,当超出此值时插入I帧,默认40* h. [9 W, @9 \! N
M.E. Algorithm: 对全像素块动态预测搜索的方式,默认"Hexagon",可选项:
8 F% W: n9 w3 u; w  U8 f# b                 Diamond:菱形搜索,半径1 (快)
3 ?6 f2 f2 X0 A                 Hexagon:正六边形搜索,半径22 Y& p9 Q+ i6 @5 m6 l
                 Multi hex:可变半径六边形搜索. r3 |& U, \' u( L6 y9 K, g
                 Exhaustive:全面搜索3 r+ I( U; Z2 J
(建议设为Multi hex,Exhaustive实在太慢了,而且质量提高极不明显。)( t- \. _. i' Q3 Q4 R6 t) q
Subpixel Refinemen: 动态预测和分区方式,可选项1~7,默认5(与压缩质量和时间关系密切,1是7速度的四倍以上) 1:用全像素块进行动态搜索,对每个块再用快速模式进行四分之一像素块精确搜索
6 e( H3 ^, _" K6 w8 d                2:用半像素块进行动态搜索,对每个块再用快速模式进行四分之一像素块精确搜索- Q% z! j5 I# d) J
                3:用半像素块进行动态搜索,对每个块再用质量模式进行四分之一像素块精确搜索
! R, _( ^2 l1 c                4:用快速模式进行四分之一像素块精确搜索$ ~; R( n/ m. o: U! m2 L
                5:用质量模式进行四分之一像素块精确搜索
- p) G- Y* R# p+ o                6:进行I、P帧像素块的速率失真最优化(rdo)
5 H8 s, G, N. a8 S+ n( I6 s                7:进行I、P帧运动矢量及块内部的速率失真最优化(质量最好)3 ]$ ~4 |/ z. F2 j  j9 A
( 越大质量越好,不过编码速度也会急剧下降。建议:只要机器撑得住,设为7); C& Y7 ^0 ]* F8 J) L
Keyframe Interval: 最大IDR帧间距,默认250(一般来说压制动画时,可以增大)# n3 i" \5 I8 {
Min. GOP Size: 最小IDR帧间距,默认25(一般来说压制动画时,可以减小)
/ H* e( F6 e& I% r0 RNoise Reduction:噪声去除,范围0~100000,默认0
( Z5 S5 k8 _7 ^: e1 |! k+ f; ^" Z8 v' {" r% E, h4 u6 s; g# s$ [) h& y4 y
Advanced标签
: q* y* \6 Y7 w8 C9 G- B' p
2 F. b+ Z) @" B* ^: b- XMinimum Quantizer: 设置最小量化值,范围0~51,默认10
/ E3 `0 ~+ m7 [' c* tMaxmum Quantizer: 设置最大量化值,范围0~51,默认51
# a- ]5 r6 G1 ~9 Z5 AMaxmum Quantizer Delta: 设置相邻帧之间的量化值差,范围0~50,默认46 |" g0 J4 z& ], ~. N& g9 U
Credits Quantizer: 演员表量化值4 i* V- S: v) {7 U* l5 O
Factor between I and P frame Quants: I帧和P帧之间的量化系数,默认1.40
" \6 `8 \, l9 a5 Q# }5 NFactor between P and B frame Quants: P帧和B帧之间的量化系数,默认1.30
: T0 J9 L' P( g" Y; n4 z, lChroma QP Offset: 色度和亮度之间的量化差,范围-12~+12,默认0
- y/ R9 p9 c0 Q8 I- k7 {3 A0 O4 v
Trellis: Trellis量化,对每个8x8的块寻找合适的量化值,需要CABAC,默认02 O' A, d- T3 |4 J
        0:关闭; b8 t' l. q& t- I7 T, Y
        1:只在最后编码时使用
! f! }) N  _( v$ r7 w; b/ E0 n$ U        2:一直使用7 N. \! Q2 I4 N  O
(提高质量,降低速度。建议开启。)
5 ~' z8 b- c$ Z+ z! tNumber of Refence Frames:  最大参考帧数,范围0~16,默认1(对质量和压缩比都有提高的参数,一般要设>1)7 p$ _: A9 i6 H) B2 ^$ \+ [% j
Mixd: 可以在一帧内使用不同参考帧(有效,但对速度影响较大。建议尽量开启)
3 r0 w: d* a6 i7 UCABAC:内容自适应二进制算术编码(CABAC,高效率的熵编码)(关闭会提高速度,但严重影响质量)* }8 s+ s' ?# B) V" i% ]
No Dct Decimatio: 关闭P帧联合编码(可以增加细节,但也会增大体积)
- m5 d/ l& N  X  V" hNo Fast P-Skip: 关闭快速P帧跳过检测& m4 y; B! t/ V7 s) r' R6 o

* y; H' Y( u; L( T, k$ wMacroblock Options: 动态块划分方法,默认"p8x8,b8x8,i8x8,i4x4"。可选项:p8x8/b8x8/i8x8/i4x4;none/all(p4x4需要p8x8. i8x8需要Adaptive DCT)
. U. C) }" ^$ ?* w% ~" q% g7 d(分析当然是越多越好。建议:只要机器撑得住,设为all。)
- [! |$ u3 `! ?
0 z/ k) u  @* S* h5 V5 w- rNumber of B-Frames: 在IP帧之间可插入的B帧数量最大值,范围0~16,默认0(可以大大提高压缩比的参数,非用于二次压制的片源一般要设>1)$ ^3 k* D* j/ _# G. [
Adaptive B-Frames: 自适应B帧判定(B-Frames设为1时可以不用,其他不推荐)2 g5 p& I3 p. \+ f
B-Pyramid: 允许B帧做参考帧(对速度影响很小,一般开启)
0 P" R& Z1 u% ^" z; CRDO for B-Frames: B帧也进行速率失真最优化,需要Subpixel Refinemen在6以上(提高质量,降低速度。建议开启。)
  H& q# M" v4 ]" I+ [" @Weighted B-Prediction: 允许B帧加权预测(可以减少相邻B帧质量低的影响)(对质量和压缩比都有提高,且对速度影响极少。建议开启。)
0 z% L0 p" {# d3 JBidirection M.E.: 可以平均B帧参考块的运动矢量(对质量和压缩比都有提高,且对速度影响极少。建议开启。)
1 u  J7 U6 r/ F  |1 nB-Frame mode: 动态预测方式,默认"spatial"。可选项:none/spatial/temporal/auto(建议用auto)
1 q' b* ?2 R& G% V4 w1 yB-Frame bias:  控制插入B帧判定,范围-100~+100,越高越容易插入B帧,默认0  b7 O! M! p2 d/ I4 l: U

) h# b) l$ c% j; X" vQuantization matrix: 可以选用自定义距阵。附件里提供几个距阵LRM MRM HRM分别对应低中高码率。2 ^  y. U# F" v

0 F: c9 L; t3 z5 Q( p7 ]OK接下来退出Config页面,按Enqueue按钮。接着转到Queue标签
' R' K# v% x; ]; D
9 u7 N( Z" I( J6 k
2 f( U! O6 I# J! W$ ~; x按start4 m. w; F! X# A9 i2 _5 n
  . ?- A6 ^/ h1 g0 p* ~5 V
开始压制。结束后会生成一个MP4文件。
& ~  Z0 {8 i+ K# x* }5 r
% j9 x/ o8 f# T/ L( G7 n然后处理音频。当然也可以使用Megui。不过处理音频的工具很多,最简单的用foobar2000,winamp都可以实现。
2 g) @  n! K2 S  ~+ s- L
5 U: m+ D7 l3 N$ {+ @+ I音频处理完就可以用mkvtoolnix中的mmg封成MKV,当然用yamb+mp4box也可以封成Mp45 h3 C* v. `% H8 ?1 x& w$ j

+ L/ J% r1 X6 A" h& X: l3 R这样视频文件就完工了 [s:46]
% @% H. h- p# D6 Y
0 `2 [) e4 t! x& a
3 D# M! @9 Y  ]' T! K6 p; k参考文章:4 i0 a* K7 ]  _+ s! M
kykdu:《x264参数解释》http://www.popgo.net/bbs/showthread.php?s=&threadid=408981
+ {! v/ E2 k6 `2 V* h; i) Z# z6 UMeteorRain:《x.264 新手上路教程》http://popgo.net/bbs/showthread. ... 15&pagenumber=1% X5 t3 G6 R# j& {/ N; f( m
nessus:《MP4介绍与基本AVC编码(x264)教程》http://www3.eastgame.net/read.php?tid=927529+ Q; h( V  {/ L& R5 P, a" L
自定义距阵出处:http://forum.doom9.org/showthrea ... ;highlight=matrices
回复 支持 反对

使用道具 举报

kevinchan 发表于 2009-7-19 11:53:16 | 显示全部楼层
一直对呢方面嘅了解唔深,终于可以了解一次啦,平时又懒得上网揾资料。多谢整理,真係方便
回复 支持 反对

使用道具 举报

kwanyeung 发表于 2009-7-19 15:44:08 | 显示全部楼层
係唔係轉貼架?
回复 支持 反对

使用道具 举报

noriko 发表于 2009-7-19 19:20:34 | 显示全部楼层
我覺得似轉帖都d咯 哈哈
回复 支持 反对

使用道具 举报

stayhome 发表于 2009-7-19 20:49:05 | 显示全部楼层
纯支持,无压片嘅习惯
回复 支持 反对

使用道具 举报

su123 发表于 2009-7-19 22:11:34 | 显示全部楼层
学习一下怎样压制先
回复 支持 反对

使用道具 举报

ConvoyChan 发表于 2009-7-20 18:48:13 | 显示全部楼层
压片么 我用badaboom 显卡加速 画质暂时转左N部都无咩问题 而且超爆个I7都5够显卡快
回复 支持 反对

使用道具 举报

mrdb 发表于 2009-7-20 20:09:54 | 显示全部楼层
好长啊……等到得闲先慢慢睇……
回复 支持 反对

使用道具 举报

aaron81 发表于 2009-7-22 23:53:44 | 显示全部楼层
吾知是否有用,我对这方面都有兴趣~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 註冊

本版积分规则

快速
回复
返回
列表
返回
顶部