前幾天在搞OBS直播跟Youtube上傳的編碼測試
OBS的編碼有三種可以選,
NVEC(h264):硬體壓縮,是Nvidia顯卡的功能。
QSV(h264):硬體壓縮,是Intel CPU內顯的功能。
x264: 軟體壓縮,完全靠CPU運算。
軟體壓縮
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檔案
流量比較高,要注意一下播放時頻寬要夠
2. 上傳到Youtube
影片
二次壓縮後畫面糊掉,一堆馬克賽
3. 上傳到google drive
影片
影片上傳到google drive,他也會轉碼然後提供跟youtube一樣的播放器介面
意外發現原來google drive的壓縮品質比youtube好很多
雖然是比不上直接播mp4原檔,但這二次壓縮的品質已經比較能夠接受了
4. 上傳到Facebook
所以呢?
之前也試過Vimeo,畫質是比Youtube好沒錯,但其實也沒到非常的好。
而且Vimeo如果沒付費的話,使用限制也很多…而且他也不能直播
如果不在意畫質爛,那還是Youtube最方便
其實像上面的賽車遊戲影片畫面動態很大,非常吃bitrate
如果換作是一般格鬥遊戲,甚至是fps,Youtube其實畫面表現還算不錯
加上直播非常方便,還算蠻好用的啦
就設成NVENC或QSV壓縮,參數設成CBR 10000kpbs就可以了(反正更高也沒什麼意義)
真的追求高畫質,
那目前終極解決方案應該就是
把錄好的檔案傳到google drive吧
--
現在還在寫blog分享資訊的人越來越少,如果覺得文章對您有幫助,歡迎在底下留言,這樣我也比較有動力繼續寫下去,謝啦!
哈囉您好,有在網路上看到大大再教學obs的實況,小弟也參考了很多網路教學及您大大的實況教學,但始終調不到一個自己想要的畫質來呈現給觀眾,請問的電腦是I7-4970 RAM16g,顯卡1080,我參照您的去實況pubg,但實際上我用我自己的手機再觀看實況時,會覺得畫面停止不動時畫面很清楚,但人物在開始跑畫面時,就換感到非常的有顆粒及模糊感,請問我是不是哪邊設定有誤呢? 再煩請大大幫我解答,感恩再感恩。
你用的codec是?流量設多少?
其實我是尋找影片轉檔設定,誤入到這邊的,看到您分享的很詳細,不禁拜讀一遍。
原本在尋找如何在Mediacoder使用顯卡硬壓影片的設定。(還在找尋中)
只是有點疑問,據我所知,twitch甚至可以支援4K的直播,按照您的說法,3.5mb的流量如何實現?
1080p跟4k允許的流量應該不同,另外就是twitch和youtbue那邊一直在修改規則,因這篇文已經是快兩年前寫的,現在再測的話應該會留到更高流量才對。
原來如此,感謝回复。
Youtube確實很快就支援4K,Twitch也因為算是被購買過去,所以,現在的情況真的不太一樣了
你好,我之前實況遊戲很正常,不知道為何後來youtubr直播都會出現紅燈,出現視訊過低的訊息,我仍然找不到方法,看到你的文章很專業,想請此大大幫忙喔,謝謝