尽管飞牛影视刮削速度快、识别率高,但对于像我这种有科学网络环境、且已经有按 Jellyfin 对文件进行命名习惯的用户来说并不算优势了。而且由于飞牛影视的播放功能还算不上完美(跳过片头片尾,说的就是你!),因此还是用 Jellyfin 比较舒服。
网络问题
由于需要配置科学网络环境,因此这里是用 docker 部署的。当然也可以改 hosts,但不能一劳永逸。
方法一:http_proxy 环境变量
如果在内网中已经在某主机上配置过了 http 代理服务(e.g. windows 上开的可局域网共享的代理软件也行),则可以在 docker compose 项目中指定环境变量 http_proxy 来上网,这是比较简单的方案了。e.g. docker-compose.yml 文件如下
services:
jellyfin:
image: 'jellyfin/jellyfin:latest'
devices:
- '/dev/dri:/dev/dri'
volumes:
- '/vol1/1000/media_center:/media_resources'
- '/vol1/1000/virtual_machines/jellyfin/config:/config'
- '/vol1/1000/virtual_machines/jellyfin/cache:/cache'
privileged: true
restart: always
ports:
- '8096:8096'
container_name: jellyfin
environment:
- http_proxy=http://192.168.1.24:10809
- https_proxy=http://192.168.1.24:10809
- no_proxy=127.0.0.1,localhost
方法二:macvlan 指定科学网关
这种方案适合配置好旁路由等科学网关的情况,可以更全面地上网。且该方案可以使容器拥有独立 ip,有些情况下还是比较有用的。
- macvlan 要求网卡开启混杂模式(如果网卡开启过 ovs,要选带 ovs 的那个)
sudo ip link set enp5s0-ovs promisc on
- 创建 macvlan 网络,命名为 openwrt,假设科学网关的 ip 为 192.168.1.24
sudo docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.24 -o parent=enp5s0-ovs openwrt
- docker-compose.yml 中指定使用 openwrt 网络,且必须指定 dns 也为科学网关。如果这个漏了,容器内的 dns 解析依然会有问题
services:
jellyfin:
image: 'jellyfin/jellyfin:latest'
devices:
- '/dev/dri:/dev/dri'
volumes:
- '/vol1/1000/media_center:/media_resources'
- '/vol1/1000/virtual_machines/jellyfin/config:/config'
- '/vol1/1000/virtual_machines/jellyfin/cache:/cache'
privileged: true
restart: always
dns: 192.168.1.24
ports:
- '8096:8096'
networks:
openwrt:
ipv4_address: 192.168.1.22
container_name: jellyfin
networks:
openwrt:
external: true
name: openwrt
- 通过以上方法整完后,可以在容器终端内进行验证
curl -v https://api.themoviedb.org

这种是成功的

这种是失败的

硬解问题
- 首先,容器创建时要设置高权限运行
privileged: true
- 另外,硬件地址可以从容器终端中进行查询。我这里两个分别是核显和独显。(最后我用的 intel 核显进行加速,据官方说效果更好)

- 如果还遇到硬解失败的问题,可以尝试通用的开源驱动 Video Acceleration API (VAAPI),比如我的 AMD 显卡(RX560)用 AMD AMF 反而驱动不了,会报错

中文字体支持
可以参考这篇教程