手把手一起学live555
文章平均质量分 82
手把手一起学live555系列
云会宾
云无心
展开
-
rtsp保活的方法
rtsp协议有建议客户端固定间隔地向服务端发送getparameter信令来保活。比如vlc设置成http模式——就是rtsp over udp模式——下每隔58s会下发get parameter。【linux下使用TCP存活(keepalive)定时器 - CSDN App】http://t.csdnimg.cn/x1a8H。如果没有采用第1条,那么只能采用第2条了。原创 2024-05-15 15:33:11 · 568 阅读 · 0 评论 -
17.live555mediaserver-保活机制
静态方法MultiFramedRTPSource::networkReadHandler是在MultiFramedRTPSource::doGetNextFrame()里注册到socket任务里的,看fAreDoingNetworkReads这个成员保证只注册一次,这个socket任务如何注册的可以参见。RTCPInstance::processIncomingReport调用的,大概意思也就是说在收到客户端的rtcp的接收⽅报告RR的时候才会调用noteArrivingRR方法,然后自然刷新保活。原创 2023-11-19 14:11:30 · 355 阅读 · 1 评论 -
live555mediaserver——探讨下live555用的编程设计模式
从这第1阶段就能发现,它实质用到了reactor网络编程模式。但是想想,还是拿出来吧。原创 2023-09-07 15:45:58 · 907 阅读 · 0 评论 -
16.live555mediaserver-rtp打包与发送
流媒体的地基是网络编程(socket编程)。。socket创建、bind、listen、select、accept、select、recv/send-close。打开媒体文件、读取一帧媒体数据、rtp打包、rtp发送(1)rtp打包(2)思维导图绘制(3)wireshark抓包(4)对象图server端收到play指令后就开始进行流媒体数据打rtp包进行发送了。一般rtp打包思路:(1) 打开媒体文件(2)读取一帧数据(3) rtp打包。原创 2023-08-26 21:15:01 · 394 阅读 · 0 评论 -
live555学习中的疑问和零散注意点
2.mkv解析,分离出音视频,需要追踪。3.play后音视频分离需要追踪。1.sdp解析,需要详细追踪。原创 2023-06-08 08:07:24 · 146 阅读 · 0 评论 -
15.live555mediaserver-play请求与响应
流媒体的地基是网络编程(socket编程)。。socket创建、bind、listen、select、accept、select、recv/send-close。(1)rtsp协议的setup请求与响应(2)思维导图绘制(3)wireshark抓包(4)对象图(5)延时任务管理双向循环链表探索SETUP协商完事,VLC接着下发了PLAY信令,开始PLAY协商。原创 2023-07-15 10:09:10 · 311 阅读 · 0 评论 -
14.live555mediaserver-setup请求与响应
live555工程在我的gitee下(doc下有思维导图、drawio图):https://gitee.com/lure_ai/live555/tree/master流媒体的地基是网络编程(socket编程)。。socket创建、bind、listen、select、accept、select、recv/send-close。(1)rtsp协议的setup请求与响应(2)思维导图绘制(3)wireshark抓包(4)对象图。原创 2023-01-15 22:40:11 · 1060 阅读 · 2 评论 -
13.live555mediaserver-describe请求与响应
这是[手把手一起学live555]的第13篇(按这个序号看,请找正确顺序看)。live555工程在我的gitee下(doc下有思维导图、drawio图):https://gitee.com/lure_ai/live555/tree/master学习demolive555mediaserver.cpp学习线索和姿势1.学习的线索和姿势网络编程流媒体的地基是网络编程(socket编程)。[网络编程学习]-0.学习路线。绘图规则本文的对象图和思维导图遵守的规则详见:2.绘图规则非阻塞服务端网原创 2022-11-28 09:15:52 · 507 阅读 · 0 评论 -
12.live555mediaserver-options请求与响应
这是[手把手一起学live555]的第12篇(按这个序号看,请找正确顺序看)。live555工程在我的gitee下(doc下有思维导图、drawio图):https://gitee.com/lure_ai/live555/tree/master流媒体的地基是网络编程(socket编程)。。socket创建、bind、listen、select、accept、。(1)rtsp协议的OPTIONS和DESCRIBE请求与响应(2)思维导图绘制(3)wireshark抓包。原创 2022-11-26 15:51:17 · 224 阅读 · 0 评论 -
11.live555mediaserver-如何响应rtsp请求?
这是[手把手一起学live555]的第12篇(按这个序号看,请找正确顺序看)。live555工程在我的gitee下(doc下有思维导图、drawio图):https://gitee.com/lure_ai/live555/tree/master学习demolive555mediaserver.cpp学习线索和姿势1.学习的线索和姿势网络编程流媒体的地基是网络编程(socket编程)。[网络编程学习]-0.学习路线。绘图规则本文的对象图和思维导图遵守的规则详见:2.绘图规则非阻塞服务端网络原创 2022-11-20 12:18:00 · 293 阅读 · 0 评论 -
10.live555mediaserver-如何解析rtsp请求报文?
链表图中最左边客户端下面说的第2方法就是服务端的接受到rtsp协议数据处理的地方,第2个方法就是:GenericMediaServer::ClientConnection::incomingRequestHandler(void* instance, int /live555工程在我的gitee下(doc下有思维导图、drawio图):https://gitee.com/lure_ai/live555/tree/master。这是[手把手一起学live555]的第10篇(按这个序号看,请找正确顺序看)。原创 2022-10-30 01:33:11 · 386 阅读 · 0 评论 -
[live555]-linux下编译报错问题
就普通的x86下,linux编译live555源码报错。说找不到libcrypto.a。问题原因:使用name命令查看是因为这个库装的格式不对,需要重装,可以搜ssl库安装libcrypto.a教程。另外live555提供非ssl的编译配置,config.平台-no-openssl./genMakefile 平台-no-opensslmake clean all即可。原创 2022-09-06 16:41:02 · 1128 阅读 · 0 评论 -
9.live555mediaserver-如何识别完整的rtsp请求报文?
live555工程在我的gitee下(doc下有思维导图、drawio图):https://gitee.com/lure_ai/live555/tree/master。从这小节开始,代码走读线索从网络编程线索正式切换到第2条线索——rtsp协议线索,本节追踪rtsp协议的第2个流程describe。这是[手把手一起学live555]的第10篇(按这个序号看,请找正确顺序看)。socket创建、bind、listen、select、accept、流媒体的发动机是网络编程(socket编程)。原创 2022-10-17 22:00:02 · 396 阅读 · 0 评论 -
6.live555mediaserver-[select-recvfrom/send-close]
这是[手把手一起学live555]的第7篇(按这个序号看,请找正确顺序看)。live555工程在我的gitee下(doc下有思维导图、drawio图):https://gitee.com/lure_ai/live555/tree/master学习demolive555mediaserver.cpp学习线索和姿势1.学习的线索和姿势网络编程流媒体的发动机 是网络编程(socket编程)。[网络编程学习]-0.学习路线。绘图规则本文的对象图和思维导图遵守的规则详见:2.绘图规则本节内容和目原创 2022-10-17 12:37:24 · 380 阅读 · 0 评论 -
8.live555mediaserver-第2阶段rtsp协议线索简述
这是[手把手一起学live555]的第8篇(按这个序号看,请找正确顺序看)。live555工程在我的gitee下(doc下有思维导图、drawio图):https://gitee.com/lure_ai/live555/tree/master学习demolive555mediaserver.cpp学习线索和姿势1.学习的线索和姿势网络编程流媒体的发动机 是网络编程(socket编程)。学习路线[网络编程学习]-0.学习路线。非阻塞服务端网络编程流程socket创建、bind、listen、原创 2022-10-17 21:57:05 · 551 阅读 · 0 评论 -
7.live555mediaserver-第1阶段小结(完整对象图和思维导图)
这个原创 2022-10-17 21:56:34 · 1062 阅读 · 0 评论 -
5.live555mediaserver-accept
这是[手把手一起学live555]的第5篇(按这个序号看,请找正确顺序看)。live555工程在我的gitee下(doc下有思维导图、drawio图):https://gitee.com/lure_ai/live555/tree/master学习demolive555mediaserver.cpp学习线索和姿势[手把手一起学live555]-1.学习的线索和姿势技术骨架流媒体的骨架(地基)是网络编程(socket编程)。可以查看我的这个学习路线[网络编程学习]-0.学习路线。绘图规则本文的原创 2022-10-14 19:59:43 · 793 阅读 · 0 评论 -
4.live555mediaserver-第一次select
这是[手把手一起学live555]的第5篇(按这个序号看,请找正确顺序看)。live555工程在我的gitee下(doc下有思维导图、drawio图):https://gitee.com/lure_ai/live555/tree/masterlive555的服务端打算从live555mediaserver.cpp这个demo学习live555源码。学习线索:从服务器端socket网络编程线索开始一步一步探索到rtsp、rtp。本节内容和目标(1)服务端网络编程流程accept、select(服务网原创 2022-10-14 19:59:22 · 1022 阅读 · 3 评论 -
2.绘图规则
这是[手把手一起学live555]的第3篇(按这个序号看)。1.drawio绘图规则drawio是个强大的多功能的开源的绘图工具,如果用过word的visio画过图,那用这个是无缝衔接喝开水似的(不要怀疑自己,这个工具不学就会用!)。drawio我是用来绘制对象图的,不知道的替你太可惜了,现在讲下绘图规则。先贴个图,有图再讲比较容易理解。上图是DynamicRTSPServer类的类图,其4层。实线+空三角是继承的意思,其他线等这块知识是属于UML绘制标准知识,在哪看?我是从《大话设计模式》上学原创 2022-10-12 09:53:16 · 408 阅读 · 0 评论 -
1.学习的线索和姿势
在此单独说下代码走读的线索,因为这是0到1丝滑般切换的关键,是阅读代码的灵魂。因此,经过流媒体的特点我找到一个学习的线索:以网络编程为线索,自下而上探索到rtsp、rtp等协议及处理。我提倡以业务为线索,现在阅读live555流媒体开源项目以网络编程为线索并不冲突,因为流媒体的骨架、发动机是网络编程——流媒体基于网络数据的接受与发送。所以网络编程也可以单独作为一个业务来观察与优化。思考了下这个线索,还挺靠谱的,从这看来,这就把握了流媒体的底盘核心(地基),给人以充实感,和安全感。以点共面,建议凡是原创 2022-10-12 09:26:35 · 385 阅读 · 0 评论 -
3.live555MediaServer-从socket创建到listen
准备学习夏live555mediaserver.cpp这个demo。我的学习思路是这样的:从服务器端socket网络编程线索开始一步一步探索到rtsp、rtp。这样我们就能知道整个服务器是如何收数据和发送数据的。当然少不了用开源工具drawio绘制的详细对象图和用xmind绘制的思维导图。我希望经过这样的学习,大家和我一起收获到服务端网络编程知识、rtsp协议、rtp协议、c++相关基础知识、面向对象编程思想等知识。未完待续原创 2022-10-14 19:58:31 · 1659 阅读 · 6 评论 -
0.前言——章节目录链接与为何要写这个?
对开源项目live555的学习笔记原创 2022-10-11 11:34:42 · 583 阅读 · 0 评论