ZLMediaKit是一个新出的流媒体服务器,与SRS功能基本一致,但是SRS不支持windows,ZLMediaKit是支持windows平台的。
方便在windows平台下进行学习和开发。
具体的编译文档中有,但是不够详细。本人综合个人的经验和项目issues汇总一下相关情况。
只编译服务器, 不编译测试程序的话,只需要openssl即可。 参见https://github.com/xiongziliang/ZLMediaKit/wiki/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B
个人建议选择32位的库,必竟通用性强。
faac,mp4v,SDL这3个库供ZLMediaKit的test_player测试程序使用,一般不需要安装这3个库。
如果不启用录制,可以不用下载和编译ffmpeg
各个库的下载地址:
1.openssl (必选)
http://slproweb.com/products/Win32OpenSSL.html
2.ffmpeg
https://ffmpeg.zeranoe.com/builds/ 下载dev的是编译好的
3.faac
https://sourceforge.net/projects/faac/
4.mp4v2
https://github.com/TechSmith/mp4v2/releases
5.SDL2
https://www.libsdl.org/ 页面上的 SDL2-devel-2.0.12-VC.zip
建议使用CMake图形窗口生成visual studio的项目文件。
Wiki上说vs2017或以上,用vs打开代码根目录,但是个别人发现有问题:https://github.com/xiongziliang/ZLMediaKit/issues/289
3rdpart目录下的 media-server是另一个项目,如果你是直接下载zip包得到的代码,里面没有代码,
需要手动运行 git submodule update --init 下载对应的源码版本。
media-server项目位于 https://github.com/ireader/media-server
如果未装git,需要自己下载media-server。但是最新版本的media-server不兼容,mov处理的文件上有一个函数不一样了,会导致错误,可以从https://github.com/xingyun86/ppshuai_ZLMediaKitServer/tree/master/src/ZLMediaKit/3rdpart 下载,这是另一个开发者上传的完整代码,包含media-server。
建议还 是使用 git submodule update --init 命令下载,可以确保是准确的。
vs编译成功后,会在ZLMediaKit\release\windows\Debug\Debug\ 目录下生成MediaServer.exe,
要运行此文件需要将ssl的相关dll放到此目录下,
ZLMediaKit\conf\config.ini放到此目录下,具体的端口需要进行单独配置,
如果要支持https,还要把ZLMediaKit\test\ssl.p12复制到此目录下,里面包含ssl用的证书。
程序运行图:
OBS推流选择正确的端口和地址即可。
以rtmp为例: rtmp://somedomain/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信息请参考https://github.com/xiongziliang/ZLMediaKit/wiki/%E6%92%AD%E6%94%BEurl%E8%A7%84%E5%88%99
MediaServer支持录像和直接点播(目前只支持mp4文件)
将test.mp4放到 ./www/record/目录下后,即可直接播放此文件。(将MedidaServer当作rtsp点播服务器使用)
播放地址:
rtmp://127.0.0.1/record/test.mp4
rtsp://127.0.0.1/record/test.mp4