zss0hs 发表于 2022-11-27 00:02:17

AXT1800 运行 jellyfin

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 库无法正常加载,运行过程中涉及到图片处理的时候基本都会报错。在网上找了一圈,没有解决掉,等待官方版本更新。..........
Emby.Server.Implementations.ApplicationHost: Skia not available. Will fallback to NullImageEncoder.
..........

..........
Emby.Server.Implementations.Dto.DtoService: Failed to determine primary image aspect ratio for /app/data/downloads/jellyfin/foreignFilms/肖申克的救赎.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)
Emby.Server.Implementations.Dto.DtoService: Failed to determine primary image aspect ratio for /app/data/downloads/jellyfin/foreignFilms/肖申克的救赎.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)
Emby.Server.Implementations.Dto.DtoService: Failed to determine primary image aspect ratio for /app/data/downloads/jellyfin/foreignFilms/肖申克的救赎.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



haipengno1 发表于 2022-11-27 11:13:21

多谢分享,不过跑jellyfin对axt1800来说算不算是有点儿强人所难啊:lol

nihaolai 发表于 2023-1-14 02:35:36

页: [1]
查看完整版本: AXT1800 运行 jellyfin