rtsp_push
main
|
|->domain //两个参数 第一个playurl(rtsps/rtsp/rtmp/rtmps), 第二个pushurl
|
|->Logger::add //设置日志
|
|->Logger::setWriter
|
|->EventPollerPool::getPoller
|
|->new PlayerProxy //可指定拉流方式,默认tcp,PlayerProxy继承MediaPlayer
|
|->PlayerProxy::play //开始拉流播放
|
|->setOnPlayResult //lambda 做函数参数,这里为了方便理解,直接用层层调用的方式展示调用关系
|
|->setOnShutdown
|
|->MediaPlayer::play //PlayerProxy继承MediaPlayer, MediaPlayer继承PlayerBase
|
|->PlayerBase::createPlayer //根据url中带的rtsps/rtsp/rtmp/rtmps来创建对应实例,RtspPlayer/RtmpPlayer/
|
|->RtspPlayer::play //这里只看rtsp方式,创建tcp连接,开始收数据
|
|->RtspPlayer::play //重载,支持url中带用户名密码
|
|->RtspPlayer::teardown //如果是alive的 先调下teardown去关闭流,并清理下资源
|
|->TcpClient::startConnect //解析出ip port 和域名
|
|->Socket::connect //TcpClient中保存socket智能指针,创建tcp客户端,url可以是ip或域名
| //connect不成功,回调设置错误状态
|->SockUtil::connect//套接字工具类,封装了socket、网络的一些基本 *** 作
|
|->TcpClient::onSockConnect //connect成功后,回调中再在网络线程中触发 senddescribe
| //这里为了方便显示调用顺序,实际onSockConnect是回调触发
|->RtspPlayer::onErr //被动断开连接回调,这里只看rtspplayer
|
|->onPlayResult_l
|
|->onFlush //这里并没有做什么
|
|->TcpClient::onSockRecv//
|
|->RtspPlayer::onRecv//这里已经开始收服务端的数据了
|
|->>
rtmp的视频流使用video-js插件即可直接播放。
rtsp的视频流无法直接在浏览器端播放,>
以上就是关于2019-10-09 zlmediakit主要代码流程整理全部的内容,包括:2019-10-09 zlmediakit主要代码流程整理、FFmpeg 代码实现流媒体推流(RTSP)、记:rtmp,rtsp,http视频流播放等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)