本文對應的是x264命令列模式,VFW方式也用相同的參數,不過是圖形介面,可以自己找對應的英文。
使用格式:x264 預設選項 -o 輸出檔案 輸入檔案 [長x寬]
輸入支援格式:RAW/y4m/avi/avs(編譯時間可選)
輸出支援格式:264/mkv/mp4(編譯時間可選)
x264的許多參數可以有-/--兩種IME,筆者也不知道為什麼。以下等價參數用“參數1/參數2 <必需數值格式>”表示,參數尾部()內為個人推薦。
-h/--help 協助
框架類型選項:
-I/--keyint <整數> 最大IDR幀間距,預設250
-i/--min-keyint <整數> 最小IDR幀間距,預設25
--scenecut <整數> 畫面動態變化限,當超出此值時插入I幀,預設40
-b/--bframes <整數> 在IP幀之間可插入的B幀數量最大值,範圍0~16,預設0
--no-b-adapt 關閉自適應B幀判定(-b設為1時可用,其他不推薦)
--b-bias <整數> 控制插入B幀判定,範圍-100~+100,越高越容易插入B幀,預設0
--b-pyramid 允許B幀做參考幀
--no-cabac 關閉內容自適應二進位算術編碼(CABAC,高效率的熵編碼)(會提高速度,但嚴重影響品質)
-r/--ref <整數> 最大參考幀數,範圍0~16,預設1
--nf 關閉環路濾波(一種除馬賽克演算法)
-f/--filter <alpha:beta>設定環路濾波的AlphaC和Beta的參數,範圍-6-6,預設都為0
碼率控制選項:
-q/--qp <整數> 固定量化模式並設定使用的量化值,範圍0~51,0為無損壓縮,預設26
-B/--bitrate <整數> 設定平均碼率
--crf <整數> 品質模式,量化值動態可變(目前不太成熟,品質不如設定固定量化值)
--qpmin <整數> 設定最小量化值,範圍0~51,預設10
--qpmax <整數> 設定最大量化值,範圍0~51,預設51
--qpstep <整數> 設定相鄰幀之間的量化值差,範圍0~50,預設4
--ratetol <小數> 平均碼率模式下,瞬時碼率可以偏離的倍數,範圍0.1~100.0,預設1.0
--vbv-maxrate <整數> 平均碼率模式下,最大瞬時碼率,預設0(與-B設定相同)
--vbv-bufsize <整數> 碼率控制緩衝區的大小,單位kbit,預設0
--vbv-init <小數> 碼率控制緩衝區資料保留的最大資料量與緩衝區大小之比,範圍0~1.0,預設0.9
--ipratio <小數> I幀和P幀之間的量化係數,預設1.40
--pbratio <小數> P幀和B幀之間的量化係數,預設1.30
--色度-qp-offset <整數> 色度和亮度之間的量化差,範圍-12~+12,預設0
-p/--pass <1|2|3> 多次壓縮碼率控制
1:第一次壓縮,建立統計檔案
2:按建立的統計檔案壓縮並輸出,不覆蓋統計檔案,
3:按建立的統計檔案壓縮,最佳化統計檔案
--stats <字串> 統計檔案的名稱,預設"x264_2pass.log"
--rceq <字串> 速率控制公式,預設"blurCplx^(1-qComp)"
--qcomp <小數> 線性量化控制,0.0為固定碼率,1.0為固定量化值,預設0.6,只用於2-pass和品質模式
--cplxblur <小數> 根據相鄰幀平滑量化值比例的最大值,範圍0~99.9,預設20.0,只用於2-pass和品質模式
--qblur <小數> 對統計檔案結果平滑量化值比例的最大值,範圍0~99.9,預設0.5,只用於2-pass
--zones <z0>/<z1>/… 分段量化,格式為:<開始幀>,<結束幀>,<選項>,可選項為:q=<整數>(量化值)或b=<小數>(碼率倍數)
分析選項:
-A/--analyse <字串> 動態塊劃分方法,預設"p8x8,b8x8,i8x8,i4x4"。可選項:p8x8/p4x4/b8x8/i8x8/i4x4;none/all(p4x4需要p8x8. i8x8需要--8x8dct)
--direct <字串> 動態預測方式,預設"spatial"。可選項:none/spatial/temporal/auto
-w/--weightb 允許B幀加權預測(可以減少相鄰B幀品質低的影響)
--me <字串> 對全像素塊動態預測搜尋的方式,預設"hex",可選項:
dia:菱形搜尋,半徑1 (快)
hex:正六邊形搜尋,半徑2
umh:可變半徑六邊形搜尋
esa:全面搜尋(很慢,而且效果與umh幾乎相同)
--merange <整數> --me為umh/esa時的搜尋半徑,最大64,預設16
-m/--subme <整數> 動態預測和分區方式,可選項1~7,預設5(與壓縮品質和時間關係密切,1是7速度的四倍以上)
1:用全像素塊進行動態搜尋,對每個塊再用快速模式進行四分之一像素塊精確搜尋
2:用半像素塊進行動態搜尋,對每個塊再用快速模式進行四分之一像素塊精確搜尋
3:用半像素塊進行動態搜尋,對每個塊再用品質模式進行四分之一像素塊精確搜尋
4:用快速模式進行四分之一像素塊精確搜尋
5:用品質模式進行四分之一像素塊精確搜尋
6:進行I、P幀像素塊的速率失真最佳化(rdo)
7:進行I、P幀運動向量及塊內部的速率失真最佳化(品質最好)
--b-rdo B幀也進行rdo,需要--subme在6以上
--mixed-refs 可以在一幀內使用不同參考幀
--no-chroma-me 不進行色度的動態預測
--bime 可以平均B幀參考塊的運動向量
-8/--8x8dct 可以使用8x8的離散餘弦變換(DCT)
-t/--trellis <整數> Trellis量化,對每個8x8的塊尋找合適的量化值,需要CABAC,預設0
0:關閉
1:只在最後編碼時使用
2:一直使用
--no-fast-pskip 關閉快速P幀跳過檢測
--no-dct-decimate 關閉P幀聯合編碼(可以增加細節,但也會增大體積)
--nr <整數> 雜訊去除,範圍0~100000,預設0
--cqm <字串> 設定外部量化矩陣格式,預設"flat",可選項:jvt/flat
--cqmfile <字串> 讀取JM格式的外部量化矩陣檔案,自動忽略其他--cqm*選項
--cqm4 <list> 設定4x4的量化矩陣,用逗號分開,範圍1~255的16個整數
--cqm8 <list> 設定8x8的量化矩陣,用逗號分開,範圍1~255的64個整數
--cqm4i/--cqm4p/--cqm8i/--cqm8p 設定I、P幀不同的量化矩陣
--cqm4iy/--cqm4ic/--cqm4py/--cqm4pc 設定亮度、色度不同的量化矩陣
視頻標準化選項:
這些選項與編碼無關,不過如果要用mp4之類的播放器,可以設定,風險自擔
--sar width:height 設定長寬比
--overscan <字串> 過掃描線,預設"undef"(不設定),可選項:show(觀看)/crop(去除)
--videoformat <字串> 視頻格式,預設"undef",可選項:component/pal/ntsc/secam/mac/undef
--fullrange <字串> Specify full range samples setting,預設"off",可選項:off/on(我也不明白這是幹什麼的,請高手指點)
--colorprim <字串> 原始色度格式,預設"undef",可選項:undef/bt709/bt470m/bt470bg,smpte170m/smpte240m/film
--transfer <字串> 轉換方式,預設"undef",可選項:undef/bt709/bt470m/bt470bg/linear,log100/log316/smpte170m/smpte240m
--colormatrix <字串> 色度矩陣設定,預設"undef",undef/bt709/fcc/bt470bg,smpte170m/smpte240m/GBR/YCgCo
--chromaloc <整數> 色度樣本指定,範圍0~5,預設0
輸入、輸出選項:
--level <字串> 設定等級(as defined by Annex A)(不明白,請高手指點)
--fps <小數> 設定幀率
--seek <整數> 設定起始幀
--frames <整數> 最大編碼幀數
-o/--output 指定輸出檔案
--threads <整數> 編碼線程(使用分區技術)
--thread-input 在編碼線程中運行Avisynth
--no-asm 關閉全部CPU最佳化指令
--no-psnr 關閉PSNR計算
--quiet 安靜模式
-v/--verbose 顯示每一個幀的資訊
--progress 顯示編碼進程
--visualize 顯示運動向量
--sps-id <整數> 設定SPS和PPS的ID值,預設0
--aud 使用資料單元定義符號