自託管流媒體平台的基礎使用(jellyfin) - 基於Docker

出自Wired
跳至導覽 跳至搜尋
因同质性,本文移植后由原jellyfin/emby/plex三篇文章汇聚而成,不过我个人只用jellyfin
前置条件:unraid开启cpu核显

Jellyfin

推薦版本:nyanmisaka的jellyfin

一、安裝Jellyfin

> app商城搜索「jellyfin」。切換至「Click Here To Get More Results From DockerHub」

找到「NyanMisaka」開發的jellyfin(善用ctrl+f)並安裝

> 在配置頁面,設置cache(緩存)與media(媒體庫)文件夾

緩存文件就是保存了臨時文件、和刮削出來的一些略縮圖等

> 在文末點擊「 Add another Path, Port, Variable, Label or Device」添加新參數,以便開啟硬解

> 「Config Type」選擇「device」,「Value」選擇驅動位置即「/dev/dri/」(默認就在dev目錄下,尋找dri文件夾即可),其他隨意,想要穩妥點用英文而非中文也可。

> 設置完成後保存配置即可

二、設置jellyfin

點擊圖標運行發現是命令行?別慌,看ip

瀏覽器訪問jellyfin對應的你家內網IP+端口號即可


發現訪問進去後不是設置頁面?清除瀏覽器緩存試試

或者直接訪問:http://你的内网ip:你的端口/web/index.html#/wizardstart.html 試試

如若行不通請重裝(重裝之前在appdata目錄刪除jellyfin的文件夾)

之後再度訪問它

初設置:

> 語言:漢語(簡體字)

> 用戶名:root(可以自定義,我推薦默認的root)

> 密碼:自定義

> 設置媒體庫:先跳過,隨時可以添加

首選元數據語言

> 語言:chinese

> 國家/地區:p開頭的,這是中國全稱

設置遠程訪問:保持如下圖默認狀態即可,不必開啟端口映射,後續路由器自己設置就行

大功告成

開啟硬解:

> 在【控制台】—【播放】—【硬件加速】欄選擇「QSV」或「VAAPI」(我選擇的是QSV)

ps:如果是選擇了VAAPI會讓你選擇驅動路徑,默認已經是在dev目錄內了,所以找到dri目錄並選擇就行了

> 啟用硬件解碼相關的設置建議能勾都勾

> 在頁面底部保存即可

添加媒體庫:

登陸後自動跳轉到首頁,可以按照提示點擊創建,也可以在左側菜單欄選擇

> 在【控制台】—【媒體庫】中選擇添加媒體庫

掃描媒體庫適用於規範的文件夾,可以快速添加,這裏以手動創建為例

> 選擇內容類型:根據你的需要選擇

> 設置要顯示名稱

> 設置首選語言和地區

> 點擊設置文件夾(點擊旁邊的加號)

> 選擇路徑「/media」此路徑映射就是配置時設置的那個路徑

你可以在裏面創建文件夾來進行分類影視

示例:

其他:

他是自帶了一些內置的元數據獲取插件(刮削器),不過有些可能需要魔法解決,後面看使用的具體情況考慮是否換就行,這裏默認即可)

可以勾選「將媒體圖像保存到媒體所在文件夾」,如其簡介所說,方便編輯,然後刮削的單集截圖文件會被存放在影視文件夾中,有一個新建文件夾:metadata

保存即可

 

進一步設置

鼠標懸浮至該媒體庫,點擊右下角的更多,可以修改

按照需求進行編輯即可,設置封面之類的

(在具體的影視上點擊「編輯元數據」可以修改年齡限制評級和具體的元數據信息)

測試:

大功告成!

設置里還可以設置用戶組、添加用戶、指定用戶可以訪問哪些媒體庫等等,可以自行設置里探索,或者我後面會出文章介紹我所設置的選項。

解碼相關:

實測VAAPI默認只勾選的那幾個解碼,播放器來很流暢,很迅速,但是cpu佔用過高

可是視頻參數裏顯示不支持轉碼,雖然核顯確實被用了,但是估計沒正常走轉碼

然後我將所有解碼都勾選上,佔用低了,可是異常的卡,動一動卡半天

之後經由大佬指路,換成了qsv算是完美解決了,緩衝還是慢些,但只卡頓兩三秒(4K),佔用也很低,運轉佔用10左右,緩衝了有一段之後佔用更低

三、進階設置

前半篇文章正式將jellyfin投入使用了,實際上,在中文的頁面下,他的設置項是非常的清晰的,都是字面意思,您可以花費一些時間去看一圈,將自己需要的給設置上。

1、新建/管理用戶

> 【控制台】中選擇【用戶】,點擊加號即可新建用戶

> 設置登錄賬戶和密碼,同時可以設置媒體庫訪問權限

> 單擊右下角更多按鈕,上面三個隨便選一個進入即可。

> 在【簡介】選項卡中可以更改用戶名、設置管理媒體庫權限播放限制速率限制、以及同時登陸設備數量限制

> 在【訪問】選項卡中可以設置允許訪問的媒體庫、取消勾選設備訪問口,會出現一個登陸過的列表,可以設置白名單,限制其他設備訪問

> 在【家長控制】選項卡中可以設置評級,適合給家裏有小孩的用,可以限定可訪問的最大電影評級,或限制訪問時間

> 在【密碼】選項卡中可以修改賬戶密碼,下方有一個pin碼,我原本以為類似於Netflix的pin碼,一個主賬戶多個子賬戶,不同pin碼對應不同賬戶,可是試了試不對,目前還沒有拓展出玩法

2、字幕設置

你在在影視的適合如果發現字幕的位置不對,那麼不用慌

> 點擊右上角的頭像,選擇【字幕】

> 調整字幕垂直位置

負數代表從下到上,因此「-1」就是字幕在視頻最下方,「-16」是可設置的最上方

正數代表從上往下,因此「1」就是字幕在視頻最上方,「16」是可設置的最下方

一般根據習慣設置為-1、-2都可。具體還是看習慣

注意,該設置是針對設備的設置,此設置僅對當前用戶的當前設備生效,你有其他客戶端的話,還是要手動設置一下

3、解像度設置

默認解像度是最高畫質,像是4k,如前文所說,對cpu負載1080和4k差不了多少,而一般的手機或電腦設備也無所謂這點區別,可如果普通wifi網絡還行,流量的環境下,那不直接gg


> 點擊右上角的頭像,選擇【播放】

可以自行設置默認播放解像度(如果為自動會根據網速自動調整)、跳轉按鈕的時間跨度

疑難雜症:安卓版客戶端播放卡頓、無法識別imdb

遇到的兩個應該是bug的問題:

問題:安卓端jellyfin播放卡頓、只有聲音播放,畫面不動。

經過測試,tv版正常,搜了下問題的英文描述,有相同案例,我是一開始正常使用,後面突然(應該是更新了一下)不行了的。

非技術人員,目前的解決方案是 「客戶端設置」更改視頻播放器為「綜合(integrated player)」或「外部」(External player)

原理不知道,解決思路是網頁、linux/win客戶端、tv版都正常,那就是安卓版的問題,人為能控制的也就是不同客戶端具體的設置,就試了試,體驗(操作上)不如原版播放器好用,但主要還是電腦看片,無所謂。

 

問題:手動輸入imdb識別無效,能找到正確的電影,但是無法替換任何數據。

搜了下也有相同案例。這個比較玄學,印象中有幾次正確修改了,有的只能替換圖片,有的改成了亂七八糟的東西。

最後解決了,但不知道哪裏起了作用,畢竟非技術玩家,也懶得試驗。反正我是安裝了個imvdb的插件已經安裝TMDb的插件了),媒體庫設置里把anidb等無關的元數據獲取渠道取消勾選,重啟jellyfin,第一次是用tmdb識別的,正常替換數據,然後用imdb也一切正常了。不清楚具體哪裏起了作用。

 

總而言之,在不清楚技術原理及沒有對應的技術水準理解問題根源的情況下,遇事不決靠玄學,能用就用,少折騰最好。

emby

推薦版本:lovechen的emby

一、安裝emby

> app商城搜索「emby」。切換至「Click Here To Get More Results From DockerHub」

  • 圖片還是用的jellyfin的圖片,懶得換了,搜索emby即可

找到「lovechen」的emby(善用ctrl+f)並安裝

> 在配置頁面,設置端口及media(媒體庫)文件夾

> > 注意端口設置,如果端口衝突修改下,不衝突保持默認即可

> > 設置media(媒體庫)文件夾

從上往下分別是:該設置的名稱容器內部目錄對應的外部實際目錄

前兩者自定義即可,沒有要求,僅作為標識存在

> 在文末點擊「 Add another Path, Port, Variable, Label or Device」添加新參數,以便開啟硬解

> 「Config Type」選擇「device」,「Value」選擇驅動位置即「/dev/dri/」(默認就在dev目錄下,尋找dri文件夾即可),其他隨意,想要穩妥點用英文而非中文也可。

> 設置完成後保存配置即可

二、設置emby

點擊圖標運行發現是命令行?別慌,看ip

瀏覽器訪問emby對應的你家內網IP+端口號即可


發現訪問進去後不是設置頁面?清除瀏覽器緩存試試

或者直接訪問:http://你的内网ip:你的端口/web/index.html?start=wizard#!/wizard/wizardstart.html 試試

如若行不通請重裝(重裝之前在appdata目錄刪除emby的文件夾)

之後再度訪問它

初設置:

> 語言:Chinese Simplified

> 設置root用戶和密碼(賬戶名和密碼自定義即可)

> 新建媒體庫,暫時跳過(直接選「Next」)

> 選擇元數據(刮削)語言和地區(中國是「china」,但位置在「P」開頭的區域)

> 設置UPnP,建議自行路由器端口映射,這裏取消勾選

> 接受服務條款並下一步,再點擊完成即可

> 登陸賬戶即可

添加媒體庫

> 點擊右上角的設置按鈕進入控制台(儀錶盤)

> 在左側「伺服器」欄選擇「媒體庫」選項

> 點擊「新媒體庫

> > 選擇內容類型、顯示名稱

> > 添加媒體庫文件夾

> > 設置元數據語言、國家(與前面機制一樣)等

#Jellyfin大同小異,因為伺服器性能不再額外截圖

之後等待一會

> 測試:

大功告成。其他諸如新建用戶、播放等細節的設置均可參考#Jellyfin的相關設置,大同小異

plex

推薦版本:官方的或者linuxserver的都行(本教程用的官方的)

ps:plex沒有開心版方案,jellyfin是開源的,emby有開心版

一、安裝plex

> app商城搜索plex,下拉找到並安裝官方鏡像

> 在配置頁面 設置臨時目錄:隨意,轉碼產生的臨時文件存放處,我是設置到了appdata目錄下,這個無要求

> 設置映射文件夾:實際存放影視的文件夾,可以根據需求添加多條映射

> 設置PLEX_CLAIM:(提前登錄好plex賬戶)訪問:https://www.plex.tv/claim/ 查看claim代碼(有效期4分鐘,注意時限)

(圖中ip的設置是因為我有需求,單獨分配了ip,沒有需求的話按照默認設置即可)

> 添加硬解驅動 方法1:點擊右上角進入高級設置,在extra parameters欄添加--device /dev/dri:/dev/dri設置硬解驅動

>添加硬解驅動 方法2:新加一個參數,type選為device,name自定義,value設置為/deb/dri

方法2是傳統的方式,方法1原理一致,我個人使用的方法1

 

添加之後,點擊apply等待拉取鏡像完成後:

> 在docker頁面點擊plex圖標選擇webui,或直接輸入你的內網ip:32400(默認端口)訪問plex。首次會跳轉至plex官網

> 官網頁面核對賬戶後確認登錄

> 核對後會再次返回內網webui端口,首次提示是否開啟同步,英文機翻過來也不好確定意思,應該就是觀看歷史或者影視評級之類的?開不開無所謂,我是給點開了,隨時可以關閉

>下個頁面是plex工作原理提示,確認即可

> 基礎設置:設置plex名稱和瑣項。名稱自定義即可,資料庫可以稍後設置這裏直接下一步跳過

> 下載應用官方給的服務端(雖然切換按鈕就在旁邊)網址,這個是->各端客戶端下載,也可以直接app商城搜索。之後點擊完成即可

> 個性化設置媒體,默認即可,點擊完成

二、基礎設置plex

添加媒體庫

> 由於沒有設置媒體庫,默認是plex自己提供的一些流媒體服務,點擊左側菜單欄的「更多」,選擇自己的媒體庫

> 點擊「管理庫」(或直接在控制台的設置里找到管理--媒體庫

> 點擊新加資料庫(如果添加了內容,可以點擊掃描資料庫文件更新資料庫)

> 設置媒體庫類型,根據你媒體庫內容而定和媒體庫文件夾名稱,自定義即可,需要注意的就是語言,選擇中文即可

> 設置媒體庫文件夾,在data(默認容器內部映射路徑)目錄下選擇影視存放的文件夾,點擊添加即可

> 等待自動刮削(plex有自己的刮削伺服器不用自己設置)完成即可

高級設置里可以自定義一些具體的設置,都是字面意思,如無特殊需求無需單獨設置,可以自行瀏覽下

編輯媒體庫

> 如果設置錯了,可以在媒體庫文件夾里點擊三個豎點(⋮)--管理資料庫--編輯中隨時更改(媒體庫類型無法更改)

> 如果修改的是語言等數據,可以點擊上面設置頁面編輯下方的「刷新所有元數據」即可

> 自帶的plex官方的媒體庫覺得煩人可以取消固定,點擊三個豎點(⋮)--取消固定即可

使用硬解

> 播放視頻看一下核顯佔用,或者在設置--面板中看一下是否有HW標誌,有則代表使用了硬解

> 如果沒有使用硬解,在設置--轉碼器里勾選可用時使用硬件加速

> 如果還是無硬解,則取消勾選「啟用高動態範圍色調映射」

順帶一提,plex解碼有點問題,部分影視可以很好的硬解,但是有部分電影會有解碼瓶頸,我這裏是核顯跑到10%就跑不上去了,以至於正常播放一段時間緩衝跟不上來就很卡,更別提加載、轉碼等更改設置了。

目前來看,解決方案是關閉字幕……沒錯,字幕的鍋,很無語

轉碼器臨時目錄的話,我這裏因為解碼問題,linuxserver和官方的來回換着測試,上圖是linuxserver的plex,默認沒有轉碼目錄我自己映射了一個,官方的設置好轉碼臨時目錄時會自動填充設置的文件夾,不需要更動