panjjo/zlmediakit Docker 镜像
panjjo查看 Docker Hub 原文页
基于C++11的高性能运营级流媒体服务框架,支持RTSP/RTMP/HLS/HTTP-FLV/Websocket-FLV/GB28181等多种协议及互转,具备高并发、跨平台特性,可作为商用服务器或二次开发SDK,提供低延迟(500毫秒内)流媒体解决方案。
30 次收藏下载次数: 0状态:社区镜像维护者:panjjo仓库类型:镜像最近更新:
https://github.com/xia-chu/ZLMediaKit
镜像概述和主要用途
ZLMediaKit是一个基于C++11开发的高性能运营级流媒体服务框架。它支持多种流媒体协议(RTSP/RTMP/HLS/HTTP-FLV/Websocket-FLV/GB28181/MP4)及协议互转,具备高并发处理能力,可运行于Linux、macOS、iOS、Android、Windows等全平台。该镜像可直接部署为商用流媒体服务器,也可作为网络编程二次开发SDK,适用于移动嵌入式跨平台流媒体解决方案。
核心功能和特性
- 稳定高效:基于C++11开发,避免裸指针,代码稳定可靠,性能优越,经过长期商用验证。
- 多协议支持:支持RTSP/RTMP/HLS/HTTP-FLV/Websocket-FLV/GB28181/MP4等协议,且支持协议互转。
- 高并发处理:采用多路复用/多线程/异步网络IO模式,支持海量客户端连接。
- 跨平台兼容:支持Linux、macOS、iOS、Android、Windows全平台。
- 低延迟体验:支持画面秒开,延迟可控制在500毫秒内,最低可达100毫秒。
- 丰富接口:提供完善的标准C API,可作为SDK或供其他语言调用;支持restful api及web hook,满足多样化业务逻辑。
- 编码支持:全面支持H265/H264/AAC/G711/OPUS编码。
使用场景和适用范围
- 移动嵌入式跨平台流媒体解决方案:适用于需要在多终端(手机、嵌入式设备等)实现流媒体传输的场景。
- 商用级流媒体服务器:可直接部署为直播、点播服务,支持高并发访问。
- 网络编程二次开发SDK:提供C API,方便开发者基于框架进行定制化开发。
使用方法和配置说明
快速体验
通过以下命令快速启动容器:
bashdocker run -id -p 1935:1935 -p 8080:80 -p 8554:554 -p 10000:10000 -p 10000:10000/udp docker.xuanyuan.run/panjjo/zlmediakit
镜像结构说明
- FFmpeg:内置新增H265自编译版本,安装目录为
/usr/local/ffmpeg,已添加至PATH,可直接使用。 - 项目主目录:
/zlmediakit。 - 程序入口:
/zlmediakit/MediaServer,默认读取配置文件/zlmediakit/config.ini。 - 数据存储:程序运行数据默认存于
/zlmediakit/www,建议通过目录挂载将该目录映射至容器外部,避免容器重启导致数据丢失,同时支持NFS等方式实现请求负载均衡。
配置文件修改
如需修改配置文件,需通过文件挂载方式将外部配置文件映射至容器内:
bashdocker run -id -v /path/to/your/config.ini:/zlmediakit/config.ini docker.xuanyuan.run/panjjo/zlmediakit
对外端口说明
容器对外暴露以下端口(具体功能可参考项目文档或配置文件):
- 554
- 322
- 1935
-
- 80
- 443
- 9000
-
功能清单
RTSP[S]
- RTSP[S]服务器:支持RTMP/MP4/HLS转RTSP[S],兼容亚马逊echo show等设备。
- RTSP[S]播放器:支持RTSP代理及静音音频生成。
- RTSP[S]推流客户端与服务器:支持
rtp over udprtp over tcprtp over httprtp组播四种传输方式。 - 鉴权支持:服务器/客户端完整支持Basic/Digest登录鉴权,提供全异步可配置化鉴权接口。
- 编码支持:支持H264/H265/AAC/G711/OPUS编码(其他编码可转发但不支持转协议)。
RTMP[S]
- RTMP[S]播放/发布服务器:支持RTSP/MP4/HLS转RTMP,支持录制发布流。
- RTMP[S]播放器/推流客户端:支持RTMP代理及静音音频生成。
- 直播支持:支持http[s]-flv、websocket-flv直播。
- 编码支持:支持H264/H265/AAC/G711/OPUS编码(其他编码可转发但不支持转协议),支持RTMP-H265、RTMP-OPUS。
HLS
- 文件生成:支持HLS文件生成,自带HTTP文件服务器。
- 长连接模拟:通过cookie追踪技术模拟HLS播放为长连接,实现按需拉流、播放统计等业务。
- 协议转换:支持HLS播放器拉流转rtsp/rtmp/mp4。
- 编码支持:支持H264/H265/AAC/G711/OPUS编码。
HTTP[S]与WebSocket
- 服务器功能:支持目录索引生成、文件下载、表单提交请求。
- 客户端工具:提供文件下载器(支持断点续传)、接口请求器、文件上传器。
- API支持:完整HTTP API服务器,可作为web后台开发框架;支持跨域访问、cookie、WebSocket服务器和客户端、文件访问鉴权。
GB28181与RTP推流
- 推流服务器:支持UDP/TCP国标RTP(PS或TS)推流,可转换为RTSP/RTMP/HLS等协议。
- 协议转换:支持RTSP/RTMP/HLS转国标推流客户端(TCP/UDP模式),提供restful api。
- 编码支持:支持H264/H265/AAC/G711/OPUS编码。
MP4点播与录制
- 录制功能:支持录制为FLV/HLS/MP4。
- 点播支持:RTSP/RTMP/HTTP-FLV/WS-FLV支持MP4文件点播及seek操作。
- 编码支持:支持H264/H265/AAC/G711/OPUS编码。
其他功能
- 接口与事件:支持restful api、web hook事件、telnet调试、配置文件热加载、流量统计、推拉流鉴权。
- 高级特性:支持虚拟主机、按需拉流(无人观看自动关断)、先拉流后推流(提高画面打开率)、c api sdk、FFmpeg拉流代理任意格式流、http api生成实时截图。
版本更新记录
https://github.com/xia-chu/ZLMediaKit
1.2.8(2022-01-07)(未测试版本)
支持webrtc打包,配置文件需配置对应rtc部分 https://github.com/ZLMediaKit/ZLMediaKit/wiki/zlm启用webrtc编译指南
1.2.6(2021-10-08)
1.2.5(2021-09-13)
1.2.4(2021-08-30)
1.2.3(2021-07-26)
1.2.2(2021-07-16)
1.2.1(2021-07-05)
1.2.0(2021-06-22)
1.1.9(2021-06-07)
录制mp4时不会触发无人观看事件
1.1.8(2021-05-24)
1.1.7(2021-05-08)
1.1.6(2021-04-27)
优化内存
1.1.5(2021-04-25)
1.1.4(2021-04-10)
1.1.3(2021-03-26)
1.1.2(2021-03-11)
1.1.1(2021-02-18)
1.1.0(2021-01-26)
1.0.9(2021-01-06)
1.0.8(2020-12-28)
运行目录由meida变更为zlmediakit
1.0.7 (2020-11-30)
1.0.6 (2020-11-10)
1.0.5 (2020-11-03)
1.0.4 (2020-10-20)
1.0.3 (2020-10-06)
- 支持H264/H265/AAC/G711/OPUS编码
1.0.2(2020-9-21)
- 新增实现http-ts/websocket-ts直播服务器
- 新增实现http-fmp4/websocket-fmp4直播服务器
- 支持按需转协议,有人观看时自动开始转协议
- 实现其他协议转GB28181协议推流
1.0.1 (2020-09-15)
- ffmpeg新增h265模块
- 支持按需解复用、转协议,当有人观看时才开启转协议
1.0.0 (2020-09-11)
镜像拉取方式
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
轩辕镜像加速拉取命令点我查看更多 zlmediakit 镜像标签
docker pull docker.xuanyuan.run/panjjo/zlmediakit:<标签>
DockerHub 原生拉取命令
docker pull panjjo/zlmediakit:<标签>
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务