jellyfin流媒体搭建
官网有docker安装教程:https://jellyfin.org/downloads/docker
但是我没有使用docker run 命令运行,而是采用了 docker-compose 的方式
docker容器部署在旧笔记本上,使用frpc连接到百度云服务器,云服务器上再使用nginx docker容器进行转发,基本过程为:
http://stream.woyou.cool —> nginx —> http://frps:8896(云服务器的docker内部) —> 旧笔记本的frpc端口 —> 旧笔记本的8896端口 —> jellyfin docker容器
docker-compose.yml文件用于创建jellyfin容器,在旧笔记本的 /home/hunt/Documents/docker_properties/jellyfin 目录下,内容为:
version: "2.1"
services:
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
#- /home/hunt/Documents/docker_properties/jellyfin/volumes/config:/config
#- /home/hunt/Documents/docker_properties/jellyfin/volumes/data/tvshows:/data/tvshows
#- /home/hunt/Documents/docker_properties/jellyfin/volumes/data/movies:/data/movies
- /home/hunt/Documents/docker_properties/jellyfin/volumes/data/:/media
ports:
- 8096:8096
restart: unless-stopped
在该配置文件下创建好 volumes/data 目录,然后执行 sudo docker-compose up -d
即可创建并运行容器
然后修改旧笔记本上 frpc 的配置文件:/opt/frp_0.44.0_linux_amd64/frpc.ini
[common]
server_addr = woyou.cool
server_port = 7001
tls_enable = true
#protocol = kcp
[jellyfin]
type = tcp
local_ip = 127.0.0.1
local_port = 8096
remote_port = 8096
use_compression = true
云服务器需要在nginx的配置文件中加上jellyfin的server项
注:原来我希望所有的流量都重定向到https,但是这个流媒体服务我懒得申请了,于是我就将重定向规则修改为除了以stream.woyou.cool外都重定向,见下面代码的注释部分
# 用于将http都重定向到https
#server {
# listen 80;
# server_name *.woyou.cool;
# rewrite ^/(.*) https://$host/$1 permanent;
#}
server {
listen 80;
server_name .*(?<!stream)\.woyou\.cool; # except stream.woyou.cool
rewrite ^/(.*) https://$host/$1 permanent;
}
# 其他server
server {
...
}
# stream media
server {
listen 80;
server_name stream.woyou.cool;
access_log /opt/bitnami/nginx/logs/huntzou_website.log;
error_log /opt/bitnami/nginx/logs/huntzou_website_error.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header HOST $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://frps:8096/;
proxy_redirect off;
}
}
jellyfin使用的注意事项
-
创建媒体库时,只能选择你创建docker容器时挂载的目录,例如,上面配置中我只挂载了 /media 目录,则创建媒体库就只能选择这个目录下的东西,其他还有我注释掉的两个挂载目录,如果取消注释,则也能选。
-
创建媒体库类型为“混合电影和电视剧“时,需要填写”显示名称“字段,否则就会一直转圈
-
添加媒体库时,下面会有一些下载元数据的选项,默认都勾上了,都去掉,否则你的电视剧很大可能识别不出来,点击播放时会提示你格式不支持
-
对电视剧或电影的命名规则,网上说电视剧必须是三级目录:剧->季->集,但实际不用,只需要 剧 -> 集 即可,对目录名称没有特定要求,不用一定命名成 S0E0 这种,具体规则参加文档:https://jellyfin.org/docs/general/server/media/shows/
-
使用“节目”类型时,季名称中不应该含剧名称,例如 蜡笔小新>蜡笔小新第一季>1_xxx.flv 不行,正确的应该是 蜡笔小新>第一季>1_xxx.flv
-
手机app打开就会让你输url,此时输 stream.woyou.cool 即可,这是nginx上配置的转发地址