jellyfin安装设置使用散记
文章目录
- jellyfin安装设置使用散记
- 0 软件简介
- 1 安装
- 2 视频转码问题
- 2.1 局域网转码情况测试(不同网段)
- 2.2 局域网jellyfin app默认转码问题解决
- 2.3 外网转码情况测试
- 3 一些坑
- 4 插件
- 5 最后
0 软件简介
Jellyfin 是一个自由的软件媒体系统,用于控制和管理媒体和流媒体。它是 emby 和 plex 的替代品,它通过多个应用程序从专用服务器向终端用户设备提供媒体。Jellyfin 属于 Emby 3.5.2 的下一代完全开源实现。完全免费。可以作为Kodi的后端资源库(Kodi上安装jellyfin客户端)
- 特性:
Movies:保存所有电影集,并会显示对应的海报
TV Shows:收集电视节目,并让它们自动分组
Music:音乐收藏,制作播放列表
Live TV & DVR:观看现场电视和设置自动录音,以扩大你的媒体库
Jellyfin 目前正在主要的网络浏览器上工作。当使用 Google Chrome (桌面) 或 Android 时,支持 Chromecast。
1 安装
官方有多种安装方式,请看https://jellyfin.org/docs/general/installation/
,我选择的是Container
,因为最简单,用docker-compose方式.
docker-compose.yml
如下:
version: '3.5'
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
restart: 'unless-stopped'
user: 0:0
network_mode: 'host'
#ports:
# - 8096:8096
# #- 8920:8920
# - 7359:7359/udp
# - 1900:1900/udp
volumes:
- ./conf/config:/config
- ./data/cache:/cache
- ./data/media:/media
#- ./data/media/movie:/media/movie
#- ./data/media/music:/media/music
#- ./data/media/picture:/media/picture
# Optional - alternative address used for autodiscovery
environment:
- JELLYFIN_PublishedServerUrl=http://192.168.11.16:8096
# Optional - may be necessary for docker healthcheck to pass if running in host network mode
extra_hosts:
- "host.docker.internal:host-gateway"
user: 0:0 :代表容器内部程序运行在root账户下(这样不好,但我懒)
./conf/config:/config :确保user有写的权限
./data/cache:/cache :确保user有读的权限
./data/media:/media :确保有读的权限
这样设置权限更牛逼: setfacl -MU:jellyfin:rx /media/xxx
- 现在只需要up起来就好了(你得先安装docker,略):
docker-compose up -d
- 第一次打开网站需要设置一些参数,包含语言与用户密码之类,媒体可以稍后设置,网址是
http://你的ip:8096
,比如我的http://192.168.11.16:8096
。里面有很多设置国家和语言的要注意下,每个名字可能不一样,参考如下:
1 国家:
China
People`s Republic of China
2 语言:
汉语(简化字)
chinese
在【设置】–>【播放】–>【视频质量】中可以设置网络质量、转码码率相关参数
在【控制台】–>【联网】–>【LAN网络】中可以设置局域网范围,比如192.168.0.0/16, 172.30.5.0/24
在【控制台】–>【DLNA】–>【启用 DLNA 服务器】
等等
- 手机端app、电视端app等自行去官方下载
2 视频转码问题
2.1 局域网转码情况测试(不同网段)
情况如下:
-
用jellyfin app播放视频时默认会进行转码,这对服务器性能要求很高(我的服务器不支持硬件加速,CPU还很垃圾),这样根本没法用
-
用浏览器播放视频不会转码
-
用第三方app findroid 播放视频不会转码
2.2 局域网jellyfin app默认转码问题解决
- 问题分析:(用jellyfin app播放视频时)
-
如果设置用的是Web player,则会转码;
-
如果用的是Ingegrated player,则不会转码;
-
如果使用的是External player(like MX、VLC),会不会转码不清楚,没试
- 问题解决:
-
方法1:【设置】–>【客户端设置】–>【Video player type】,选择【Ingegrated player】即可
-
方法2:【设置】–>【客户端设置】–>【Video player type】,选择【External player】,此时可能需要在下面设置【External player app】,我没测试
**注:**服务器端设置局域网地址范围并不能使他不转码
2.3 外网转码情况测试
从外网访问是否会转码,目前不清楚,没有测试
3 一些坑
- 媒体目录不能使用软链接,因为他会把它当成文件处理,提示日志如下:
jellyfin | [09:14:22] [ERR] [28] Emby.Server.Implementations.IO.ManagedFileSystem: Reading the file size of the symlink at /media/movie/lnnn failed. Marking the file as not existing.
jellyfin | System.IO.FileNotFoundException: Could not find file '/media/movie/lnnn'.
-
视频扫描不出来问题
如果目录下只有一个视频文件,则此目录的子目录里面的视频是不会被扫描的(即不会被显示出来)。 如果目录下没有视频文件,则此目录的子目录(或子子目录)里面的视频会被正常扫描。 所以切记,如果是多级目录管理视频文件,确保不要只有一个视频文件,否则会扫描不到文件。 如果目录下只有一个视频文件,则扫描出来显示的名字是目录名,如果有多个视频文件,则显示为视频文件名,这应该是为了让一个文件夹放一个电影及电影周边的特别设计吧。
-
关于目录权限问题
config及cache需要你设定的用户有读写权限,比如运行在容器下的【user: 1000:1000】,因为程序需要进行添加与修改 媒体目录权限只要有读和执行的权限,且媒体文件只要有读的权限就可以了,不需要有owner相关权限
4 插件
-
Jellyscrub是一个插件,可以生成“trickplay”(Roku .bif)文件,然后由客户端解释并用于无缓冲清理图像预览。 项目地址
https://github.com/nicknsy/jellyscrub
,安装方法:【控制台】–【插件】–【存储库】,添加:
https://raw.githubusercontent.com/nicknsy/jellyscrub/main/manifest.json
5 最后
爱你!