Fari

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使用的注意事项

  1. 创建媒体库时,只能选择你创建docker容器时挂载的目录,例如,上面配置中我只挂载了 /media 目录,则创建媒体库就只能选择这个目录下的东西,其他还有我注释掉的两个挂载目录,如果取消注释,则也能选。

  2. 创建媒体库类型为“混合电影和电视剧“时,需要填写”显示名称“字段,否则就会一直转圈

  3. 添加媒体库时,下面会有一些下载元数据的选项,默认都勾上了,都去掉,否则你的电视剧很大可能识别不出来,点击播放时会提示你格式不支持

  4. 对电视剧或电影的命名规则,网上说电视剧必须是三级目录:剧->季->集,但实际不用,只需要 剧 -> 集 即可,对目录名称没有特定要求,不用一定命名成 S0E0 这种,具体规则参加文档:https://jellyfin.org/docs/general/server/media/shows/

  5. 使用“节目”类型时,季名称中不应该含剧名称,例如 蜡笔小新>蜡笔小新第一季>1_xxx.flv 不行,正确的应该是 蜡笔小新>第一季>1_xxx.flv

  6. 手机app打开就会让你输url,此时输 stream.woyou.cool 即可,这是nginx上配置的转发地址