RTP数据包排序方法、装置、电子设备及存储介质制造方法及图纸

技术编号:31748753 阅读:12 留言:0更新日期:2022-01-05 16:29
本发明专利技术涉及视频传输技术,揭露一种RTP数据包排序方法,包括:利用从队首到队尾按RTP数据包序列号升序排列且首尾相连的多个结构体,获取对应RTP数据包序列号最小的结构体中的RTP数据包并发送给预设的播放器,将对应的结构体作为可用结构体,利用所述可用结构体存储接收到的新RTP数据包,始终保持从队首到队尾按RTP数据包序列号升序的且首尾相连的结构体队列顺序,且持续从所述多个结构体中获取序列号最小的RTP数据包并发送给预设的播放器,将对应的结构体作为可用结构体,利用所述可用结构体存储接收到的新RTP数据包。本发明专利技术还提出一种RTP数据包排序装置、设备以及介质。本发明专利技术可以解决RTP数据包在网络传输中出现乱序的问题,提升问题解决效率。提升问题解决效率。提升问题解决效率。

【技术实现步骤摘要】
RTP数据包排序方法、装置、电子设备及存储介质


[0001]本专利技术涉及视频传输
,尤其涉及一种RTP数据包排序方法、装置、电子设备及计算机可读存储介质。

技术介绍

[0002]当今视频传输技术广泛应用于人们的日常工作和生活之中,例如,影视视频传输、会议视频传输、短视频直播等。为满足视频数据的传输要求,通常原始视频数据在发送端会被分解成多个视频帧,每个视频帧又被拆分为多个RTP数据包,再利用UDP(User Datagram Protocol,用户数据报协议)协议将所述RTP数据包传输到接收端或视频播放端。
[0003]RTP数据包在网络传输过程中,当网络发生抖动时,可能会出现后产生的RTP数据包相较于先产生的RTP数据包较早到达接收端或视频播放端,而先产生的RTP数据包较晚才到达接收端或视频播放端,即产生先包后到,后包先到的RTP数据包乱序的情况,导致在接收端或播放端出现视频数据混乱的问题。
[0004]当前解决RTP数据包在传输中出现乱序的问题,通常是先对多个RTP数据包进行同一视频帧的归类,然后再根据RTP数据包的时间戳、序列号、帧类型等信息对同一视频帧内的RTP数据包进行排序,这种方法RTP数据包排序与视频帧组装结合在一起,存在大量的计算工作,系统开销大,同时代码开发工作量大,因此现有技术有待提升。

技术实现思路

[0005]本专利技术提供一种RTP数据包排序方法、装置及计算机可读存储介质,其主要目的在于提升文本打标签的准确性。
[0006]为实现上述目的,本专利技术提供的一种RTP数据包排序方法,包括:
[0007]步骤A:预先接收多个RTP数据包,将每个所述RTP数据包缓存到不同的预设的结构体中,其中每个所述预设的结构体包括前节点指针、后节点指针及其缓存的RTP数据包的序列号;
[0008]步骤B:利用每个所述预设的结构体中的前节点指针、后节点指针及其缓存的RTP数据包的序列号,对所有结构体执行从队首到队尾按RTP数据包序列号升序且首尾相连的排序操作;
[0009]步骤C:获取RTP数据包的序列号最小的结构体中的RTP数据包并发送给预设的播放器,将所述RTP数据包的序列号最小的结构体作为可用结构体;
[0010]步骤D:将所述可用结构体的后节点指针对应的结构体中的RTP数据包的序列号作为最小序列号,将所述可用结构体的前节点指针对应的结构体中的RTP数据包的序列号作为最大序列号;
[0011]步骤E:接收一个新RTP数据包,将所述新RTP数据包缓存到所述可用结构体中,识别所述新RTP数据包的序列号,将所述序列号作为所述新RTP数据包的原始序列号,利用预设的防序列号重复循环的公式,对所述原始序列号进行转换,得到转换后的序列号,利用所
述转换后的序列号替换所述原始序列号;
[0012]当所述新RTP数据包的序列号小于所述最小序列号时,则执行步骤F:将所述新RTP数据包发送给所述预设的播放器,返回步骤E;
[0013]当所述新RTP数据包的序列号大于所述最大序列号时,则执行步骤G:获取所述可用结构体的后节点指针对应的结构体中RTP数据包并发送给所述预设的播放器,将所述可用结构体的后节点指针对应的结构体作为可用结构体,返回步骤D;
[0014]当所述新RTP数据包的序列号小于所述最大序列号,则返回步骤B。
[0015]可选地,所述利用每个所述预设的结构体中的前节点指针、后节点指针及其缓存的RTP数据包的序列号,对所有结构体执行从队首到队尾按RTP数据包序列号升序且首尾相连的排序操作,包括:
[0016]根据每个所述结构体中的RTP数据包的序列号由小到大的顺序,对所有结构体进行排序;
[0017]在所述排序中,将RTP数据包的序列号最小的结构体的前节点指针指向RTP数据包的序列号最大的结构体;
[0018]将所述RTP数据包的序列号最大的结构体的后节点指针指向所述RTP数据包的序列号最小的结构体;
[0019]将其他每个结构体的前节点指针指向每个所述结构体的前一个结构体、每个结构体的后节点指针指向每个所述结构体的后一个结构体。
[0020]可选地,所述预设的防序列号重复循环的公式为:
[0021]Nnum=Onum+K
×
B
[0022]其中所述Nnum为RTP数据包的转换后的序列号,所述Onum为对应RTP数据包的原始序列号,K为RTP数据包序列号循环的次数,所述K的初始值为0,所述B为RTP数据包序列号在单次循环中的序列号个数。
[0023]为了解决上述问题,本专利技术还提供一种RTP数据包排序装置,所述装置包括:
[0024]数据包缓存模块,用于步骤A:预先接收多个RTP数据包,将每个所述RTP数据包缓存到不同的预设的结构体中,其中每个所述预设的结构体包括前节点指针、后节点指针及其缓存的RTP数据包的序列号;
[0025]数据包排序模块,用于步骤B:利用每个所述预设的结构体中的前节点指针、后节点指针及其缓存的RTP数据包的序列号,对所有结构体执行从队首到队尾按RTP数据包序列号升序且首尾相连的排序操作;
[0026]最小序列号数据包识别模块,用于步骤C:获取RTP数据包的序列号最小的结构体中的RTP数据包并发送给预设的播放器,将所述RTP数据包的序列号最小的结构体作为可用结构体;步骤D:获取RTP数据包的序列号最小的结构体中的RTP数据包并发送给预设的播放器,将所述RTP数据包的序列号最小的结构体作为可用结构体;
[0027]新数据包序列号转换模块,用于步骤E:接收一个新RTP数据包,将所述新RTP数据包缓存到所述可用结构体中,识别所述新RTP数据包的序列号,将所述序列号作为所述新RTP数据包的原始序列号,利用预设的防序列号重复循环的公式,对所述原始序列号进行转换,得到转换后的序列号,利用所述转换后的序列号替换所述原始序列号;
[0028]新数据包比较模块,用于当所述新RTP数据包的序列号小于所述最小序列号时,则
执行步骤F:将所述新RTP数据包发送给所述预设的播放器,返回步骤E;当所述新RTP数据包的序列号大于所述最大序列号时,则执行步骤G:获取所述可用结构体的后节点指针对应的结构体中RTP数据包并发送给所述预设的播放器,将所述可用结构体的后节点指针对应的结构体作为可用结构体,返回步骤D;当所述新RTP数据包的序列号小于所述最大序列号,则返回步骤B。
[0029]为了解决上述问题,本专利技术还提供一种电子设备,所述电子设备包括:
[0030]存储器,存储计算机程序;及
[0031]处理器,执行所述存储器中存储的计算机程序以实现上述所述的RTP数据包排序方法。
[0032]为了解决上述问题,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被电子设备中的处理器执行以实现上述所述的RTP数据包排序方法。
[0033]本专利技术申请利用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种RTP数据包排序方法,其特征在于,所述方法包括:步骤A:预先接收多个RTP数据包,将每个所述RTP数据包缓存到不同的预设的结构体中,其中每个所述预设的结构体包括前节点指针、后节点指针及其缓存的RTP数据包的序列号;步骤B:利用每个所述预设的结构体中的前节点指针、后节点指针及其缓存的RTP数据包的序列号,对所有结构体执行从队首到队尾按RTP数据包序列号升序且首尾相连的排序操作;步骤C:获取RTP数据包的序列号最小的结构体中的RTP数据包并发送给预设的播放器,将所述RTP数据包的序列号最小的结构体作为可用结构体;步骤D:将所述可用结构体的后节点指针对应的结构体中的RTP数据包的序列号作为最小序列号,将所述可用结构体的前节点指针对应的结构体中的RTP数据包的序列号作为最大序列号;步骤E:接收一个新RTP数据包,将所述新RTP数据包缓存到所述可用结构体中,识别所述新RTP数据包的序列号,将所述序列号作为所述新RTP数据包的原始序列号,利用预设的防序列号重复循环的公式,对所述原始序列号进行转换,得到转换后的序列号,利用所述转换后的序列号替换所述原始序列号;当所述新RTP数据包的序列号小于所述最小序列号时,则执行步骤F:将所述新RTP数据包发送给所述预设的播放器,返回步骤E;当所述新RTP数据包的序列号大于所述最大序列号时,则执行步骤G:获取所述可用结构体的后节点指针对应的结构体中RTP数据包并发送给所述预设的播放器,将所述可用结构体的后节点指针对应的结构体作为可用结构体,返回步骤D;当所述新RTP数据包的序列号小于所述最大序列号,则返回步骤B。2.如权利要求1所述的RTP数据包排序方法,其特征在于,所述利用每个所述预设的结构体中的前节点指针、后节点指针及其缓存的RTP数据包的序列号,对所有结构体执行从队首到队尾按RTP数据包序列号升序且首尾相连的排序操作,包括:根据每个所述结构体中的RTP数据包的序列号由小到大的顺序,对所有结构体进行排序;在所述排序中,将RTP数据包的序列号最小的结构体的前节点指针指向RTP数据包的序列号最大的结构体;将所述RTP数据包的序列号最大的结构体的后节点指针指向所述RTP数据包的序列号最小的结构体;将其他每个结构体的前节点指针指向每个所述结构体的前一个结构体、每个结构体的后节点指针指向每个所述结构体的后一个结构体。3.如权利要求1所述的RTP数据包排序方法,其特征在于,所述预设的防序列号重复循环的公式为:Nnum=Onum+K
×
...

【专利技术属性】
技术研发人员:潘雨诗
申请(专利权)人:兰州乐智教育科技有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利