怎樣壓制低碼率但看起來很高清的視頻?用一般格式轉換軟體通過修改參數能實現么?

題主因為經常會收很多TS檔
所以會想把視頻壓小一點方便保存
但肯定不想犧牲畫質
我現在都是用一般的視頻轉換軟體轉成mp4等格式
(AVS Video Converter,Any Video Converter,格式工廠等等軟體)

轉成720p的時候 我一般視頻編碼用H264,幀率29,97,碼率5000
這樣壓出來的視頻清晰度雖然還行

但是看到很多字幕組或者壓制組壓出來的視頻體積都很小
720p的視頻竟然碼率也只有2000不到?
但是視頻看起來竟然十分清晰
感覺那種清晰是線條非常明晰
但是線條內的顏色都趨向於平均所以大概文件體積就會變小的感覺
比一般軟體用3000碼率的設置轉換的,線條模糊,顏色分散的視頻看起來就要「高清」的好多

這是怎麼做到的呢?

用一般格式轉換軟體修改參數能實現么?

比如題主經常用的AVS Video Converter
請問通過修改上面的參數能實現小體積的高畫質么?

輸出文件的參數是這樣設置的

H.264設置是這樣的


首先來了解一下視頻是由什麼組成的

打開Premiere的界面,試著來編輯一個視頻:

可以看到視頻=視頻軌+音頻軌(多聲道文件所以是多音軌),從後綴名(文件格式)來看,視頻軌文件名是「越獄02 .264」,音頻是「越獄02
.mp4」(因為這段音頻轉碼成AAC以後用「.mp4」封裝),奇怪,為什麼一個單獨的音頻卻是一個視頻的格式,而視頻軌卻是一個沒有見過的格式呢?

答案是,「.mp4」不是一種編碼方案,而是一種容器,如果把視頻軌文件和音頻軌文件封裝在一起(當然也可以單獨封裝成無聲影片),那麼一個視頻就產生了。


現在把重點轉移到視頻編碼上面來,編碼的目的是用最小的容量呈現出最好的畫質,電子多媒體依靠網路傳輸要克服帶寬的問題,因此視頻編碼技術應運而生,目前最重要的編碼方案是H.264,它是MPEG-4的第10部分,通常寫成MPEG4-P10/AVC/h.264,如下圖是一個封裝器的界面。

編碼技術是如何實現以低容量呈現高水平畫質的呢?答案是:控制FPS值。什麼是FPS,每秒傳輸幀數(Frames Per Second),每秒鐘24幀就不會被人眼發覺,一張張靜態的圖片就成了生動的畫面了。


在視頻採集階段,為了避免因素材質量不高後期編輯編輯困難往往要補拍的情況,攝像機採集視頻素材的時候以每秒固定的幀率錄製畫面(當然也有的可以調節以控制容量),假設固定機位進行錄製,由於畫面的變動不大,錄製影片的容量大致=時長×FPS×單幀容量。畫質的上限取決於CMOS的質量,相機內部也有一套編碼系統,因此,單幀容量和拍攝照片的容量一樣是可控的,質量越高,容量越大。


在編輯階段,我們首先脫去一個視頻文件的外衣(封裝器,一些封裝器如「.mkv」不被Premiere認可),把一個視頻拆分成視頻和音頻兩個文件,導入Premiere進行編輯,Premiere可以以幀為單位對視頻進行控制、調節,然後輸出文件(以輸出藍光H.264編碼為例),會分別得到一個視頻文件(無聲),一個音頻文件,最後用Mkvmerge封裝成一個「.mkv」文件,一個視頻就做出來了。


但是你會發現,用上面的參數導出的視頻質量很好,但是容量很大,H.264不是會在降低容量的同時,保證畫質嗎?現在畫質是保證了,說好的容量呢?答案是:FPS。在恆定幀率下,FPS值保持不變,按照上面的計算公式:容量=時長×FPS×單幀容量,也就是說,從素材到編輯出片,這個公式一直適用,五分鐘的視頻要了800M,這讓我怎麼傳百度雲來分享!?誰來拯救我的硬碟!?

於是H.264亮出了殺手鐧:動態幀率。讓我們回到這個公式:容量=時長×FPS×單幀容量,現在來大膽YY一下,假設,我在保持單幀容量(畫質)的前提下,不降低時長,把FPS值調低,不就達到縮小容量的目的了嗎?哈哈哈,先別高興,上面提到,每秒24幀就達到了人眼可以分辨的極限,要是強行調低,人眼可以分辨了,那不成了GIF圖了么!?

怎麼辦,請殺手鐧。動態幀率,試想一下,既要保證畫質,又要保證容量,還要調整FPS值,怎麼辦?H.264的策略是,當畫面比較簡單,減少幀率也不會發現,而動態畫面就用大點的幀率來呈現,這樣一來就達到了不降低畫質而縮小幀數的目的,容量也就自然變小了。


接下來,請出MeGUI,調出x.264編碼器,轉碼,恆定幀率變動態幀率,於是一段低碼率但是很高清的視頻就出爐了。


真正的壓制工具是vspoursynth + x265,壓h265 10bit,需要的話配合降噪,16bit精度處理,GUI不過是個殼子,而且很難滿足真正的壓制需要


題主的這個問題屬於轉碼範疇,演算法設計人員是回答此問題的最佳人選。作為外行,只談幾個基礎知識。

  • 使用multi-pass模式,演算法會對圖像做多次分析,可提高壓縮效率。
  • 使用VBR(可變碼率)模式,對給定目標碼率,可提供比CBR模式更高的壓縮效率。
  • 使用與原視頻一致或較低的幀頻率,使用較原視頻更高的幀頻率意味著人為提高了碼率。
  • 使用適合的Profile與Level組合。

順便說一下,題主描述的邊緣清晰而連續區域平滑的現象,與應用bilateral filter的結果相似,而H.264/AVC正是利用了這種濾波器。


參考文獻

[1] http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC

[2] Producing H.264 Video for Flash: An Overview


用AVS+MeGUI,H265 10bit編碼,比你現在用的同文件大小碼率可以低一半效果還比你好。
注意,幀率這個東西是片源多少你轉壓就用多少,別改!如果你以為幀率越高越好不管片源參數,那說明你基礎知識還沒打好,先停止壓片重新學習。


推薦個小丸工具箱,默認設置下,可以把三星手機拍的絕大部分視頻壓縮到1/10不到一點!
為什麼強調手機呢,因為那個雜牌酷派視頻拍的不怎麼樣,但是不知為何就是很難壓縮!
這也是一位zhihu網友介紹的,非常感謝!


推薦閱讀:

TAG:視頻格式 | 高清 | 格式轉換 | 轉碼 | 視頻轉換 |