快轉到主要內容

Jellyfin影片解碼問題:直接播放 (Direct Play) 與轉碼 (Transcoding) 的差別

· 民國114年乙巳年
·
切換繁體/簡體
分類   Linux系統 Self-hosting自架
標籤   Jellyfin
目錄

使用Docker安裝Jellyfin之後,就能播放影片了。

雖說Jellyfin用網頁瀏覽器就可以看,不過實際上不建議這樣做。可能會導致播放不順,畫面聲音不同步。

Jellyfin網頁在播放影片的時候,點右下角切換「品質」,選擇「Driect Play」會直接串流原始檔案。若是選擇其他畫質,Jellyfin的伺服器端會在串流影片的時候進行即時轉碼,讓串流比較順暢。對硬體較弱的電視盒客戶端來說,此作法也有助於提昇相容性。

什麼時候選Direct Play?什麼時候要轉碼?
#

這要看你是在區域網路播放,抑或是從外部網路遠端播放。

「Direct Play」播放的一律是原始畫質的影片,就好像在用影片播放器直接開啟SMB分享的檔案一樣,對頻寬要求較高,適合區域網路使用。

一旦切換到其他品質,Jellyfin就會進行轉碼。

從外部網路連線到家中的Jellyfin,通常會因為網速問題需要切換到其他品質,以求降低頻寬佔用,則得讓Jellyfin進行轉碼。

如果是用網頁瀏覽器播放Jellyfin影片的話,影片串流的時候容易遇到解碼問題。譬如原始影片是H.264編碼,則大多數瀏覽器都支援解碼,也就能使用Direct Play。不過如果是AV1編碼可能就會遇到瀏覽器不支援的問題,像iOS Safari就會黑螢幕。此時Jellyfin伺服器端會嘗試即時轉碼成H.264,防止影片無法播放。

Jellyfin並不會在後台把影片轉檔再串流,一律都是在串流的時候才即時轉碼的。

是否要讓Jellyfin的進行轉碼?
#

如果說Jellyfin的伺服器硬體不好,會大大影響串流體驗,可能你只是想播放一部4K影片,但卻被轉碼拖累;或者明明客戶端硬體支援更多影片解碼,卻因為瀏覽器的關係被限制住。

因此網速足夠的情況下,我會使用Direct Play,盡量不要讓Jellyfin伺服器進行額外的轉碼作業。

用瀏覽器播放Jellyfin影片,很容易遇到沒有解碼器,無法使用Direct Play的情況。

確認Jellyfin的轉碼狀態
#

如何確定Jellyfin是Direct Play還是有在轉碼?嘗試播放一部影片,看品質選項有無顯示「Direct」就知道瀏覽器支援不支援該部影片編碼了。

在播放影片的時候開新分頁,點Jellyfin右上角管理員設定 → 控制台 → 使用中的裝置,點一下i,可以知道正在播放的影片是否為Direct Play,或者正在轉碼。

「直接播放」就是Direct Play。

「重新封裝中」就是在轉碼。且串流的時候轉碼,Jellyfin伺服器的CPU負載會顯著上升。

上面說到,Jellyfin的伺服器硬體不好還進行轉碼的話,會大大影響串流體驗。

這個時候,要嘛啟用GPU硬體加速轉碼:Jellyfin啟用硬體加速解碼

要嘛就不要用瀏覽器播放了,改裝內含解碼器的Jellyfin客戶端:Jellyfin原生解碼器的客戶端

相關文章

Jellyfin:用Docker自架可調畫質 + 硬體解碼的影片音樂串流伺服器
分類   Linux系統 Self-hosting自架
標籤   Media Server Jellyfin
Jellyfin Docker啟用GPU硬體加速轉碼,讓串流更順暢
分類   Linux系統 Self-hosting自架
標籤   Jellyfin
透過LinuxServer.io打包的Docker映像檔,將桌面程式轉成網頁版,透過瀏覽器即可使用
分類   Linux系統 Self-hosting自架
標籤   Docker Remote Desktop VNC

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。