ZLMediaKit:剪裁
概述
ZLMediaKit挺大的,支持的协议比较多,但很多可能并不是自己需要的,就需要剪裁,这样可以减少编译出文件的大小,加快编译速度。
我打算先只支持rtsp和H264/H265/AAC/G711。
配置 CMake 编译选项
mkdir build
cd build
cmake .. \
-DENABLE_RTSP=ON \ # 启用 RTSP
-DENABLE_RTMP=OFF \ # 禁用 RTMP
-DENABLE_HLS=OFF \ # 禁用 HLS
-DENABLE_HTTP=OFF \ # 禁用 HTTP/WebSocket/API
-DENABLE_WEBRTC=OFF \ # 禁用 WebRTC
-DENABLE_SRT=OFF \ # 禁用 SRT
-DENABLE_MP4=OFF \ # 禁用 MP4 文件支持
-DENABLE_FFMPEG=OFF \ # 禁用 FFmpeg 依赖(如果不需要转码)
-DENABLE_X264=OFF \ # 禁用 x264 编码(如果不需要)
-DENABLE_H264=ON \ # 启用 H.264
-DENABLE_H265=ON \ # 启用 H.265
-DENABLE_AAC=ON \ # 启用 AAC
-DENABLE_G711=ON \ # 启用 G.711
-DCMAKE_BUILD_TYPE=Release # 编译 Release 版本
cmake .. -DENABLE_RTSP=ON -DENABLE_RTMP=OFF -DENABLE_WEBRTC=OFF -DENABLE_SRT=OFF -DENABLE_MP4=OFF -DENABLE_FFMPEG=OFF -DENABLE_X264=OFF -DENABLE_H264=ON -DENABLE_H265=ON -DENABLE_AAC=ON -DENABLE_G711=ON -DCMAKE_BUILD_TYPE=Release
- 错误:
编译成功,启动后,进行rtsp推流失败,提示信息:
2025-03-04 13:10:25.801 W [MediaServer] [6680-event poller 12] RtspSession.cpp:62 onError | 1-57(127.0.0.1:50532) RTSP推流器(__defaultVhost__/live/test)断开:fmp4相关功能未打开,请开启ENABLE_MP4宏后编译再测试,耗时(s):0
Could not write header for output file #0 (incorrect codec parameters ?): Invalid data found when processing input
Error initializing output stream 0:0 --
Conversion failed!
修改cmake后,重新编译:
cmake .. -DENABLE_RTSP=ON -DENABLE_RTMP=OFF -DENABLE_WEBRTC=OFF -DENABLE_SRT=OFF -DENABLE_MP4=ONF -DENABLE_FFMPEG=OFF -DENABLE_X264=OFF -DENABLE_H264=ON -DENABLE_H265=ON -DENABLE_AAC=ON -DENABLE_G711=ON -DCMAKE_BUILD_TYPE=Release
关键编译选项说明
选项 | 说明 |
---|---|
ENABLE_RTSP=ON |
必须开启,启用 RTSP 协议支持 |
ENABLE_H264=ON |
启用 H.264 编解码支持 |
ENABLE_H265=ON |
启用 H.265 编解码支持 |
ENABLE_AAC=ON |
启用 AAC 音频编解码支持 |
ENABLE_G711=ON |
启用 G.711 音频编解码支持 |
ENABLE_RTMP=OFF |
禁用 RTMP 协议 |
ENABLE_HLS=OFF |
禁用 HLS 流媒体支持 |
ENABLE_HTTP=OFF |
禁用 HTTP 相关功能(API/WebSocket) |
ENABLE_FFMPEG=OFF |
禁用 FFmpeg 依赖(若无需转码/解复用) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义