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

参考

如何在XSwitch中对接SRS