AXT1800 运行 jellyfin
目前 jellyfin 官方的稳定版本是10.8.7 ,但是用源码编译的最新版本是 10.9.0 ,而且有 arm64-musl 版本,可以在ATX1800上运行成功。 当然,运行速度肯定比不上 x86 ,但是也勉强够用。
系统使用大雕64位固件: - https://github.com/coolsnowwolf/openwrt-gl-ax1800.gi
复制代码
目前 arm64-musl 版本的 jellyfin 有一个 BUG ,就是 Skia 库无法正常加载,运行过程中涉及到图片处理的时候基本都会报错。在网上找了一圈,没有解决掉,等待官方版本更新。 - ..........
- [16:27:10] [WRN] [1] Emby.Server.Implementations.ApplicationHost: Skia not available. Will fallback to NullImageEncoder.
- ..........
- ..........
- [13:02:16] [ERR] [53] Emby.Server.Implementations.Dto.DtoService: Failed to determine primary image aspect ratio for /app/data/downloads/jellyfin/foreignFilms/[www.domp4.com]肖申克的救赎.The.Shawshank.Redemption.1994.BD1080p.国英双语.中英双字-poster.jpg
- System.NotImplementedException: The method or operation is not implemented.
- at Emby.Drawing.NullImageEncoder.GetImageSize(String path)
- at Emby.Drawing.ImageProcessor.GetImageDimensions(BaseItem item, ItemImageInfo info)
- at Emby.Server.Implementations.Dto.DtoService.GetPrimaryImageAspectRatio(BaseItem item)
- [13:02:17] [ERR] [64] Emby.Server.Implementations.Dto.DtoService: Failed to determine primary image aspect ratio for /app/data/downloads/jellyfin/foreignFilms/[www.domp4.com]肖申克的救赎.The.Shawshank.Redemption.1994.BD1080p.国英双语.中英双字-poster.jpg
- System.NotImplementedException: The method or operation is not implemented.
- at Emby.Drawing.NullImageEncoder.GetImageSize(String path)
- at Emby.Drawing.ImageProcessor.GetImageDimensions(BaseItem item, ItemImageInfo info)
- at Emby.Server.Implementations.Dto.DtoService.GetPrimaryImageAspectRatio(BaseItem item)
- [13:02:18] [ERR] [64] Emby.Server.Implementations.Dto.DtoService: Failed to determine primary image aspect ratio for /app/data/downloads/jellyfin/foreignFilms/[www.domp4.com]肖申克的救赎.The.Shawshank.Redemption.1994.BD1080p.国英双语.中英双字-poster.jpg
- System.NotImplementedException: The method or operation is not implemented.
- at Emby.Drawing.NullImageEncoder.GetImageSize(String path)
- at Emby.Drawing.ImageProcessor.GetImageDimensions(BaseItem item, ItemImageInfo info)
- at Emby.Server.Implementations.Dto.DtoService.GetPrimaryImageAspectRatio(BaseItem item)
- .........
复制代码
使用了 cpulimit 对 jellyfin 进程的 cpu 占用进行了限制。 - cpulimit --limit=80 /app/data/jellyfin/start_jellyfin.sh
复制代码
需要添加 Swap ,不然肯定运行不起来,会卡死。估计添加 1G 就够用了,我添加了4G。
运行 jellyfin 需要依赖:icu、 icu-full-data、icu-data-tools、 ffmpeg-custom、libffmpeg-custom。启动脚本: - #!/bin/sh
- JELLYFINDIR="/app/data/jellyfin"
- cd $JELLYFINDIR
- $JELLYFINDIR/jellyfin/jellyfin \
- -d $JELLYFINDIR/data \
- -C $JELLYFINDIR/cache \
- -c $JELLYFINDIR/config \
- -l $JELLYFINDIR/log > log.txt
复制代码
可以按照我的存放路径修改脚本。
- root@OpenWrt:/app/data/jellyfin# pwd
- /app/data/jellyfin
- root@OpenWrt:/app/data/jellyfin# ls jellyfin/jellyfin
- jellyfin/jellyfin
复制代码
开机启动: - #!/bin/sh /etc/rc.common
- USE_PROCD=1
- START=99
- STOP=01
- start_service() {
- procd_open_instance jellyfin # 给服务实例定义一个名称
- procd_set_param command cpulimit --limit=80 /app/data/jellyfin/start_jellyfin.sh
- # 如果服务意外中止了,定义 redpawn 可以自动重启它,如果服务命令的确只需要运行一次,需要谨慎设定这里
- # 如果进程在 respawn_threshold 定义的时间内结束了,则判定为进程崩溃并尝试重启它,尝试respawn_retry次后会停止重启,每次尝试重启间隔respawn_timeout秒
- procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-102528}
-
- procd_set_param pidfile /var/run/jellyfin.pid # 在服务启动时写入一个 pid 文件,在停止服务时删除此 pid 文件
- procd_close_instance # 结束服务实例配置
- }
复制代码
https://wwk.lanzouw.com/b03vimhwj
密码:et8t
|