OBS直播編碼設定及Youtube畫質

前幾天在搞OBS直播跟Youtube上傳的編碼測試
OBS的編碼有三種可以選,
NVEC(h264):硬體壓縮,是Nvidia顯卡的功能。
QSV(h264):硬體壓縮,是Intel CPU內顯的功能。
x264: 軟體壓縮,完全靠CPU運算。

youtube.png

軟體壓縮

CPU軟體壓縮因為可以自定各種不同壓縮方式,通常壓縮率較佳,同流量下畫質較好。
但是CPU跑不動的話也是白搭。
以x264為例,如果壓縮方式設成為ultrafast、superfast這些比較低負擔的壓縮方式
出來的壓縮率跟硬體壓縮比起來其實也高明不到哪裏去
但是如果設定為veryfast以上CPU吃太兇,跑遊戲就危險了
我用i7-6700k去跑,還是覺得用x264壓縮負擔還是太重了些
除非接錄影盒把畫面導到另外一台電腦去壓縮
不然我覺得單機軟體壓縮還是不太實際的作法
畢竟現在硬體壓縮用起來超輕鬆的

硬體壓縮

NVENC和QSV的壓縮品質我是覺得差別不大,看自己有哪種就用
低流量(碼率,bitrate)的情況下,兩個都一樣爛
只是差別在爛的方式(格子、模糊等等)有點不太一樣而已
5Mbps以下就別想了,兩者都慘不忍睹,沒什麼好比較的
但如果拉到20Mbps以上,壓縮出來的畫質就相當接近於原本畫面
至少是不會讓你覺得有明顯壓縮破壞
例如Nivida的GameStream就是用NVENC在串流遊戲畫面
他用的流量最高也只到30Mbps看起來就很棒了
以現在大家用的網路頻寬來講,這流量大小用來直播應該也還能接受
一般來說用NVENC可能會比較方便,因為NV的內建功能,在遊戲中alt-z就可叫出錄影介面,還蠻方便的
不過如果是在客廳電視串流玩PC上的遊戲,NVENC已經被用掉沒法錄影了
所以我在OBS是設定用QSV,一人各作一件事省的切換
反正兩個看起來都差不多

Youtube直播

Youtube能接受的直播流量以前看人家說是10Mbps
大概他後來有提高,我測試的時候推20Mbps的串流給他,他也還吃的進去
所以直播的時候理論上我們只要在20Mbps的範圍內儘可能餵給他好一點的畫面就行了
這樣看起來其實用NVEC或QSV來餵就很夠了,不需要為了追求壓縮率而用上CPU壓縮
而且重點是
不管你的編碼怎麼選擇、流量怎麼設定
上傳到Youtube之後,他一定都會來個二次壓縮 — 把你的影片壓爛!
我一面直播推20Mbps的串流到Youtube,一邊打開串流來看
觀察上傳/下載使用的頻寬
可以發現Youtube傳回來的流量只有大約5Mbps左右而已

Youtube vs Twitch

Twitch不會作二次壓縮,可以保留原檔
但他流量上限只有3.5Mbps
這麼低的流量就算用x264用高壓縮率的方式來壓,還是很慘
再加上twitch影片不能永久保存
所以是在意畫質而不需要直播聊天室之類功能的話
Youtube會比較方便

Youtube畫質比較

為了想知道Youtube二次壓縮的畫質爛到什麼程度
我錄了一段NVENC 20Mbps的mp4影片(1080p 30fps)
上傳後各抓一張圖來作比較

1. html5直接播放mp4原始檔案 影片(壞掉了,修理中)

這我自己弄的撥放器,可以直接播放原始20Mbps檔案
流量比較高,要注意一下播放時頻寬要夠
web-mp4.png

2. 上傳到Youtube 影片
二次壓縮後畫面糊掉,一堆馬克賽
youtube.png

3. 上傳到google drive 影片
影片上傳到google drive,他也會轉碼然後提供跟youtube一樣的播放器介面
意外發現原來google drive的壓縮品質比youtube好很多
雖然是比不上直接播mp4原檔,但這二次壓縮的品質已經比較能夠接受了
youtube-gdrive.png

4. 上傳到Facebook
爛中之王,連Youtube都笑了
facebook.png

所以呢?

之前也試過Vimeo,畫質是比Youtube好沒錯,但其實也沒到非常的好。
而且Vimeo如果沒付費的話,使用限制也很多…而且他也不能直播
如果不在意畫質爛,那還是Youtube最方便
其實像上面的賽車遊戲影片畫面動態很大,非常吃bitrate
如果換作是一般格鬥遊戲,甚至是fps,Youtube其實畫面表現還算不錯
加上直播非常方便,還算蠻好用的啦
就設成NVENC或QSV壓縮,參數設成CBR 10000kpbs就可以了(反正更高也沒什麼意義)
真的追求高畫質,
那目前終極解決方案應該就是
把錄好的檔案傳到google drive吧

在 “OBS直播編碼設定及Youtube畫質” 有 6 則留言

  1. 哈囉您好,有在網路上看到大大再教學obs的實況,小弟也參考了很多網路教學及您大大的實況教學,但始終調不到一個自己想要的畫質來呈現給觀眾,請問的電腦是I7-4970 RAM16g,顯卡1080,我參照您的去實況pubg,但實際上我用我自己的手機再觀看實況時,會覺得畫面停止不動時畫面很清楚,但人物在開始跑畫面時,就換感到非常的有顆粒及模糊感,請問我是不是哪邊設定有誤呢? 再煩請大大幫我解答,感恩再感恩。

  2. 其實我是尋找影片轉檔設定,誤入到這邊的,看到您分享的很詳細,不禁拜讀一遍。

    原本在尋找如何在Mediacoder使用顯卡硬壓影片的設定。(還在找尋中)

    只是有點疑問,據我所知,twitch甚至可以支援4K的直播,按照您的說法,3.5mb的流量如何實現?

    1. 1080p跟4k允許的流量應該不同,另外就是twitch和youtbue那邊一直在修改規則,因這篇文已經是快兩年前寫的,現在再測的話應該會留到更高流量才對。

      1. 原來如此,感謝回复。

        Youtube確實很快就支援4K,Twitch也因為算是被購買過去,所以,現在的情況真的不太一樣了

  3. 你好,我之前實況遊戲很正常,不知道為何後來youtubr直播都會出現紅燈,出現視訊過低的訊息,我仍然找不到方法,看到你的文章很專業,想請此大大幫忙喔,謝謝

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *