metaRTC实现ZLMediaKit流媒体服务器webrtc推拉流
Posted metaRTC
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了metaRTC实现ZLMediaKit流媒体服务器webrtc推拉流相关的知识,希望对你有一定的参考价值。
概述
ZLMediaKit是一个基于C++11的支持webrtc的高性能运营级流媒体服务框架,在github上star为6000,在国内行业应用具有比较大的影响力,metaRTC新版本支持zlm的webrtc推拉流。
下载源码
https://github.com/metartc/metaRTChttps://github.com/metartc/metaRTCmetaRTC: metaRTC为嵌入式版本的webrtchttps://gitee.com/metartc/metaRTC
git clone https://github.com/metartc/metaRTC.git
或者
git clone https://gitee.com/metartc/metaRTC.git
ZLMediaKit下载
https://github.com/ZLMediaKit/ZLMediaKithttps://github.com/ZLMediaKit/ZLMediaKitZLMediaKit: 实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求https://gitee.com/xia-chu/ZLMediaKit
ZLMediaKit配置
[rtsp]
#rtsp专有鉴权方式是采用base64还是md5方式
authBasic=0
#rtsp拉流、推流代理是否是直接代理模式
#直接代理后支持任意编码格式,但是会导致GOP缓存无法定位到I帧,可能会导致开播花屏
#并且如果是tcp方式拉流,如果rtp大于mtu会导致无法使用udp方式代理
#假定您的拉流源地址不是264或265或AAC,那么你可以使用直接代理的方式来支持rtsp代理
#如果你是rtsp推拉流,但是webrtc播放,也建议关闭直接代理模式,
#因为直接代理时,rtp中可能没有sps pps,会导致webrtc无法播放; 另外webrtc也不支持Single NAL Unit Packets类型rtp
#默认开启rtsp直接代理,rtmp由于没有这些问题,是强制开启直接代理的
directProxy=1 //必须为1
directProxy设为1
demo配置
推流demo配置
安卓版设置在native-lib.cpp文件里
拉流播放demo配置
安卓版设置在native-lib.cpp文件里
metaRTC4.0集成ffmpeg编译
概述
ffmpeg是一个强大的音视频处理软件,处理各种音视频的编解码和传输等,里面还集成有ffplay播放器等。metaRTC4.0新版本支持静态编译集成到ffmpeg,实现 ffmpeg从流媒体服务器SRS和ZLM的webrtc推拉流,实现ffmpeg的p2p拉流。
下载源码
GitHub - metartc/ffmpeg-metartc: 集成到ffmpeg的metaRTC集成到ffmpeg的metaRTC. Contribute to metartc/ffmpeg-metartc development by creating an account on GitHub.https://github.com/metartc/ffmpeg-metartcffmpeg-metartc: 集成到ffmpeg里的metaRTChttps://gitee.com/metartc/ffmpeg-metartc
编译参数设置
metaRTC4.0编译
修改配置文件include/yang_config.h中
将Yang_HaveDatachannel设为0
//是否编译datachannel支持 1:是 0:否
#define Yang_HaveDatachannel 1
ffmpeg编译
编译参考下面链接
以上是关于metaRTC实现ZLMediaKit流媒体服务器webrtc推拉流的主要内容,如果未能解决你的问题,请参考以下文章
ZLMediaKit+wvp-GB28181-pro,搭建28181协议视频平台
ZLMediaKit + wvp-GB28181-pro 流媒体服务搭建