Table of Contents
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
一、摘要
在8月10号,我们在github收到了一个来自 @baigao-X 同学的重磅pr(pull request, 拉取合并请求)。简而言之,该pr实现了完整的webrtc ice-full功能,也就是说,zlmediakit在该分支可以实现完整的webrtc功能,不仅仅包括之前基于ice-lite实现的webrtc服务端,还能作为webrtc客户端在NAT内主动发起webrtc请求。基于该特性,zlmediakit可以作为webrtc播放器主动拉流,也可以作为webrtc推流器主动推流,还可以作为P2P客户端双向视频会话。
二、功能介绍
2.1、作为webrtc播放器
用法请参考 https://github.com/ZLMediaKit/ZLMediaKit/blob/master/player/test_player.cpp
用法请参考 https://github.com/ZLMediaKit/ZLMediaKit/blob/master/api/tests/player_opencv.c
2.2、作为webrtc推流器
用法请参考:https://github.com/ZLMediaKit/ZLMediaKit/blob/master/tests/test_pusherMp4.cpp
用法请参考: https://github.com/ZLMediaKit/ZLMediaKit/blob/master/api/tests/h264_pusher.c
2.3、更多用法介绍
另外还支持p2p相关功能,详情请参考:https://github.com/ZLMediaKit/ZLMediaKit/blob/master/webrtc/USAGE.md
三、快速尝鲜
- 通过docker方式:
#此镜像为github action 持续集成自动编译推送,跟代码(master分支)保持最新状态
docker run -id -p 1935:1935 -p 8080:80 -p 8443:443 -p 8554:554 -p 10000:10000 -p 10000:10000/udp -p 8000:8000/udp -p 9000:9000/udp zlmediakit/zlmediakit:master
- 通过二进制包: 用户可以在该issue下载zlmediakit最新代码自动发布的二进制包: https://github.com/ZLMediaKit/ZLMediaKit/issues/483
四、友情提示
-
关于稳定性: 在经过一个多月的审核、完善(共计70多个提交)、测试工作后,该pr目前已经合并进master主分支并升级为9.0版本,原稳定主分支存档为8.0分支。目前经过我们的测试,原有功能(作为webrtc服务端)基本可以保障稳定运行,其他非webrtc相关功能改动很小,大家可以放心使用。但是由于webrtc ice相关代码经过重构,变动极大,测试和审核并不能面面俱到,新增的webrtc客户端相关功能,可能还尚待稳定。
-
关于url格式: 目前zlmediakit的webrtc客户端url采用webrtc[s]://前缀私有格式,代码逻辑在发现为该前缀后会根据一定的规则解析并且生成zlmediakit特有的whip、whep url(http[s])。所以目前zlmediakit还不能支持其他服务器的whip、whep url,用户可以通过修改代码 兼容其他第三方webrtc服务器。
-
缺陷 目前webrtc客户端相关功能还不支持webrtc over tcp模式,只支持over udp模式。
五、致谢
在此,对 @baigao-X 同学的卓越贡献表示由衷的感谢!他对zlmediakit以及zltoolkit做出许多重要的贡献,包括zlmediakit中srt模块对客户端的完整支持,以及zltoolkit中kcp协议的支持。同时也非常感谢 @mtdxc 同学大量参与本次代码审核工作以及长期以来对zlmediakit webrtc相关功能以及转码分支的贡献。 另外,还非常感谢其他开发者对zlmediakit的厚爱和支持,以及广大开发者对zlmediakit的信任和意见建议。
测试文档
使用教程
- 代码依赖与版权声明
- 快速开始
- vcpkg安装zlmediakit
- 服务器的启动与关闭
- GB28181教程
- 推流播放测试
- RESTful 接口
- RESTful 接口 postman自动生成
- Web Hook 接口
- 配置文件详解
- 播放URL规则
- 按需拉流
- 按需推流
- 播放鉴权
- 推流鉴权
- 怎样创建直播流
- webrtc编译与使用
- webrtc信令交互格式
- webrtc重磅更新
- 怎么开启https相关功能
相关文档和资源
- zlmediakit独家特性
- zlmediakit的hls高性能之旅
- 高并发实现原理
- RTSP推流流程
- 流媒体相关技术介绍
- 直播延时的本质
- rtmp对H265/opus的支持
- ssl自签名证书测试
- 视频会议相关资源