论rtp协议的重要性

news2024/9/22 7:21:31

rtp ps流工具

rtp 协议,实时传输协议,为什么这么重要,可以这么说,几乎所有的标准协议都是国外创造的,感叹一下,例如rtsp协议,sip协议,webrtc,都是以rtp协议为基础,哪怕是我国的gb28181,都是建立在sip和rtp基础之上。

实时传输协议以udp为基础(可以是tcp),创造了最快的传输方法,以不分帧为理由,每个包不超过64k(tcp单包的最大长度),为什么是64k,因为ip协议是用2个字节来表示包长度的,而每个包再次限制于1500字节MTU,也就是最大传输单元,避免分帧,不用交换机重新组帧,这样速度是较快的。

对于tcp来说,是流式协议,不作他讲。无论是tcp还是udp都是可行的做法,rtp over tcp 和 rtp over udp 都可以放入rtsp 或者 sip 协议中,其中另外一个指明交换的文本协议叫做sdp协议,中文名为会话描述协议,可以直接rtp传输吗,可以,但是关键帧之前一定要有sps,pps,h265 之前再加个vps,因为一般来说,sps,pps这种信息会放到sdp中,没有了sdp的加持,那么我们的接收程序必须要约定一些内容。

工具的程序在这里
https://gitee.com/guanzhi0319/rtp

在这里插入图片描述

DSCapture::~DSCapture()
{
    Destroy();
}

void DSCapture::Destroy()
{
    audio_encoder_thread_->Stop();
    video_encoder_thread_->Stop();
    SAFE_DELETE( ds_video_graph_ );
    SAFE_DELETE( ds_audio_graph_ );
    SAFE_DELETE( ds_video_cap_device_ );
    SAFE_DELETE( ds_audio_cap_device_ );

    SAFE_DELETE( audio_encoder_thread_ );
    SAFE_DELETE( video_encoder_thread_ );
}

准备着手继续rtp协议,先解决了关闭的bug,没有关闭线程,关闭线程就好,调整了一下界面,准备好好写一下吧,请给个鼓励。

一直以来没有好好继续自己的开源工具,今天忽然觉得,无论是在工作中,还是在网络中,对底层的知识还是缺乏的,更多是应为许许多多的工具和开源,使得大家不愿意去掌握更深层次的东西,我说更深层次,未必是有多深,可能只是往下走一步,先不要深究,我对中国的软件一直抱有愿望,有点叹息,看到photoshop,autocad,3dmax, solidworks,bim的各种软件, 犀牛,或者是一个go语言,大学使用的matlab,web里面的cesium,threejs, 音视频的各种工具,gstreamer,ffmpeg,而国人能拿得出手的设计工具确实很少,我们的大厂大多朝着商业行为而走,做手机,做电动车,做游戏,而底层建筑树立的还是比较少的,不可否认朝着盈利没有问题,但终究我们国内的软件创造氛围依然不是很好,大家都说我们的AI还是不错,如果没有国外的pytorch,tensorflow,我们的底层逻辑显然就没有依据了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1398371.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++中的static(静态)

2014年1月19日 内容整理自The Cherno:C系列 2014年1月20日 内容整理自《程序设计教程:用C语言编程 第三版》 陈家骏 郑滔 -----------------------------------------------------------------------------------------------------------------------------…

【RT-DETR有效改进】利用MobileNetV3替换Backbone(轻量化网络结构,提点)

前言 大家好,这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进,内容持续更新,每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本,同时修改内容也支持ResNet32、ResNet101和PP…

TEE2024大湾区进出口贸易博览会

TEE2024大湾区进出口贸易博览会 INTE 2024RNATIONAL TRADE E-COMMERCE EXPO 时间:2024年08月11--13日 地点:深圳福田会展中心 联合主办: 深圳市电子商务协会 深圳市跨境电子商务行业发展促进会 广东进出口商会 广东省国牌出海电子商务…

根据IP查找城市 - 华为OD统一考试

OD统一考试 题解: Java / Python / C 题目描述 某业务需要根据终端的IP地址获取该终端归属的城市,可以根据公开的IP地址池信息查询归属城市。 地址池格式如下: 城市名起始IP,结束IP 起始和结束地址按照英文逗号分隔&#xff0…

链表回文结构

链表回文结构 编写一个函数,检查输入的链表是否是回文的。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 链表的回文结构,应该先找到中间节…

yum配置文件及NFS共享

一 yum配置文件及命令 1 /etc/yum.conf //主配置文件 2 /etc/yum.repos.d/*.repo //yum仓库文件位置 写错一个字母就不行,可以ping www.google.com 测试网络 3 /var/log/yum.log //日志文件 二 yum命令 1 [rootlocalhost ~…

Python项目——计算器(PySide6+Pyinstaller)

1、介绍 使用python编写一个计算器,可以实现基本的运算。【注】该项目最终还有一些细小的bug没有完善,例如符号可以一直输入。 2、实现 使用pyCharm创建一个新的项目。 2.1、设计UI 使用Qt designer设计一个UI界面,保存ui文件&#xff0…

electron-vite中的ipc通信

1. 概述 再electron中,进程间的通信通过ipcMain和ipcRenderer模块,这些通道是任意和双向的 1.1. 什么是上下文隔离进程 ipc通道是通过预加载脚本绑定到window对象的electron对象属性上的 2. 通信方式 2.1. ipcMain(也就是渲染进程向主进…

福昕软件的使用

快捷操作 快捷键 快捷键功能备注Ctrl P打印 Ctrl W关闭 Ctrl B书签 鼠标放菜单栏,单击右键即可导入/导出 自定义菜单栏文件-->偏好设置-->文档 1、多实例:单击PDF后均重新打开一个新界面。

数字图像处理期末速成笔记

目录 一、基础知识二、相邻像素间基本关系三、图像增强方法1、直方图求解2、直方图均衡化3、直方图规定化4、图像平滑5、邻域平均法(线性)6、 中值滤波法(分线性)7、中值滤波与领域平均的异同8、4-邻域平滑法9、超限像素平滑法10、…

C++ BuilderXE关于FDQuery组件记录限制设定

这样修改就可以查询返回所有记录。 TFDQuery.RecordCount,或TDateSet.RecordCount只显示了可见的50条数据,但实际上数据的总量超过了这个数量。为了解决这个问题,我们可以通过更改TFDConection.FetchOptions.RecordCountMode属性为fmTotal,以…

多维时序 | Matlab实现CNN-BiLSTM-Mutilhead-Attention卷积双向长短期记忆神经网络融合多头注意力机制多变量时间序列预测

多维时序 | Matlab实现CNN-BiLSTM-Mutilhead-Attention卷积双向长短期记忆神经网络融合多头注意力机制多变量时间序列预测 目录 多维时序 | Matlab实现CNN-BiLSTM-Mutilhead-Attention卷积双向长短期记忆神经网络融合多头注意力机制多变量时间序列预测效果一览基本介绍程序设计…

Elasticsearch 入门向使用

文章目录 ElasticSearch简介倒排索引安装(单节点)分词器kibana与Mysql概念上的对比索引库CRUD文档CRUDDSL查询相关性算分Function Score Query自定义算分Boolean Query 搜索结果处理排序分页高亮 数据聚合 aggregations自动补全数据同步集群 ElasticSearch 简介 Elasticsearc…

java SSM园林绿化管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM园林绿化管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代 码和数据库,系统主要采…

【论文阅读】GPT4Graph: Can Large Language Models Understand Graph Structured Data?

文章目录 0、基本介绍1、研究动机2、准备2.1、图挖掘任务2.2、图描述语言(GDL) 3、使用LLM进行图理解流程3.1、手动提示3.2、自提示 4、图理解基准4.1、结构理解任务4.1、语义理解任务 5、数据搜集5.1、结构理解任务5.2、语义理解任务 6、实验6.1、实验设…

Spark面试题

1. spark core 1.简述hadoop 和 spark的不同点(为什么spark更快)♥♥♥ shuffle都是需要落盘的,因为在宽依赖中需要将上一个阶段的所有分区数据都准备好,才能进入下一个阶段,那么如果一直将数据放在内存中&#xff0c…

ARM多核调度器DSU

1. 背景 从A75开始,ARM提出了一个新的多核心管理系统单元,叫做DSU(DynamIQ Shared Unit)。DSU的核心功能是控制CPU内核,使其成簇Cluster使用,簇内每一个核心可以单独开关、调整频率/电压,能效表现更佳,甚至…

手动正则删除console.log

依赖删除的可以先出去了 先得删除箭头函数里的 正则匹配不能直接删,如这种箭头函数,得先全局改了 然后正则 console.log(.*?) 选中》空着〉全局替换 最后删除 // 因为有的 console.log在代码块原来就是被空着状态, 所以也得全局为空替…

正则表达式..

1.字符串的合法检验 现在有一个字符串验证码 我们需要检验其的合法性 什么条件才能够使得字符串合法呢?就是6-10个字符串长度 并且以字母开头 并且其中由字母、数字、下划线构成 那么我们可以先通过自定义的方式进行检验 public class Main {public static void m…

通过Konva.js实现canvas列表滚动

列表可以通过Konva.js中的Rect来实现,通过group可以丰富列表的内容 在滚动方面,可以通过vue的scroll方法,通过rect中的move方法来修改y值即可 我这里设置的是一个透明的盒子在想要滚动的canvas上,这样就可以实现直接滚动canvas列…