
【live555】源码走读
文章平均质量分 75
live555是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了标准流媒体传输,是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持
Chiang木
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【RTSP/RTP/RTCP/SDP】协议详解
一、RTSP协议RTSP(Real Time Streaming Protocol)是一个有效地在IP网络上传输流媒体数据的应用层协议。RTSP对流媒体提供了诸如暂停,快进、停止等控制,而它本身并不传输数据,RTSP的作用相当于流媒体服务器的远程控制。它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。并因RTSP具有重新导向功能,可视实际负载情况来转换提...原创 2019-09-29 15:46:38 · 6954 阅读 · 0 评论 -
live555学习笔记【1】-学前准备
一、简介:live555是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持。推荐一个特别好用的微信公众号:码客SHOW 里面以百度云下载链接分享的方式,可以免费...原创 2019-09-29 16:26:50 · 1029 阅读 · 1 评论 -
live555学习笔记【2】--重要类
接下来,我们正式进入live555的学习,live555项目的源代码中包括四个基本的库、各种测试代码以及Media Server。四个基本的库分别是: UsageEnvironment、groupsock、 liveMedia以及BasicUsageEnvironment。首先,我们先来学习live555中比较重要的几个类,不一定对其完全熟悉,只需要知道live555中存在这个类,以及这个类...原创 2019-09-29 17:12:22 · 557 阅读 · 3 评论 -
live555学习笔记【3】---RTSP服务器(一)
Live555库是一个使用开放标准协议如RTP/RTCP、RTSP、SIP等实现多媒体流式传输的开源C库集。这些函数库可以在Unix、Windows、QNX等操作系统下编译使用,基于此建立RTSP/SIP服务器和客户端来实现多媒体流的传输。下面给出具体实现过程[4]:(1)客户端发起RTSP OPTION请求,目的是得到服务器提供什么方法。RTSP提供的方法一般包括OPTIONS、DES...原创 2019-09-30 00:36:41 · 8842 阅读 · 2 评论 -
live555学习笔记【4】---RTSP服务器(二)
上篇文章 live555学习笔记【3】---RTSP服务器(一) 上篇文已经将整个RTSP服务器的处理流程分析过了,接下来我们再细看RTSP服务器对客户端报文的处理。本篇博客需要深入分析服务器对客户端报文的处理,所以要求你对RTSP、SDP协议有一定的了解,建议在学习之前,先去看下我的另一篇博客:【RTSP/RTP/RTCP/SDP】协议详解我们先来分析一下客户端信息处理函数handleR...原创 2019-09-30 18:11:27 · 1573 阅读 · 0 评论 -
live555学习笔记【5】---消息循环
如果你真的有认真阅读live555的源码,你会发现,无论是它的服务器还是客户端,最终都会走到一个env->taskScheduler().doEventLoop()函数内,看名字应该就可以看出来,这是个消息循环处理函数。实际上,无论是客户端还是服务器,我们可以通过watchVariable变量来控制服务器或客户端的正常退出,否则它们永远都不会退出。void BasicTaskSch...原创 2019-10-06 13:50:35 · 1043 阅读 · 0 评论 -
live555学习笔记【6】---客户端(一)
之前已经阅读了live555服务器的部分代码,其中也讲解了服务器对客户端各个RTSP命令的处理过程,下面我们来看看客户端是如何发送这些命令。testProgs中的OpenRTSP是典型的RTSPClient示例,所以分析它吧。main()函数在playCommon.cpp文件中。main()的流程比较简单,跟服务端差别不大:建立任务计划对象--建立环境对象--处理用户输入的参数(RTSP地址...原创 2019-10-06 16:41:34 · 1232 阅读 · 0 评论 -
live555学习笔记【7】---客户端(二)
上文我们已经讲过了,客户端的DESCRIBE命令,接下来,我们继续讲一下剩下的RTSP命令。发送SETUP命令,就是告诉服务器我们已经准备好了,可以建立连接进行数据传输了。之后,客户端通过之前设置好的RTP/RTCP端口去取流,进行数据的保存或播放,专业点叫做FileSink。void createPeriodicOutputFiles() { // Create a filen...原创 2019-10-06 18:31:56 · 560 阅读 · 0 评论