refactor(hwcodec): 精简FFmpeg编译配置并移除解码器

- 优化FFmpeg编译选项,禁用不需要的库(avformat/swscale/swresample/avfilter等)
- 禁用所有解码器和大部分编码器,只保留实际使用的H264/H265/VP8/VP9编码器
- 移除hwcodec解码器模块,MJPEG解码改用libyuv实现
- 移除MJPEG编码器支持
- x86_64添加libmfx支持QSV编码器
- 修复H265 RKMPP编码器支持YUYV直接输入
This commit is contained in:
mofeng-git
2026-01-02 12:31:11 +08:00
parent 04e62d1e3f
commit be4de59f3b
13 changed files with 258 additions and 794 deletions

View File

@@ -107,7 +107,7 @@ RUN mkdir -p /tmp/ffmpeg-build && cd /tmp/ffmpeg-build \
&& echo 'export PKG_CONFIG_SYSROOT_DIR=""' >> /tmp/aarch64-pkg-config \
&& echo 'exec pkg-config "$@"' >> /tmp/aarch64-pkg-config \
&& chmod +x /tmp/aarch64-pkg-config \
# Build FFmpeg with RKMPP
# Build FFmpeg with RKMPP (minimal build for encoding only)
&& cd ffmpeg-rockchip \
&& ./configure \
--prefix=/usr/aarch64-linux-gnu \
@@ -120,26 +120,69 @@ RUN mkdir -p /tmp/ffmpeg-build && cd /tmp/ffmpeg-build \
--enable-version3 \
--enable-shared \
--disable-static \
# Hardware acceleration
--enable-libdrm \
--enable-rkmpp \
--enable-rkrga \
--enable-libv4l2 \
--enable-vaapi \
--enable-v4l2-m2m \
# Software encoding libraries
--enable-libx264 \
--enable-libx265 \
--enable-libvpx \
--enable-vaapi \
--enable-v4l2-m2m \
# Disable programs and docs
--disable-programs \
--disable-doc \
--disable-htmlpages \
--disable-manpages \
--disable-podpages \
--disable-txtpages \
# Disable network
--disable-network \
--disable-protocols \
# Disable unused libraries
--disable-avformat \
--disable-swscale \
--disable-swresample \
--disable-avfilter \
--disable-avdevice \
--disable-postproc \
# Disable all decoders
--disable-decoders \
# Disable all encoders, enable only needed ones
--disable-encoders \
--enable-encoder=h264_vaapi \
--enable-encoder=hevc_vaapi \
--enable-encoder=vp8_vaapi \
--enable-encoder=vp9_vaapi \
--enable-encoder=h264_rkmpp \
--enable-encoder=hevc_rkmpp \
--enable-encoder=h264_v4l2m2m \
--enable-encoder=hevc_v4l2m2m \
--enable-encoder=libx264 \
--enable-encoder=libx265 \
--enable-encoder=libvpx_vp8 \
--enable-encoder=libvpx_vp9 \
# Disable muxers/demuxers
--disable-muxers \
--disable-demuxers \
# Disable parsers except needed ones
--disable-parsers \
--enable-parser=h264 \
--enable-parser=hevc \
--enable-parser=vp8 \
--enable-parser=vp9 \
# Disable BSFs except needed ones
--disable-bsfs \
--enable-bsf=h264_mp4toannexb \
--enable-bsf=hevc_mp4toannexb \
# Disable hardware decoding
--disable-hwaccels \
# Disable other unused features
--disable-indevs \
--disable-outdevs \
--disable-filters \
--disable-debug \
--disable-decoder=mjpeg \
--disable-decoder=mjpegb \
&& make -j$(nproc) \
&& make install \
&& cd / \