ZLMediaKit 快速入门

ZLMediaKit 快速入门
ZLMediaKit 快速入门精简版快速入门只保留核心概念与上手步骤。从源码构建、Docker 进阶、协议实现、WebRTC、API、集群与安全等见 ZLMediaKit完整文档.md。目录一句话了解 ZLMediaKit核心概念推流 → MediaSource → 播放端口与 URL 约定5 分钟上手推流与播放配置与 API 速览协议选择速览常见问题下一步1. 一句话了解 ZLMediaKitZLMediaKit是基于 C11 的高性能流媒体服务框架统一MediaSource管理实现 RTSP、RTMP、HLS、HTTP-FLV、WebSocket-FLV、GB28181、HTTP/WS-TS、HTTP/WS-fMP4、WebRTC、SRT 等协议间全双向转换单机 10 万 并发、100–500ms 延迟。提供即用的MediaServer含 RESTful API、WebHook与可嵌入的C API SDK。为什么用 ZLMediaKit协议全监控GB28181/RTSP与直播RTMP/HLS/WebRTC统一接入按需转协议性能高异步 I/O、多线程、智能指针企业级并发与带宽部署活Docker 一键跑、源码裁剪编译、SDK 嵌入2. 核心概念推流 → MediaSource → 播放步骤做什么1. 启动 MediaServerDocker 或本机运行监听 RTMP/HTTP/RTSP/WebRTC 等端口2. 推流FFmpeg、OBS、GB28181 设备等把流推到 ZLMediaKit如rtmp://server/live/stream3. 播放任意协议拉流RTMP、HTTP-FLV、HLS、RTSP、WebRTC 等由 MediaSource 统一供给三个关键抽象MediaSource所有流的统一抽象由 vhost、app、stream 唯一标识协议转换任意入站协议可转为任意出站协议按需生成如 HLS/MP4 可 demand 开启应用/流名URL 中 app 与 stream 决定流标识与 SRS 类似如/live/test3. 端口与 URL 约定端口用途1935RTMP80 / 443HTTP/HTTPSAPI、HLS、HTTP-FLV、Web 管理554RTSP8000WebRTCUDP 可另行配置URL 格式以 applive、streamtest为例推流rtmp://服务器:1935/live/testRTMP 播放rtmp://服务器:1935/live/testHTTP-FLVhttp://服务器/live/test.flvHLShttp://服务器/live/test/hls.m3u8RTSPrtsp://服务器:554/live/testAPIhttp://服务器/index/api/getServerConfig需 secret 参数4. 5 分钟上手4.1 前提已安装Docker可选FFmpeg、ffplay或 VLC推流/播放测试4.2 启动 MediaServerdockerrun-d--namezlmediakit\-p1935:1935-p80:80-p443:443-p554:554-p8000:8000\zlmediakit/zlmediakit:latest需自定义配置时可挂载-v /path/to/config:/opt/media/conf。4.3 验证浏览器打开http://localhost/index/api/getServerConfig?secret035c73f7-bb6b-4889-a715-d9eb2d1925cc默认 secret生产务必修改应返回 JSON 配置。4.4 推一条流FFmpegffmpeg-re-itest.mp4\-c:vlibx264-profile:vbaseline-presetultrafast-tunezerolatency\-c:aaac-ar44100-b:a128k\-fflv rtmp://localhost/live/test4.5 播放ffplayffplay rtmp://localhost/live/test或ffplay http://localhost/live/test.flv或ffplay rtsp://localhost/live/testVLC媒体 → 打开网络串流输入上述任一 URL先起容器 → 再推流 → 再播放。生产环境请改 secret、配置 TLS 与访问控制。5. 推流与播放推流示例# RTMP 推流ffmpeg-re-iinput.mp4-ccopy-fflv rtmp://localhost/live/streamname播放示例RTMPffplay rtmp://localhost/live/streamnameHTTP-FLV低延迟ffplay http://localhost/live/streamname.flvRTSPffplay rtsp://localhost/live/streamname同一路流多协议同时可用由 MediaSource 统一输出。6. 配置与 API 速览config.ini 核心片段[api]secretAPI 鉴权必改、snapRoot、downloadRoot[protocol]enable_hls、enable_rtsp、enable_rtmp、*_demand按需转换[general]maxStreamWaitMS、streamNoneReaderDelayMS、mediaServerId、listen_ip[hook]enable、on_publish、on_play等 WebHook URLRESTful API响应统一为{ code: 0, msg: success, data: {...} }。常用getMediaList列流、startStreamProxy拉流代理、getServerConfig。请求时带secret参数。7. 协议选择速览需求建议最快跑通、兼容广RTMP 推流 HTTP-FLV 或 RTMP 播放超低延迟HTTP-FLV 或 WebRTC监控/国标GB28181 RTSP点播/拖动MP4 以 rtsp://host/vod/xx.mp4 或 HTTP 访问浏览器无插件HLS 或 HTTP-FLV或 WebRTC8. 常见问题现象可能原因处理容器起不来端口占用检查 80、1935、554、8000改用其它主机端口映射API 403 / 无数据secret 错误或未传请求 URL 加?secret你的secret推流连不上防火墙、地址错误放行对应端口确认 rtmp://host:1935/app/stream播放无画面流未推上、协议或路径错误先确保推流成功用 getMediaList 查流是否存在WebRTC 不通端口/UDP/ICE放行 8000 等 WebRTC 端口公网需配置 ICE 候选查运行状态curl http://localhost/index/api/getMediaList?secret你的secret可看当前流列表。9. 下一步官方ZLMediaKit GitHub — 源码、Issues、Releases、Wiki。配置与 API仓库conf/config.ini、server/WebApi.cpp及文档中的 RESTful API 与 WebHook 说明。