修复 ARM 飞牛设备相册无法加载

问题现象

在 ARM 架构的飞牛设备上,相册服务无法正常加载,查看日志发现 imagesrv 启动失败。

错误日志位置:

1
/usr/local/apps/@appdata/trim.photos/log/error.log

错误日志内容如下:


原因分析

使用 ldd 检查 imagesrv 相关依赖时,发现缺少 FFmpeg 相关动态库:

系统自带的 FFmpeg 版本不满足 imagesrv 的依赖需求,需要手动安装较新的 ARM64 版本,并正确配置 LD_LIBRARY_PATH


解决方案

1️⃣ 下载 FFmpeg(ARM64)

从官方构建仓库下载 ARM64 版本:

1
https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2025-08-31-13-00/ffmpeg-n6.1.3-linuxarm64-lgpl-shared-6.1.tar.xz

2️⃣ 解压并安装

解压到 /opt/ffmpeg6/

1
2
sudo mkdir -p /opt/ffmpeg6
sudo tar -xvf ffmpeg-n6.1.3-linuxarm64-lgpl-shared-6.1.tar.xz -C /opt/ffmpeg6 --strip-components=1

确保目录结构中包含:

1
2
3
4
/opt/ffmpeg6/
├── bin
├── lib
└── include

3️⃣ 修改 imagesrv systemd 服务

编辑服务文件:

1
sudo vi /etc/systemd/system/imagesrv.service

修改为如下内容(关键是 LD_LIBRARY_PATH):

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=Imagesrv Service
After=trim_main.service

[Service]
Type=simple
ExecStart=/usr/trim/bin/imagesrv -o /usr/trim/logs/imagesrv.log -l info -u 0 -k 0 -C 1
Environment=LD_LIBRARY_PATH=/usr/trim/lib/imagesrv:/usr/trim/lib/mediasrv:/usr/trim/lib:/opt/ffmpeg6/lib
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

4️⃣ 重新加载并重启服务

1
2
sudo systemctl daemon-reload
sudo systemctl restart imagesrv

验证结果

  • imagesrv 服务正常启动
  • 相册页面可正常加载
  • 错误日志不再出现 FFmpeg 相关缺失库提示