feat: 支持 MJPEG 解码与 MSD 目录配置

- FFmpeg/hwcodec 增加 RKMPP MJPEG 解码与 RAM FFI,ARM 构建启用对应解码器
  - 共享视频管线新增 MJPEG 解码路径(RKMPP/TurboJPEG),优化 WebRTC 发送与 MJPEG 去重
  - MSD 配置改为 msd_dir 并自动创建子目录,接口与前端设置同步更新
  - 更新包依赖与版本号
This commit is contained in:
mofeng-git
2026-01-11 16:32:37 +08:00
parent 0f52168e75
commit 01e01430da
30 changed files with 1185 additions and 260 deletions

View File

@@ -217,6 +217,9 @@ RUN mkdir -p /tmp/ffmpeg-build && cd /tmp/ffmpeg-build \
-Dlibrga_demo=false \
&& ninja -C build \
&& ninja -C build install \
# Create static librga.a from built objects (rkrga uses shared_library)
&& ar rcs /usr/aarch64-linux-gnu/lib/librga.a $(find build -name '*.o') \
&& ranlib /usr/aarch64-linux-gnu/lib/librga.a \
&& sed -i 's/^Libs:.*$/& -lstdc++ -lm -lpthread/' /usr/aarch64-linux-gnu/lib/pkgconfig/librga.pc \
&& cd .. \
# Create pkg-config wrapper for cross-compilation
@@ -267,8 +270,10 @@ RUN mkdir -p /tmp/ffmpeg-build && cd /tmp/ffmpeg-build \
--disable-avfilter \
--disable-avdevice \
--disable-postproc \
# Disable all decoders
# Disable all decoders (re-enable only what we need)
--disable-decoders \
--enable-decoder=mjpeg \
--enable-decoder=mjpeg_rkmpp \
# Disable all encoders, enable only needed ones
--disable-encoders \
--enable-encoder=h264_rkmpp \
@@ -292,8 +297,7 @@ RUN mkdir -p /tmp/ffmpeg-build && cd /tmp/ffmpeg-build \
--disable-bsfs \
--enable-bsf=h264_mp4toannexb \
--enable-bsf=hevc_mp4toannexb \
# Disable hardware decoding
--disable-hwaccels \
# Hardware decoding uses explicit rkmpp decoder (no hwaccel flag)
# Disable other unused features
--disable-indevs \
--disable-outdevs \

View File

@@ -206,6 +206,9 @@ RUN mkdir -p /tmp/ffmpeg-build && cd /tmp/ffmpeg-build \
-Dlibrga_demo=false \
&& ninja -C build \
&& ninja -C build install \
# Create static librga.a from built objects (rkrga uses shared_library)
&& ar rcs /usr/arm-linux-gnueabihf/lib/librga.a $(find build -name '*.o') \
&& ranlib /usr/arm-linux-gnueabihf/lib/librga.a \
&& sed -i 's/^Libs:.*$/& -lstdc++ -lm -lpthread/' /usr/arm-linux-gnueabihf/lib/pkgconfig/librga.pc \
&& cd .. \
# Create pkg-config wrapper for cross-compilation
@@ -256,8 +259,10 @@ RUN mkdir -p /tmp/ffmpeg-build && cd /tmp/ffmpeg-build \
--disable-avfilter \
--disable-avdevice \
--disable-postproc \
# Disable all decoders
# Disable all decoders (re-enable only what we need)
--disable-decoders \
--enable-decoder=mjpeg \
--enable-decoder=mjpeg_rkmpp \
# Disable all encoders, enable only needed ones
--disable-encoders \
--enable-encoder=h264_rkmpp \
@@ -281,8 +286,7 @@ RUN mkdir -p /tmp/ffmpeg-build && cd /tmp/ffmpeg-build \
--disable-bsfs \
--enable-bsf=h264_mp4toannexb \
--enable-bsf=hevc_mp4toannexb \
# Disable hardware decoding
--disable-hwaccels \
# Hardware decoding uses explicit rkmpp decoder (no hwaccel flag)
# Disable other unused features
--disable-indevs \
--disable-outdevs \

View File

@@ -125,13 +125,20 @@ EOF
chmod 755 "$PKG_DIR/DEBIAN/prerm"
# Create control file
BASE_DEPS="libc6 (>= 2.31), libgcc-s1, libstdc++6, libasound2 (>= 1.1), libdrm2 (>= 2.4)"
AMD64_DEPS="libva2 (>= 2.0), libva-drm2 (>= 2.10), libva-x11-2 (>= 2.10), libmfx1 (>= 21.1), libx11-6 (>= 1.6), libxcb1 (>= 1.14)"
DEPS="$BASE_DEPS"
if [ "$DEB_ARCH" = "amd64" ]; then
DEPS="$DEPS, $AMD64_DEPS"
fi
cat > "$PKG_DIR/DEBIAN/control" <<EOF
Package: one-kvm
Version: $VERSION
Section: admin
Priority: optional
Architecture: $DEB_ARCH
Depends: libc6 (>= 2.31), libgcc-s1, libstdc++6, libasound2 (>= 1.1), libva2 (>= 2.0), libdrm2 (>= 2.4), libx11-6 (>= 1.6), libxcb1 (>= 1.14)
Depends: $DEPS
Maintainer: SilentWind <admin@mofeng.run>
Description: A open and lightweight IP-KVM solution
Enables BIOS-level remote management of servers and workstations.