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

相关推荐
ai产品老杨12 小时前
AI视频分析并发优化完整流程:解决多路视频并发不足与高延迟排查指南
人工智能·音视频
小柯南敲键盘13 小时前
电商图片翻译工具推荐,批量处理主图视频字幕,免费试用
大数据·人工智能·python·音视频
程序员老陆20 小时前
FFmpeg的AVFrame全部数据操作函数详解
ffmpeg·音视频·avframe
tech讯息1 天前
商业化内容生产适用企业级视频生成模型云平台推荐|从模型生成至审核分发全链路 AWS 选型方案
人工智能·音视频·aws
杀生丸学AI2 天前
【稀疏重建】StructSplat:基于非校准稀疏视图的可泛化3DGS
深度学习·3d·音视频·transformer·三维重建·空间智能
小柯南敲键盘2 天前
跨境电商图片翻译工具推荐:批量AI翻译+视频字幕+智能抠图
人工智能·python·音视频
DogDaoDao2 天前
【H266/VVC提案解读】ITU-T H.274 (V4) 规范深度解读 — 视频编码 SEI 消息的全面演进
音视频·实时音视频·视频编解码·流媒体·h266·vvc·视频编解码标准
程序员老陆2 天前
FFmpeg RTSP 解复用器(rtsp demuxer)完全解析:从「能播」到「稳播」的参数圣经
ffmpeg·音视频·拉流·rtsp
hhzz2 天前
Tiger AI 平台「手势识别」功能全解析:从数字手势 0–9,到中国手语字母,再到本地视频批量识别——一条链路,三种输入,双模型可同开;双手比划,机器秒懂
人工智能·python·深度学习·aigc·音视频
martindelophy2 天前
DeepSeek Harness 插件开发实战:用自然语言检查、修改并渲染 Timeline Studio 视频工程
音视频