音视频开发
未读基于TCP的RTP传输服务器流程1,客户端请求RTSP的Describe请求时,RTSP服务器返回的SDP协议
2,客户端请求RTSP的Setup请求时,RTSP服务器不需要再对应创建RTP和RTCP的UDP连接通道,因为TCP版的RTP传输,客户端与服务器交互时,无论是RTSP信令还是RTP数据包或者是RTCP数据包,都是使用同一个tcp连接通道。
不过这个tcp连接通道在发送rtp数据包或者rtcp数据包时,需要加一些分隔字节。
3,客户端请求RTSP的Play请求时,RTSP服务器在对Play请求回复以后,还需要源源不断的同时向客户端发送音频流和视频流的RTP数据包。
与UDP 对比
UDP协议上的RTSP/RTP需要打开许多UDP端口,一个端口用于RTSP通信,n个端口用于RTP,n个端口用于RTCP
中间网络路由器很容易就过滤或者忽略掉UDP数据包
UDP是不可靠传输协议,媒体包在因特网上传输时会面临着丢包
不需要再去创建UDP通道
CODE //“m=” 出现新流 96代表H264 /& ...
音视频开发
未读RTSP 服务器 源码理解Fd 文件描述符fd (File Descriptor) 打开的文件或网络连接的一个抽象标识符。每个文件描述符通常是一个整数,在程序运行时用于引用特定的文件或套接字。
管理网络连接:文件描述符用于表示客户端与服务器之间的网络连接。RTSP服务器会为每个连接分配一个文件描述符,以便能够区分和管理多个客户端连接。
非阻塞I/O:通过将文件描述符设置为非阻塞模式,服务器可以在无需等待数据准备好的情况下进行其他操作。这对于高效处理多个并发连接是非常重要的。
回调函数:通过为文件描述符绑定回调函数(如 readCallback),服务器可以在特定事件(如有数据可读)发生时自动调用这些函数,从而处理相应的I/O操作。
select 网络模型:select 是一种多路复用技术,用于监视多个文件描述符,以查看哪些文件描述符处于可读、可写或有异常的状态。这使得服务器可以在一个线程中高效地处理多个网络连接。
如何理解 Live555 的Source & Sink
Source 发送端, 流的起点, 可直观理解为生产者, 负责读取文件或网络流的信息.S ...
音视频开发
未读RTSP 服务器实现RTSP协议解析及实现RTSP是一个实时传输流协议,是一个应用层的协议。通常说的RTSP 包括RTSP协议、RTP协议、RTCP协议,对于这些协议的作用简单的理解如下
RTSP协议:负责服务器与客户端之间的请求与响应
RTP协议: 负责服务器与客户端之间传输媒体数据
RTCP协议:负责提供有关RTP传输质量的反馈,就是确保RTP传输的质量
三者的关系: rtsp并不会发送媒体数据,只是完成服务器和客户端之间的信令交互,rtp协议负责媒体数据传输,rtcp负责rtp数据包的监视和反馈。rtp和rtcp并没有规定传输层的类型,可以选择udp和tcp。Rtsp的传输层则要求是基于tcp。
通过一个ffmpeg 客户端拉流播放一个rtsp视频流的方式,展示RTSP的交互过程。并通过Wireshark抓包分析。
123SDP 协议(https://blog.csdn.net/uianster/article/details/125902301)一个会话级描述多个媒体级描述
main
123456789101112131415161718192021222324252 ...
RTSP 和 RTMP 原理 通过ffmpeg 实现将本地摄像头串流到RTSP服务器RTMP 与 RTSP流媒体协议 (Streaming Protocol)流媒体协议是一种用于通过 Web 传递多媒体的协议。
流媒体协议有很多,主要分为三大类:
传统视频流协议
RTMP
RTSP
基于 HTTP 的自适应协议
Apple HLS
Low-Latency HLS
MPEG-DASH
Adobe HDS
新技术
SRT
WebRTC
RTMPRTMP (Real Time Messaging Protocol)是基于 TCP 开发的,RTSP 使用到了 UDP
可以在服务器和客户端服务器之间保持稳定的连接,无论用户的互联网连接质量如何,它都可以无缝低延迟进行流媒体传输,通过将数据流分成相等的小部分(音频数据默认为 64 字节,视频数据默认为 128 字节)并将它们顺序传输到接收设备,然后将它们重新组合成视频流来实现的。
缺点是它与 HTML5 播放器不兼容,这样的话必须使用另一种协议,例如 HLS来传输视频文件到达用户的设备,此外,RTMP 容易受到带宽问题的影响。
RT ...
音视频开发
未读live555 源码阅读liveMedia: 主要的媒体处理逻辑。
UsageEnvironment: 处理事件循环和任务调度。
groupsock: 网络层,处理组播和单播的socket通信。
BasicUsageEnvironment: 提供基本的环境支持,是UsageEnvironment的一个简单实现。
https://blog.csdn.net/C1033177205/article/details/104331224
事件循环主要处理三类事件:Socket 事件、触发器事件和定时任务。
SDP12345678SDP(Session Description Protocol,会议描述协议)是一个用于描述多媒体通信会话的协议。SDP主要用于协商和定义参与会话的各方在通信时需要的媒体格式和网络参数。它常用于多媒体通信和流媒体应用中,如视频会议、VoIP(网络电话)、实时流媒体播放等。SDP的主要功能包括:会话描述:定义会话的基本属性,如会话的名称、时间、地点等。媒体信息:描述会话中传输的多媒体流的信息,包括媒体类型(音频、视频等)、编码格式、传输地址和端口等。会话参数协商:在会话 ...
HomeAssistant
未读HS 组件结构
Event Bus: facilitates the firing and listening of events – the beating heart of Home Assistant.
State Machine: keeps track of the states of things and fires a state_changed event when a state has been changed.
Service Registry: listens on the event bus for call_service events and allows other code to register services.
Timer: sends a time_changed event every 1 second on the event bus.
home assistant javascript card1234567891011type: custom:button-cardentity: input_boolean.kai_guanshow ...
Home Assistant
未读Home Assistant 集成 Frigate 功能展示vmware 虚拟 + HAOS
连接ssh 安装 HACS
1wget -O - https://get.hacs.xyz | bash -
配置 -> 设备与服务 中,点击右下角的 “添加集成”,弹窗窗口输入 “HACS”
HACS 连接github
安装MQTT 创建MQTT 用户 (安全性:只从本地网络登录) 配置MQTT并测试
添加frigate 插件 更新仓库网址 添加frigate仓库 下载存储库
重启设备 在设备与服务里添加 frigate集成 输入frigate 安全链接
(1)视频片段记录:基于运动或对象检测的视频片段记录和存储。 Frigate 可以记录摄像头捕获的视频片段,这些片段可以在 Home Assistant 中进行查看和管理。记录功能包括连续记录和基于事件的记录。从 Frigate 0.12 开始,如果剩余存储空间少于一小时,则会删除最早的 2 小时录音。
(2)视频和截图管理:在 Home Assistant 中查看和管理记录的视频片段和检测到的截图。Friga ...
81830746888232686cfb15d22a6f4a2abca85b9c4796bc96b111f487476e5be0897ee16a69e9a82e3168758a923e2f4f79a148900d22ababcca345eee8046f8902c70542397f33e4b39c760d8725e123f70eccc712de6dfa032ede10b5eddb3630596fb9d428ef9109ee8d20dd57411d7ffd5302dba9b099af90c9f25f1c125d602fa6d8a0cfddcd7f622c6d6787eb8ae8e6ff5ddad27508dfb80a84d7a4354fc2c32f8e760560b2bc01d0153e2dfbbf5b9401dbc8d9dd22a7566fe9cbc7d5e094179d044ef11e2878c36d7953d2cf7f8b36d5ae7bab4f8f1096b2048a25bd0a4b468ef6625c8587c76045d2cfd13c1ffe2b51151842217ac ...
81830746888232686cfb15d22a6f4a2abca85b9c4796bc96b111f487476e5be0308e77f562c798d0549b42cc53c27e17a1d00d8de7093ca2dcbd45fe4f724baaa58145bc55f4de30fc76cba4475fb9101b903239f4e4cdcd63a79c627df9a4699463bca2276414998b4a2b9c5c28b3b08fc8b071b4fbd6fca11456d50f75075d7c77d779dcfff87824d16ca01e599dd7d437573c1ab71f650248195c87089a4a8139a251689239df155d75a1b22b2c3c14736c5151511451c5bc17b5859db5053f7e9e1eb5e90bebe0d67ea72abccae7109188f990d1d1de58c7c91d9c770dc3c07a17913ff065ab2766203dafe13f91f25e4b96eb12cb958 ...