数据处理
文章平均质量分 70
土豆西瓜大芝麻
这个作者很懒,什么都没留下…
展开
-
多生产者单消费者模式的C++实现
多生产者-单消费者模型中可以允许多个生产者同时向产品库中放入产品。所以除了保护产品库在多个读写线程下互斥之外,还需要维护生产者放入产品的计数器。实际需求是地面站需要监控飞机上多个数据源插件的状态以及产生的数据量。地面站和飞机之间要通过链路进行周期性通信,只需要把相关状态按照协议预留字段填充到链路报文中,在地面站解析并显示即可。相关状态要在与地面站通信的进程或者线程中收集起来才能按照协议填充。这里,每个数据源的状态需要统计ID、当前工作状态、已落盘数据量。多个数据源相当于多个生产者,而汇总这多个状态的相当于消原创 2022-06-15 11:14:05 · 1450 阅读 · 0 评论 -
UDP传输的包到底有多大
MTU:是网络的最大传输单元,通信术语:最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关。当MTU不合理时会造成如下问题1.本地MTU值大于网络MTU值时,本地传输的"数据包"过大导致网络会拆包后传输,不但产生额外的数据包,而且消耗了“拆包、组包”的时间。2.本地MTU值小于网络MTU值时,本地传输的数据包可以直接传输,但是未能完全利用网络给予的数据包传输尺寸的上限值,传输能转载 2022-06-14 16:58:26 · 4458 阅读 · 0 评论 -
代码片段---使用ffmpeg从h264文件中提取出一帧一帧数据
d盘有一个test.264文件,我们需要从这个h264文件中提取出一帧一帧的数据,所以直接采用ffmpeg来做。#include <iostream>#include <stdio.h>#include <string.h>#include <errno.h>#ifdef __cplusplusextern "C" {#endif#include <libswscale/swscale.h>#include <liba转载 2021-09-29 10:55:38 · 2252 阅读 · 0 评论 -
UDP RTP包,H264 分析
1.使用wireshark 将抓到得晚包转码为RTP1.1 如下为UDP一个包对应说明2.RTP包相关说明2.1 RTP头说明当前项目定义荷载H264的PT为98,一般情况PT=96 为H2643.H264 解析我们平时的每帧数据就是一个NAL单元,在实际的H264数据帧中,往往帧前面带有00 00 00 01 或 00 00 01分隔符,一般来说编码器编出的首帧数据为SPS与PPS,接着为I帧。原文链接:https://blog.csdn.net/qq_.转载 2021-09-28 00:35:49 · 675 阅读 · 0 评论 -
Linux 下实现RTP实时打包发送H.264视频文件
在实现H264实时RTP打包和发送之前,我们需要先熟悉H264的编码原理及语法结构,然后是熟悉RTP协议以及RTP协议传输H264数据的相关准则。下面是与此相关的几篇博客。 H264语法结构及编码原理 RTP Payload H264 Linux 下实现RTP实时打包发送H.264码流 下面是rtp.c的代码/*============================================================================...转载 2021-09-28 00:22:55 · 697 阅读 · 0 评论 -
如何发送和接收RTP封包的H264,用FFmpeg解码
这篇文章给大家介绍怎么打包H264分片到RTP包,并且实现一个播放程序演示接收RTP包和用FFmpeg解码。为了让大家更了解H264打包成RTP的细节,有必要罗嗦一下向大家介绍一些相关的基础知识,下面分三节介绍,其中前面两节是基础知识,第三节重点讲解怎么实现RTP包的发送和接收,以及怎么用FFmpeg解码显示。一、H264的组成结构H264以NALU(NALunit)为单位来支持编码数据在基于分组交换技术网络中传输的。NALU的结构是:NAL头+RBSP,实际传输中的数据流如图所示...转载 2021-09-28 00:15:54 · 3966 阅读 · 2 评论 -
jrtplib进行单播、组播、广播方式接发数据
1.单播 单播是一种“一对一”模式,在单播通信方式下,当一端发送数据报到一个指定的主机时,首先可能会引发ARP把目的IP地址映射为MAC地址,然而ARP就是基于广播模式的实现。当以太网帧到达一个主机时,以太网接口便会把自己的MAC地址与帧中的MAC地址相比较,如果相符,以太网接口便会接收该帧,并按协议栈向上递交,如果不想符,该帧将会忽略该帧。其他的以太网接口做同样的操作,最后接收该帧的只有一个主机。在此之后,然后以太网帧向上递交到IP层目的主机会核对IP分组中的目的IP与本机IP(多宿主机),符合..转载 2021-09-27 23:54:33 · 674 阅读 · 0 评论 -
jrtplib收发实例
jrtplib 的功能在它的说明文档中有介绍:For applications such as a mixer or translator using the RTPSession class will not be a good solution. Other components can be used for this purpose: a transmission component, an SSRC table,an RTCP scheduler etc. Using these,...转载 2021-09-27 23:09:55 · 366 阅读 · 0 评论 -
2021-09-27
RTP 是目前解决流媒体实时传输问题的最好办法,而JRTPLIB 是一个用C++语言实现的RTP库,包括UDP通讯,它的主页地址是:Jori's page jrtplib 源码的获取,可以在它的主页上直接下载,也可以使用git 直接克隆一份。因为它的主页是国外网站,下载速度非常慢,我这里提供一份已经下载好的最新的jrtplib源码:jrtplib-3.11.1.tar.gz 我这里介绍JRTPLIB在ubuntu系统中的编译安装以及配置 (1)下载源码 ...转载 2021-09-27 22:48:56 · 108 阅读 · 0 评论 -
linux使用jrtplib收发h264数据
之前介绍过自己直接使用RTP收发h.264数据,这样有一个麻烦就是RTP协议的各个参数需要自己一个一个位的去填充,这样不利于发送也不方便接收。jrtplib库就刚好解决了这样的麻烦,同时它还提供了很多RTCP的信息查询接口,这样为实现实时流控制提供了方便。 在本文中,将介绍h264 通过jrtplib库来实现实时的发送和接收。发送方发送,按照编码的习惯,我们习惯上是每完成一帧数据的编码就整一帧数据的发送。与此类似,在接收端,我们也是喜欢将整一帧的数据接收完整后再进行解码等处理。但是...转载 2021-09-27 17:46:38 · 976 阅读 · 0 评论 -
H264 over RTP中存在多个SPS、PPS、[SEI]、 IDR序列是否都需要
这一段从三光吊舱接收数据时,因为对方外协了一个转换盒子,将同步422出来的h264编码的数据转成了RTP进行发送。我们能拿到的就是这个RTP数据。使用wireshark抓了一堆包,然后使用rtp_h264_extractor插件将里面的h264码流dump出来了,并使用ffplay进行播放,没问题。但是我前面使用libjrtplib3监听了转换盒子发送出来的rtp数据流。然后使用getPayloadData()将所有的h264负载保存了下来。但是播放不了。对比了一下发现。...原创 2021-09-27 16:54:36 · 1886 阅读 · 0 评论 -
RTP打包H264的Nalu包解析
1. 预备 视频: 由一副副连续的图像构成,由于数据量比较大,因此为了节省带宽以及存储,就需要进行必要的压缩与解压缩,也就是编解码。 h264裸码流: 对一个图像或者一个视频序列进行压缩,即产生码流,采用H264编码后形成的码流就是h264裸码流。 码流传输: 发送端将H264裸码流打包后进行网络传输,接收端接收后进行组包还原裸码流,然后可以再进行存储,转发,或者播放等等相关的处理...转载 2021-09-27 15:50:24 · 1508 阅读 · 0 评论 -
rtp载荷H264解包过程分析,ffmpeg解码qt展示
网络抽象层单元 (NALU) NALU头NALU 头由1个byte组成, 它的语法如下:+---------------+|0|1|2|3|4|5|6|7|+-+-+-+-+-+-+-+-+|F|NRI| Type |+---------------+F : 1 个比特. forbidden_zero_bit. 在 H.264 规范中规定了这一位必须为 0. NRI: 2 个比特. nal_ref_idc. 取 00 ~ 11, 似乎指示这个 NALU 的重要性...原创 2021-09-26 11:55:02 · 1790 阅读 · 2 评论 -
h264 NALU的获取与分析
1、如何从H264数据流中获取NALU0x00000001或0x000001是一个nalu的起始标志,遇到下一个此标志时为该nalu的结尾。起始标志的后面第一个字节(type)里包含有nalu的类型,type & 0x1F即为该nalu的类型(nal_unit_type),具体类型分析详见下节。2、H264帧分类一、PPS与SPSnal_unit_type=7时,nalu为SPS;nal_unit_type=8时,nalu为PPS。SPS(Sequence ParameterS.转载 2021-09-26 10:10:56 · 348 阅读 · 0 评论 -
使用wireshark提取rtp视频流中的h264裸流
一、工具准备1.wiresharkWireshark · Download2.h264extractorhttps://github.com/volvet/h264extractor二、操作步骤1.下载h264extractor放置于wireshark根目录2.修改wireshark根目录下的init.lua文件,在末尾增加一行dofile(DATA_DIR.."rtp_h264_extractor.lua")3.打开抓取的报文4.跟踪视频流选择RTP报文右键-追踪流..转载 2021-09-25 11:51:05 · 5205 阅读 · 1 评论 -
422接收数据00_串口通信232/485/422 详细解析
1. 什么是串口通信?常见的串口通信一般是指异步串行通信。这里就要说一下同步和异步的区别了。(1)先讲一下串行通信的概念。那么,与串行通信相对的是什么呢?与串行通信相对的是并行通信。并行数据传输一般都是以字节传输的,一个字节8个位。拿一个并行通信举例来说,也就是会有8根线,每一根线代表一个位。一次并行数据传输就可以传一个字节byte。而串口通信,就是传数据只有一根线传输,一次只能传一个位,要传一个字节就需要传8次。...转载 2021-08-21 17:02:23 · 7249 阅读 · 2 评论