本經驗有嚴重錯誤,請刪除
圖片似乎有點大, 所以為了手機端能看清我會再分開講~
關于IBP幀的科普, 只能說, 恭喜你找到了全宇宙最簡單易懂的版本, 那么上圖!
首先是I幀, 可以理解為面包片兒.
在視頻中往往會有很多畫面信息相似的幀. 比如背景固定, 人物走動.
I幀會主要儲存背景的畫面(所以體積最大). P幀和B幀會通過參考, 直接把背景復制過來用.
然后就是B幀和P幀, 可以理解為夾在其中的各種醬料, 餡兒什么的.
當背景固定, 人物走動時, P幀會負責記錄人物移動的瞬間, 順便參考I幀以補充整個背景(所以體積第二大)
B幀直接通過參考I幀和P幀補充自己的畫面(所以體積最小~)
還有一個IDR幀, 這個幀的作用就是隔離. 但同時也儲存一個I幀的畫面.
當一個GOP還未完成而畫面又突然轉變時, 如果不進行隔離的話, 后面的P幀, B幀都會參考到錯誤的信息, 所以IDR幀的第一個任務就是隔離.
而IDR幀本身又儲存了I幀的信息, 這樣后面的幀又不會變得沒有信息可參考. 所以直接把IDR幀叫做I幀也是沒問題的~
最后是GOP, 在標題中所說的可能容易被誤解
一個GOP通常從I幀開始, 再從B幀結束, 再進入下一個相同的循環. 在三明治中就能很好的理解了. 當然取用IDR幀也是有可能的!
***如果接下來的內容難以看懂, 完全可以先跳到第3, 4篇. 再回頭看會輕松很多!
緊接著--vf或者其他參數, 將這些參數全部復制到你的文本文檔里.
--crf --aq-mode --keyint --min-keyint --qcomp --chroma-qp-offset --no-dct-decimate
接下來就跟著本經驗把這些參數一個個設置好吧~
關于crf以及為什么要設crf: baike.baidu.com/item/x264#4_5
總結: crf模式
上傳動漫電影 --crf 22-23
普通錄像 --crf 24
Rip黨推薦16-18.
*為什么不用2pass?
2pass, Npass等是指第一遍分析整個視頻, 第二到N遍照著碼率大的地方壓縮. 適合小分辨率. 720p以上尤其容易炸掉畫質.
上傳用視頻普遍分辨率小的年代可以使用2pass.
--aq-mode <量化值再分配>
讓碼率分配更加合理的功能, 有1, 2, 3, 4個值.
--aq-mode 1 總體不如 --aq-mode 2
--aq-mode 4 與 --aq-mode 2 相似
--aq-mode 3 總體比 --aq-mode 2 好
所以推薦 --aq-mode 3.
--keyint (key frame interval)值設整數+四舍五入.
控制IDR幀的最大間距. 進度條只能從每個I幀開始播放.
增大/減小: 進度條可用播放落點距離增加/減小.
太大: 進度條播放落點減少, 節省很多碼率.
太小: 體積和碼率增加, 提升視頻質量
默認: --keyint 250
推薦:
電影/視頻/動漫, 一般所有情況
--keyint 幀率×10 (最大10秒一個I幀或更小)
短視頻, 觀眾不會拖動進度條
--keyint infinite (幾乎沒有I幀)
教程視頻, 觀眾經常拖動進度條
--keyint 幀率×5 (最大5秒一個I幀或更小, 反正教程類視頻沒有激烈場景, 多放幾個I幀碼率不會超限~)
進度條最大落點間隔計算: [keyint值 ÷ 視頻幀率]秒以內.
--min-keyint 值設整數, 要四舍五入.
用途: 最小允許的I幀間距
增大/減小: 和 --keyint 相同.
太大: 不推薦
太小: 推薦
默認: 自判定
推薦(所有情況): --min-keyint 1 (方便x264精確的放置IDR幀)
--scenecut 值設整數
用途: 計算前后幀的相似度來判斷場景變更, 觸發即放置IDR幀.
增大/減小: 增加/降低場景變化觸發的敏感度
推薦1: 保持默認 (--scenecut 40).
推薦2(MAD,高燃剪輯,MLG,動漫OP剪輯, 全特效廣告): 增大到 --scenecut 50 以保證視頻質量.
推薦3(模擬鋼琴, 音游錄屏): --scenecut 30
說到 --qcomp 講這個值就不得不先講 --mbtree (默認開啟)說起. 這里得借用一部分教程里說的(我做了些修改讓它更易看懂).
1.
mbtree是x264后期版本添加的功能, 負責搜索多個前后幀的宏塊.
2.
前后幀, 以及同一幀中相似的宏塊(見圖)數量越多, 量化愈低, 畫質, 體積更大更好. 反之宏塊數量越少, 量化愈高, 畫質和體積更低更小.
3.
--qcomp 默認設為 0.6, 最小/最大應設在 0.45-0.75 之間. 負責控制每個宏塊量化程度的分配.
4.
高于0.6 = 強化量化分配, 弱化宏塊搜索 應對 高分辨率+高碼率環境
等于0.6 = 默認量化分配, 默認宏塊搜索 應對 高分辨率+低碼率環境
低于0.6 = 弱化量化分配, 強化宏塊搜索 應對 低分辨率+高碼率環境
推薦:
1(一般教程視頻/無打斗動漫/PPT錄屏/模擬鋼琴): 保持默認 0.6
2(電影/錄像/一般廣告/一般游戲錄屏): --qcomp 0.67
3(一般動漫/FPS游戲錄屏/GIF圖收集/高階魔方還原): --qcomp 0.71
4(高燃剪輯/含閃光戰斗動漫/全特效廣告/東方Project錄屏): --qcomp 0.75
5(演唱會現場/夜店現場/MLG): --qcomp 0.8
6(分辨率480p以下): --rc-lookahead 250 qcomp 0.45
7*(炸裂特效MLG(建議分辨率480p以下)): --rc-lookahead 250 qcomp 0.28
最難調的參數, 沒有之一. 既然能在盡量不拖慢壓制速度的情況下降低碼率, 所以還是認真設吧... 順便rc-lookahead后面會講到, 現在用到的話先復制進去不用管.
--no-dct-decimate
用途: 關閉"肉眼不容易看到的細節拿掉, 減低文件體積的功能"的參數, 不會大量拖慢壓制速度.
推薦1: 不寫這個參數, 增加壓縮率且只略微降低畫質.
推薦2(Rip黨/YouTube): 當然要寫, 造成畫面素質降低的參數不能忍!
--chroma-qp-offset 值設整數
用途: 給色度的量化值增加一個偏移量, 可以設負值.
默認: 不設
推薦1: 不設
推薦2(片源質量高): --chroma-qp-offset 2 (x264會自動將yuv 422或yuv 420的視頻減2, 這樣設可以把值扳回來)
*如何知道視頻是RGB, YUV420, 444還是422?
情況1: 如果你安裝了potplayer播放器, 那么播放片源按Tab鍵就能知道咯~
情況2: 要自行搜索你的播放器如何查看視頻信息.
注:
YUY2 就是 YUV 4:2:2
AYUV = 帶透明通道的 YUV 4:4:4
其他情況一律不用寫~
以上, x264中最難的參數部分已經被你攻略啦, 剩下的就很簡單啦~
--sar 強制更改視頻比例
比如16:9的視頻本應顯示4:3, 加一個 --sar 4:3 就能修復.
--colormatrix
告訴播放器視頻的真正播放標準(舊NTSC, 新NTSC, PAL, SD等)
當視頻播放標準錯誤時用此功能修復. 這個參數除非要放到電視節目里否則不用設, 具體不明(得到解釋的程度太低)
--no-mbtree
這個參數添加后基本就和高壓視頻說拜拜咯, 不過有時Rip黨為了保留噪點會用到(噪點會占用碼率所以一般不推薦保留)~
--log-file
壓制并順便導出一份壓制過程記錄. 這個是給搞參數研究的人用的, 大概.
片源:
幻想萬華鏡 [VCB-S]~The Memories Of Phantasm~[01][Hi10p_1080p][BDRip][x264_2flac].mkv
重要信息:
幀率 23.98, 輸入顏色: YUY2, 片源質量高.
參數決定!
--crf 22.5 --aq-mode 3 --keyint 300 --min-keyint 1 --qcomp 0.75 --chroma-qp-offset 2
片源:
XXX曲子的synthesia鋼琴演示.mp4
重要信息:
幀率 60, 輸入顏色: AVC1, 片源質量高.
參數決定!
--crf 22 --aq-mode 3 --keyint 600 --min-keyint 1 --scenecut 35 --qcomp 0.6
--fade-compensate
拆東墻補西墻, 增加漸變畫面的質量. 所以有了10bit色深就被淘汰了.
--level
x264自己會選, 不用設置.
--profile
控制 x264 的解碼對不同播放設備支持程度的功能, 現在的設備大多都支持所以不用設置.
--no-cabac
這個參數添加后基本就和高壓視頻說拜拜咯, 這次連Rip黨也沒有待見它的了~
--vbv-bufsize
--vbv-init
--vbv-maxrate
視頻加載多少就算緩沖好了, 這個真沒啥好調的, 就算調了也不能增加網速, 是吧?
*限淛視頻呮能緩洊, 芣能茬線譒倣(篨悱緩洊慲)哋糼能
--qp
--ratetol
--pbratio
--ipratio
量化值不變壓縮模式以及這個模式下會用到的參數, 不推薦.
--nr (noise reduction)
執行快速降噪, 就算用也不如外部濾鏡或視頻編輯軟件的插件. 所以沒人用~
--fgo
強行保留噪點, 無助于壓縮而未被官方x264采取的參數. 要用更高的crf, 甚至開 --me tesa 來控制體積. 非常不適合上傳用視頻.
--ABR
--aquality
目標碼率模式(Birate)及該模式下所用到的參數. 用途是使x264在給定的碼率壓縮, 控制文件最終體積用. 但輸出質量會很差所以不推薦.
--pass
--slow-firstpass
控制多次分析-壓縮的模式以及該模式下用到的參數, 但實際上質量難以控制所以不如crf.
--opencl
除非使用x264單文件, 否則一般的壓制編碼程序會默認開啟顯卡輔助.
--open-gop
同上.
--slices
編碼藍光時設為4,除此之外不要使用這個選項,除非你知道你在干什么.
-b-pyramid strict
用于藍光編碼格式.
--tff
啟用分行壓制, 要用到的話那么估計你已經在電視臺工作了(大概).
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!