ZLMediaKit是一个新出的流媒体服务器,与SRS功能基本一致,但是SRS不支持windows,ZLMediaKit是支持windows平台的。
方便在windows平台下进行学习和开发。
具体的编译方法,项目wiki中有,但是不够详细。本人综合个人的经验和项目issues汇总一下相关情况。
一、依赖库
只编译服务器, 跑起来的话,只需要openssl即可。
参见快速开始 · ZLMediaKit/ZLMediaKit Wiki · GitHub 个人建议选择32位的openssl库,必竟通用性强。
如果需要录制功能,需要下载ffmpeg开发库。
test_player测试程序,需要用到ffmpeg,faac,mp4v2,SDL2这4个库。
各个库的下载地址:
1.openssl (必选)
Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions
------以下4个可以不要------------
2.ffmpeg
https://ffmpeg.zeranoe.com/builds/ dev目录下是编译好的
3.faac
Freeware Advanced Audio Codec download | SourceForge.net
4.mp4v2
Releases · TechSmith/mp4v2 · GitHub
5.SDL2
Simple DirectMedia Layer - Homepage 页面上的 SDL2-devel-2.0.12-VC.zip
二、具体流程
建议使用CMake图形窗口生成visual studio的 sln解决方案。
CMake如何使用这里不做说明。
需要指定SSL所用到的库和头文件目录,参照下图。
项目Wiki上说vs2017或以上,用vs打开代码根目录,但是个别人发现有问题:VS2019编译报错 · Issue #289 · ZLMediaKit/ZLMediaKit · GitHub
三、注意事项
3rdpart目录下的 media-server是另一个项目,如果你是直接下载zip包得到的zlmedia代码,里面没有media-server代码,
要按照wiki文档,用 git submodule update --init 命令下载子模块才可以。
四、运行MediaServer
vs编译非常快的,估计1分多钟就要可以了。
编译成功后,会在ZLMediaKit\release\windows\Debug\Debug\ 目录下生成MediaServer.exe,
要运行此程序需要将 ZLMediaKit\conf\config.ini放到此目录下,具体的端口可以根据需要进行单独配置,
如果要支持https,还要把ZLMediaKit\test\ssl.p12复制到此目录下,里面包含ssl用的证书。
程序运行截图:
五、推流和播放
OBS推流选择正确的端口和地址即可。 推送地址示例: rtmp://127.0.0.1/live/0
ffmpeg 推流命令
./ffmpeg -re -i ./doc/ljg.mp4 -vcodec copy -acodec copy -f flv -y rtmp://localhost/live/0
播放地址:
(rtsp默认554端口,http默认80,https默认443,如果配置文件中不是像这样配置,需要在下面的地址域名后面添加端口号。)
rtsp://somedomain.com/live/0
rtsps://somedomain.com/live/0
rtmp://somedomain.com/live/0
rtmps://somedomain.com/live/0
http://somedomain.com/live/0/hls.m3u8
https://somedomain.com/live/0/hls.m3u8
更多URL信息请参考播放url规则 · ZLMediaKit/ZLMediaKit Wiki · GitHub
六、MediaServer作为点播服务器
MediaServer可以将mp4文件转化为媒体流进行分发(目前只支持mp4文件)。
具体做法是:将test.mp4放到 ./www/record/目录下后,用以下地址播放
rtmp://127.0.0.1/record/test.mp4
rtsp://127.0.0.1/record/test.mp4