升级RKNN库文件;优化hls网页本地运行

This commit is contained in:
haotian 2026-03-10 22:27:36 +08:00
parent fdcb7f7c6c
commit d8c492f9ab
5 changed files with 65 additions and 26 deletions

8
CHANGELOG.md Normal file
View File

@ -0,0 +1,8 @@
# Changelog
- [2026/3/10]
1. RKNN 库已更新到 2.3.2
2. 使用 v1.4.1b16 静态 shape 模型scrfd_500m_640.rknn做人脸检测
3. 重新转换ReinaFace_mobile320.rknn模型让其有效
4. 将hls_display.html中需要联网的js改成本地运行

View File

@ -224,6 +224,15 @@ cmd_install_media_server() {
cp "$BUILD_DIR"/*.so "$INSTALL_DIR/lib/" 2>/dev/null || true
fi
# 复制项目 lib 目录中的 RKNN 等系统库
if [ -d "$PROJECT_DIR/lib" ]; then
for lib_file in "$PROJECT_DIR"/lib/*.so*; do
[ -f "$lib_file" ] || continue
cp "$lib_file" "$INSTALL_DIR/lib/"
echo -e "${GREEN}${NC} 已复制 $(basename "$lib_file")"
done
fi
# 复制共享状态库rk_shared_state
if [ -f "$BUILD_DIR/librk_shared_state.so" ]; then
cp "$BUILD_DIR/librk_shared_state.so" "$INSTALL_DIR/lib/"

View File

@ -146,32 +146,52 @@ echo -e "${YELLOW}[3/4] 安装 RKNN Runtime...${NC}"
RKNN_INSTALLED=false
# 优先使用本地上传的 rknpu2 zip覆盖系统版本
for zip_file in "/tmp/rknpu2-1.5.2.zip" "/tmp/rknpu2-1.6.0.zip" "/tmp/rknpu2_1.6.0_arm64.zip"; do
if [ -f "$zip_file" ]; then
echo " 发现本地文件: $(basename $zip_file),优先使用"
cd /tmp
rm -rf rknpu2-* 2>/dev/null || true
unzip -q -o "$zip_file" 2>/dev/null || true
# 查找解压后的目录
RKNPU_DIR=$(find /tmp -maxdepth 1 -type d -name "rknpu*" | head -1)
if [ -n "$RKNPU_DIR" ]; then
echo " 解压目录: $RKNPU_DIR"
if [ -d "$RKNPU_DIR/runtime/RK3588/Linux/aarch64" ]; then
echo " 安装 RKNN 库..."
cp "$RKNPU_DIR/runtime/RK3588/Linux/aarch64/"*.so /usr/lib/ 2>/dev/null || true
fi
if [ -d "$RKNPU_DIR/runtime/RK3588/Linux/librknn_api/include" ]; then
cp -r "$RKNPU_DIR/runtime/RK3588/Linux/librknn_api/include/"* /usr/include/ 2>/dev/null || true
fi
RKNN_INSTALLED=true
fi
break
fi
done
# 优先使用项目 lib 目录中的 RKNN 库(最高优先级,确保版本一致)
if [ -f "$PROJECT_DIR/lib/librknnrt.so.2.3.2" ]; then
echo " 发现项目自带 RKNN 库: librknnrt.so.2.3.2"
echo " 安装 RKNN 库到系统..."
cp "$PROJECT_DIR/lib/librknnrt.so.2.3.2" /usr/lib/librknnrt.so
chmod 755 /usr/lib/librknnrt.so
# 创建兼容性符号链接
ln -sf /usr/lib/librknnrt.so /usr/local/lib/librknnrt.so 2>/dev/null || true
RKNN_INSTALLED=true
elif [ -f "$PROJECT_DIR/lib/librknnrt.so" ]; then
echo " 发现项目自带 RKNN 库: librknnrt.so"
echo " 安装 RKNN 库到系统..."
cp "$PROJECT_DIR/lib/librknnrt.so" /usr/lib/librknnrt.so
chmod 755 /usr/lib/librknnrt.so
ln -sf /usr/lib/librknnrt.so /usr/local/lib/librknnrt.so 2>/dev/null || true
RKNN_INSTALLED=true
fi
# 如果没有本地 zip检查系统是否已有
# 其次使用本地上传的 rknpu2 zip
if [ "$RKNN_INSTALLED" != "true" ]; then
for zip_file in "/tmp/rknpu2-1.5.2.zip" "/tmp/rknpu2-1.6.0.zip" "/tmp/rknpu2_1.6.0_arm64.zip"; do
if [ -f "$zip_file" ]; then
echo " 发现本地文件: $(basename $zip_file)"
cd /tmp
rm -rf rknpu2-* 2>/dev/null || true
unzip -q -o "$zip_file" 2>/dev/null || true
# 查找解压后的目录
RKNPU_DIR=$(find /tmp -maxdepth 1 -type d -name "rknpu*" | head -1)
if [ -n "$RKNPU_DIR" ]; then
echo " 解压目录: $RKNPU_DIR"
if [ -d "$RKNPU_DIR/runtime/RK3588/Linux/aarch64" ]; then
echo " 安装 RKNN 库..."
cp "$RKNPU_DIR/runtime/RK3588/Linux/aarch64/"*.so /usr/lib/ 2>/dev/null || true
fi
if [ -d "$RKNPU_DIR/runtime/RK3588/Linux/librknn_api/include" ]; then
cp -r "$RKNPU_DIR/runtime/RK3588/Linux/librknn_api/include/"* /usr/include/ 2>/dev/null || true
fi
RKNN_INSTALLED=true
fi
break
fi
done
fi
# 如果没有本地文件,检查系统是否已有
if [ "$RKNN_INSTALLED" != "true" ]; then
if [ -f "/usr/lib/librknnrt.so" ] || [ -f "/usr/lib/aarch64-linux-gnu/librknnrt.so" ]; then
echo " 系统已存在 RKNN 库"

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HLS Player - RK3588 Media Server</title>
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<script src="js/hls.min.js"></script>
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

2
web/js/hls.min.js vendored Normal file

File diff suppressed because one or more lines are too long