HowTo文档
如何在 XSwitch 中对接 ZLMediaKit
背景
ZLMediaKit是一套高性能的流媒体服务框架,目前支持 rtmp/rtsp/hls/http-flv 流媒体协议。该项目已支持 linux、macos、windows、ios、android 平台,支持的编码格式包括 H264、AAC、H265(仅 rtsp 支持 H265);采用的模型是多线程 IO 多路复用非阻塞式编程(linux 下采用 epoll、其他平台采用 select)。
启动 ZLMediaKit
源码方式
关于如何启动 ZLMediaKit,可参考 快速开始
镜像方式
可以从 Docker Hub 下载已经编译好的镜像并启动它:
#此镜像为github持续集成自动编译推送,跟代码(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
也可以根据 Dockerfile 编译镜像:
bash build_docker_images.sh
启动 XSwitch
参见XSwitch 入门 及 XSwitch 下载安装指南 安装 XSwitch,并熟悉 XSwitch 的使用。
XSwitch 推流到 ZLMediaKit
首先启动一个会议:
conference 3000 dial user/1000
注意:上面仅是简单的会议,在 XSwitch 中,会议名称是形如:会议号-域这样的格式,如3000-xswitch.cn。
将用户 1000 拉进会议,此时会议中只有一个人的视频画面。
按照 播放规则进行推流:
conference 3000 record rtmp://127.0.0.1/live/test
此时在浏览器打开:
http://127.0.0.1/live/test.live.mp4
即可看到视频会议中的内容,同时使用 VLC 进行测试,地址同上。
XSwitch 从 ZLMediaKit 拉流
首先使用 ffmpeg 推流到 ZLMediaKit:
ffmpeg -re -i "./path/to/test.mp4" -vcodec h264 -acodec aac -f flv rtmp://127.0.0.1/live/test
此时 ffmpeg 的工作目录在 ZLMediaKit 的根目录下
然后将服务器上的视频拉到会议中:
conference 3000 play http://127.0.0.1/live/test.live.mp4
参考
- ZLMediaKit https://github.com/ZLMediaKit/ZLMediaKit
- 快速开始 https://github.com/ZLMediaKit/ZLMediaKit/wiki/快速开始
- FFmpeg Protocols https://ffmpeg.org/ffmpeg-protocols.html