目录
成果

推流列表没有的

直接ffplay播放


苦难的linux编译
由于借鉴了windows的经验,引入了五个静态lib与include,生成后,在可执行文件目录放了五个dll文件就可以正常执行!
但在linux里面,如果引入的是/usr/local/*.a的文件,那么根据ffmpeg下面的编译脚本,它会包入静态文件,及关联的文件,结果就会一直报错:中间遇到要-fpic等问题。在zlm及ffmpeg的编译中,经历了无数的版本尝试(ffmpeg.sh.loss .fpic)( reZlm.sh.webrtc.1 reZlm.sh.webrtc.2) ,最后直接要崩溃。后来还是回归到动态 链接so的方式 。最后的脚本记录下。
reZlm.sh.webrtc (回到最原始,默认链接so文件)
cd gbcomzlm \
&& git pull \
&& git submodule update --init \
&& mkdir -p build release/linux/Release/ \
&& cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_WEBRTC=true -DOPENSSL_ROOT_DIR=/usr/local/openssl -DOPENSSL_LIBRARIES=/usr/local/openssl/lib \
-DFFMPEG_INCLUDE_DIR=/usr/local/include \
-DFFMPEG_LIB_DIR=/usr/local/lib \
-DENABLE_FFMPEG=true -DENABLE_VIDEOSTACK=true -DENABLE_X264=true .. \
&& make -j8

ffmpeg.sh (核心 就是-enable-shared)产生 .so文件到/usr/local/lib/
PKG_CONFIG_VERSION=0.29.2
CMAKE_VERSION=3.18
CMAKE_FULL_VERSION=3.18.4
YASM_VERSION=1.3.0
NASM_VERSION=2.15.05
X265_VERSION=3.4
# cd /opt \
# && git clone https://gitee.com/xia-chu/FFmpeg.git \
cd /opt/FFmpeg \
&& export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH \
&& ./configure \
--disable-debug \
--disable-doc \
--enable-shared \
--enable-gpl \
--enable-version3 \
--enable-static \
--enable-nonfree \
--enable-pthreads \
--enable-libx264 \
--enable-libx265 \
--enable-small \
--pkgconfigdir=/usr/local/lib/pkgconfig \
--pkg-config-flags="--static" \
&& make -j8 \
&& make install
编译成功后的使用
ldd MediaServer
2025-8-18日的版本依赖
linux-vdso.so.1 => (0x00007ffd8a1fa000)
libssl.so.1.1 => /usr/local/lib64/libssl.so.1.1 (0x00007fe963e93000)
libcrypto.so.1.1 => /usr/local/lib64/libcrypto.so.1.1 (0x00007fe9639a8000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fe96378c000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fe963484000)
libm.so.6 => /lib64/libm.so.6 (0x00007fe963143000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fe962f2d000)
libc.so.6 => /lib64/libc.so.6 (0x00007fe962b5f000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe964125000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fe96295b000)
最新编译出来的版本依赖
linux-vdso.so.1 (0x00007fffcdedf000)
libavutil.so.56 => /usr/local/lib/libavutil.so.56 (0x00007fef906a2000)
libavcodec.so.58 => /usr/local/lib/libavcodec.so.58 (0x00007fef8f360000)
libswscale.so.5 => /usr/local/lib/libswscale.so.5 (0x00007fef8f0e5000)
libswresample.so.3 => /usr/local/lib/libswresample.so.3 (0x00007fef8eecc000)
libavfilter.so.7 => /usr/local/lib/libavfilter.so.7 (0x00007fef8e9f4000)
libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007fef8e7f0000)
libssl.so.1.1 => /usr/local/openssl/lib/libssl.so.1.1 (0x00007fef8e55e000)
libcrypto.so.1.1 => /usr/local/openssl/lib/libcrypto.so.1.1 (0x00007fef8e073000)
libx264.so.163 => /usr/local/lib/libx264.so.163 (0x00007fef8dbd4000)
libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007fef8d9b6000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fef8d634000)
libm.so.6 => /usr/lib64/libm.so.6 (0x00007fef8d332000)
libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00007fef8d11c000)
libc.so.6 => /usr/lib64/libc.so.6 (0x00007fef8cd70000)
/lib64/ld-linux-x86-64.so.2 (0x00007fef90b06000)
libiconv.so.2 => /usr/local/lib/libiconv.so.2 (0x00007fef8ca8b000)
liblzma.so.5 => /usr/lib64/liblzma.so.5 (0x00007fef8c865000)
libx265.so.192 => /usr/local/lib/libx265.so.192 (0x00007fef8c15d000)
libpostproc.so.55 => /usr/local/lib/libpostproc.so.55 (0x00007fef8bf46000)
libavformat.so.58 => /usr/local/lib/libavformat.so.58 (0x00007fef8bb57000)
librt.so.1 => /usr/lib64/librt.so.1 (0x00007fef8b94f000)
对比差别的文件
libavutil.so.56 => /usr/local/lib/libavutil.so.56 (0x00007ff2cbe54000)
libavcodec.so.58 => /usr/local/lib/libavcodec.so.58 (0x00007ff2cab12000)
libswscale.so.5 => /usr/local/lib/libswscale.so.5 (0x00007ff2ca897000)
libswresample.so.3 => /usr/local/lib/libswresample.so.3 (0x00007ff2ca67e000)
libavfilter.so.7 => /usr/local/lib/libavfilter.so.7 (0x00007ff2ca1a6000)
libx264.so.163 => /usr/local/lib/libx264.so.163 (0x00007ff2c9386000)
libiconv.so.2 => /usr/local/lib/libiconv.so.2 (0x00007ff2c823d000)
liblzma.so.5 (0x00007ff2c8017000)
libx265.so.192 => /usr/local/lib/libx265.so.192 (0x00007ff2c790f000)
libpostproc.so.55 => /usr/local/lib/libpostproc.so.55 (0x00007ff2c76f8000)
libavformat.so.58 => /usr/local/lib/libavformat.so.58 (0x00007ff2c7309000)
librt.so.1 (0x00007ff2c7101000)
放到wvp-mediaserver:/usr/local/lib/里去


**更新的方法:**直接将需要的文件放到/docker/media/zlm/correct/ 然后容器里操作 cp *.so /usr/local/lib,单独通过docker cp 1.so wvp-mediaserver:/usr/local/lib/会时不时报错。