【zlm】多宫格版本20260306Linux版本的编译

目录

成果

苦难的linux编译

编译成功后的使用


成果

推流列表没有的

直接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/会时不时报错。

相关推荐
DogDaoDao18 小时前
Android 硬件编码器参数完全指南:MediaCodec 深度解析
android·音视频·视频编解码·h264·硬编码·视频直播·mediacodec
音视频牛哥19 小时前
大牛直播SDK(SmartMediaKit)Windows平台RTSP/RTMP直播播放SDK集成说明(C#版)
音视频·低延迟rtsp播放器·windows rtsp播放器·windows rtmp播放器·低延迟rtmp播放器·c# rtsp播放器·c# rtmp播放器
薛定猫AI21 小时前
【深度解析】Gemini Omni 多模态生成与 Agent 化创作工作流:从视频编辑到 UI 生成的技术演进
人工智能·ui·音视频
音视频牛哥1 天前
大牛直播SDK(SmartMediaKit)Windows平台RTSP/RTMP直播播放SDK集成说明(C++版)
windows·音视频·实时音视频·windows rtsp播放器·windows rtmp播放器·超低延迟rtsp播放器·超低延迟rtmp播放器
EasyGBS1 天前
1分钟讲清楚选EasyNVR还是国标GB28181视频平台EasyGBS:路线不同,别选错
音视频
日光明媚1 天前
深度解析 SGLang 框架 Wan2.1 视频生成加速技术:从 49 分钟到 1 分钟的极致优化
人工智能·计算机视觉·aigc·音视频·sglang
小猿君1 天前
谷歌I/O前夜Veo 4遭泄露,AI视频底层逻辑浮出水面
人工智能·音视频
南山有乔木7891 天前
音频怎么转换MP3格式?M4A、WAV、FLAC转mp3实测有效的格式转换方法
音视频
不昀1 天前
音频变压器Bourns SM-LP-5001国产替代选型指南
网络·音视频·以太网·网络通信·电子元器件
REDcker1 天前
RGB与YUV像素格式详解
音视频·实时音视频·视频编解码·yuv·rgb