https://github.com/ZLMediaKit/ZLMediaKit
快速开始:
https://github.com/ZLMediaKit/ZLMediaKit/wiki/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B
1.
请不要使用github下载zip包的方式下载源码,务必使用git克隆ZLMediaKit的代码,因为ZLMediaKit依赖于第三方代码,
zip包不会下载第三方依赖源码,你可以这样操作:
#国内用户推荐从同步镜像网站gitee下载
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
#千万不要忘记执行这句命令
git submodule update --init
2.
切换分支到dev,因为只有dev分支才有webrtc的支持
列出分支
git branch -a
切换到dev
git checkout dev
3. 直接使用脚本编译
./build_for_linux.sh
问题:1.
shell脚本报错:-bash: xxx: /bin/sh^M: bad interpreter: No such file or directory
https://blog.csdn.net/yamaxifeng_132/article/details/71105311
windows编辑的bash传到了linux下,windows下是dos方式,linux下是bash方式结尾
vim或者vi打开
:set ff
可以看到:
fileformat=dos
修改:
:set ff=unix
再次:set ff查看
fileformat=unix
问题:2.
会提示srtp找不到
最新libsrtp库的编译与测试方法
https://blog.csdn.net/cgs1999/article/details/89704359
git clone https://github.com/cisco/libsrtp.git
cd libsrtp
./configure
支持webrtc
./configure --enable-openssl
make
测试编译结果
make runtest
sudo make install
4. 再次运行脚本./build_for_linux.sh进行编译
编译完成的程序在
ZLMediaKit/release/linux/Debug下
5. 运行测试
cd ZLMediaKit/release/linux/Debug
./MediaServer
程序启动失败,请修改配置文件中端口号后重试
sudo ./MediaServer
推流:
//rtsp push
ffmpeg -re -i "./test.264" -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://192.168.192.141/live/test
//rtmp push
ffmpeg -re -i "./test.264" -vcodec h264 -acodec aac -f flv rtmp://192.168.192.141/live/test
拉流查看
ffplay -i rtsp://192.168.192.141/live/test -fflags nobuffer
ffplay -i rtmp://192.168.192.141/live/test -fflags nobuffer
//延时
采用vlc或者或者别的播放器是无法查看延时的,为了卡顿,音视频同步等,会做buff处理,用ffplay会好点
效果如下截图:
rtmp
rtsp
另:
采用rtsp推流,rtmp拉流,或者rtmp推流,rtsp拉流也是可以的
webrtc
注意:前期如果编译libsrtp的时候没有开启openssl,此处会crash,重新编译就好
打开2个页面实现音视频通信,选择对应的分辨率
https://192.168.192.141/webrtc/
一个push
https://192.168.192.141/index/api/webrtc?app=live&stream=test&type=push
一个play
https://192.168.192.141/index/api/webrtc?app=live&stream=test&type=play