14.live555mediaserver-play请求与响应

live555工程代码路径
live555工程在我的gitee下(doc下有思维导图、drawio图):
live555
https://gitee.com/lure_ai/live555/tree/master

章节目录链接
0.前言——章节目录链接与为何要写这个?
https://blog.csdn.net/yhb1206/article/details/127259190?spm=1001.2014.3001.5502

学习demo
live555mediaserver.cpp

学习线索和姿势
1.学习的线索和姿势

网络编程
流媒体的地基是网络编程(socket编程)。
[网络编程学习]-0.学习路线。

绘图规则
本文的对象图和思维导图遵守的规则详见:
2.绘图规则

非阻塞服务端网络编程流程
socket创建、bind、listen、select、accept、select、recv/send-close。

rtsp协商流程
options、describe、setup、play、pause、teardown、get parameter、set parameter

本节内容和目标
(1)rtsp协议的setup请求与响应
(2)思维导图绘制
(3)wireshark抓包
(4)对象图
(5)延时任务管理双向循环链表探索

正式开始
SETUP协商完事,VLC接着下发了PLAY信令,开始PLAY协商。

1.客户端PLAY请求报文

14.live555mediaserver-play请求与响应_第1张图片

2.PLAY响应

响应报文如下
14.live555mediaserver-play请求与响应_第2张图片

如何组成的响应报文,如下慢慢学习。

其实应该带着问题来学习,这样最好,我看到这的时候有问题:
(1) play 的服务端响应流程,mkv文件、h264文件等的流程,是不是会抽象出通用的流程?
(2)然后就是分离音视频数据的,如何分离的?——算了,我也不想知道,太细了、大致流程就行了。
(3)音视频rtp打包和发送live555是如何实现的?这个应该是属于rtp协议线索阶段,不过也是play交互完成后要做的事。

关于play流程,网上也有,
https://blog.csdn.net/htbsoft0556/article/details/21528045

简单的play流程思维导图如下:
14.live555mediaserver-play请求与响应_第3张图片

可以看到play流程简单,实现复杂——先查找播放的起始位置,然后就开始了rtp打包发送流程,最后组响应包。

你可能感兴趣的:(手把手一起学live555,服务器,学习,网络协议)