CN104244109B - 一种媒体流可靠传输和接收的方法和装置 - Google Patents

一种媒体流可靠传输和接收的方法和装置 Download PDF

Info

Publication number
CN104244109B
CN104244109B CN201410483645.5A CN201410483645A CN104244109B CN 104244109 B CN104244109 B CN 104244109B CN 201410483645 A CN201410483645 A CN 201410483645A CN 104244109 B CN104244109 B CN 104244109B
Authority
CN
China
Prior art keywords
packet
media stream
sequence
bag
stream data
Prior art date
Application number
CN201410483645.5A
Other languages
English (en)
Other versions
CN104244109A (zh
Inventor
张磊
孙令亮
Original Assignee
浙江宇视科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 浙江宇视科技有限公司 filed Critical 浙江宇视科技有限公司
Priority to CN201410483645.5A priority Critical patent/CN104244109B/zh
Publication of CN104244109A publication Critical patent/CN104244109A/zh
Application granted granted Critical
Publication of CN104244109B publication Critical patent/CN104244109B/zh

Links

Abstract

本发明提供一种媒体流可靠传输和接收的方法。编码设备根据预定的策略选取需要进行标注的媒体流数据;对选取的媒体流数据添加至少包括标注序号的标注信息;发送媒体流数据包,将添加有标注信息的媒体流数据包在所述缓存空间中进行备份。解码设备确定存在丢包且未丢数据包的标注序号不连续时请求重传。编码设备接收解码设备发送的重传请求后,判断所述缓存空间中是否存在待重传的媒体流数据,如果存在,则对该媒体流数据进行重传。本发明方案避免非重要数据重传增加带宽和时延的情况,快速有效的实现了UDP可靠传输。

Description

一种媒体流可靠传输和接收的方法和装置

技术领域

[0001] 本发明涉及媒体流数据传输领域,尤其涉及一种媒体流可靠传输的方法和对应的 装置。

背景技术

[0002] 在多媒体通信技术领域,特别是视频监控系统中,随着IP技术的发展与逐步完善, 媒体流使用基于IP网络的传输也越来越广泛。另一方面,在媒体流传输的时可以基于单播 来传输,也可以利用组播来传输,组播的传输方式可以减轻IP网络的流量压力。由于传输的 实时性要求,通常媒体流传输的时候都采用UDP的方式。但是UDP不论单播或者组播,对于存 在丢包的情况,通常就只能任由该情况的发生。

[0003] 在申请号为CN201310426244.1的中国专利申请中,申请人采用一种媒体流可靠传 输和接收的方案,解决了上述问题。在该申请的方案中编码设备实行媒体流数据备份机制, 解码设备实行媒体流数据缓存机制。编码设备在向解码设备发送媒体流数据时将该媒体流 数据存储在专门开辟的缓存空间中以达到将该媒体流数据进行备份的目的。当解码设备发 现媒体流数据丢失后,向编码设备发送重传请求,并且缓存后续接收到的媒体流数据;编码 设备根据自身缓存空间中备份的媒体流数据响应解码设备的重传请求。解码设备接收到重 传的媒体流数据后将其和缓存中的媒体流数据一并进行解码显示。

[0004]上述方案虽然解决UDP传输中媒体流丢包的问题,但是在一些网络条件不是很好 的情况下或者解码显示对于实时性要求比较高场合中,该方案还有进一步优化的余地。

发明内容

[0005]有鉴于此,本发明提供一种媒体流可靠传输和接收的方法和装置。

[0006]该媒体流可靠传输的方法应用于编码设备,该编码设备上开辟有用于媒体流数据 备份的缓存空间,该方法包括:根据预定的策略选取需要进行标注的媒体流数据;对选取的 媒体流数据添加标注信息,该标注信息至少包括标注序号;发送媒体流数据包,将添加有标 注信息的媒体流数据包在所述缓存空间中进行备份,未添加有标注信息的媒体流数据包则 不进行备份,所述备份的媒体流数据包包括数据包序号和/或依次连续的标注序号;接收解 码设备发送的包含有丢失数据包序号或者丢失数据包标注序号的重传请求,根据丢失数据 包序号或者丢失数据包标注序号判断所述缓存空间中是否存在待重传的媒体流数据,如果 存在,则对该媒体流数据进行重传,否则忽略该重传请求。

[0007]优选地,根据预定的策略选取需要进行标注的媒体流数据包具体为:当媒体流数 据存在告警的情况时,则所述媒体流数据需要被选取进行标注;或者,当用户配置对当前的 媒体流数据进行标注时,则所述媒体流数据需要被选取进行标注。

[0008]该媒体流可靠接收方法应用于解码设备,包括:接收媒体流数据包;判断媒体流数 据包是否存在丢包情况,如果存在丢包,则判断未丢失的媒体流数据包的标注序号是否连 续,如果连续,则不请求重传,如果不连续,则向编码设备发送重传请求,该重传请求中包括 丢失媒体流数据包的序号或者丢失媒体流数据包的标注序号。

[0009] 优选地,判断未丢失的媒体流数据包的标注序号是否连续具体为:

[0010] 依次获取按照媒体流数据包序号排序后的数据包,进行标注序号是否连续的判 断,具体为:

[0011] 若当前获取的媒体流数据包P存在标注序号,则判断该标注序号是否和当前记录 的标注序号连续,如果连续,则将当前记录的标注序号更新为所述当前获取的数据包P的标 注序号,将下一个数据包作为当前数据包执行新一轮判断;如果不连续,则确定丢失数据包 的序号或者丢失数据包的标注序号,并将当前记录的标注序号更新为所述当前获取的数据 包P的标注序号,将下一个数据包作为当前数据包执行新一轮判断;

[0012] 若当前获取的数据包P不存在标注序号,则获取下一个数据包作为当前的数据包 执行新一轮判断。

[0013] 优选地,若当前获取的数据包P不存在标注序号,则在获取下一数据包作为当前的 数据包执行新一轮判断前,根据上一个数据包的标注序号以及,当前获取的数据包序号与 上一个数据包序号不连续的间隔值大小判断是否记录不连续数据包的序号,以作为后续重 传请求携带的数据包序号。

[0014] 优选地,所述根据上一个数据包的标注序号以及,当前获取的数据包序号与上一 个数据包序号不连续的间隔值大小判断是否记录不连续数据包的序号具体为:

[0015] 若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连 续的间隔值大于阈值,则记录不连续数据包的序号;

[0016] 若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连 续的间隔值不大于阈值,则不记录不连续数据包的序号;

[0017] 若上一个数据包有标注序号,则记录不连续数据包的序号。

[0018] 该媒体流可靠传输装置应用于编码设备,该编码设备上开辟有用于媒体流数据备 份的缓存空间,该装置包括:媒体流标注模块,用于根据预定的策略选取需要进行标注的媒 体流数据;对选取的媒体流数据添加标注信息,该标注信息至少包括标注序号;所述预定的 策略由标注策略下发模块下发;媒体流备份模块,用于将添加有标注信息的媒体流数据包 在所述缓存空间中进行备份,未添加有标注信息的媒体流数据包则不进行备份,所述备份 的媒体流数据包包括数据包序号和/或依次连续的标注序号;媒体流发送模块,用于发送媒 体流数据包;媒体流重传请求接收模块,用于接收解码设备发送的包含有丢失数据包序号 或者丢失数据包标注序号的重传请求;媒体流备份模块,进一步用于根据丢失数据包序号 或者丢失数据包标注序号判断所述缓存空间中是否存在待重传的媒体流数据,如果存在, 则由媒体流发送模块对该媒体流数据进行重传,否则媒体流备份模块忽略该重传请求。

[0019] 优选地,所述标注策略下发模块为告警处理模块,该告警处理模块在编码设备自 身给出告警或者服务器给出告警后,下发指令给媒体流标注模块,通知其选取对应媒体流 数据进行标注;或者,所述标注策略下发模块为配置模块,该配置模块用于下发媒体流标注 的配置信息给媒体流标注模块。

[0020] 该媒体流可靠接收装置应用于解码设备,包括:丢包检测模块,用于判断接收的媒 体流数据包是否存在丢包;标注序号连续性判断模块,用于在丢包检测模块判断丢包的情 况下,判断未丢失的数据包的标注序号是否连续;丢包重传模块,用于在未丢失的数据包的 标注序号不连续时,向编码设备发送重传请求,该重传请求中包括丢失数据包的序号或者 丢失数据包的标注序号。

[0021] 标注序号连续性判断模块在执行未丢失数据包连续性判断的时候,具体执行:依 次获取按照媒体流数据包序号排序后的数据包,进行标注序号是否连续的判断:

[0022] 若当前获取的数据包P存在标注序号,则判断该标注序号是否和当前记录的标注 序号连续,如果连续,则将当前记录的标注序号更新为所述当前获取的数据包P的标注序 号,将下一个数据包作为当前数据包执行新一轮判断;如果不连续,则确定丢失数据包的序 号或者丢失数据包的标注序号,并将当前记录的标注序号更新为所述当前获取的数据包P 的标注序号,将下一个数据包作为当前数据包执行新一轮判断;若当前获取的数据包P不存 在标注序号,则获取下一个数据包作为当前的数据包执行新一轮判断。

[0023] 标注序号连续性判断模块,还执行:若当前获取的数据包P不存在标注序号,则在 获取下一数据包作为当前的数据包执行新一轮判断前,根据上一个数据包的标注序号以 及,当前获取的数据包序号与上一个数据包序号不连续的间隔值大小判断是否记录不连续 数据包的序号,以作为后续重传请求携带的数据包序号。

[0024] 标注序号连续性判断模块根据上一个数据包的标注序号以及,当前获取的数据包 序号与上一个数据包序号不连续的间隔值大小判断是否记录不连续数据包的序号具体为:

[0025] 若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连 续的间隔值大于阈值,则记录不连续数据包的序号;

[0026] 若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连 续的间隔值不大于阈值,则不记录不连续数据包的序号;

[0027] 若上一个数据包有标注序号,则记录不连续数据包的序号。

[0028] 相较于现有技术,本发明方案避免非重要数据重传增加带宽和时延的情况,快速 有效的实现了 UDP可靠传输。

附图说明

[0029] 图1是本发明实施例一流程图;

[0030] 图2是本发明装置一逻辑结构图;

[0031] 图3是本发明实施例二流程图;

[0032]图4是本发明实施例三流程图;

[0033] 图5是本发明装置二逻辑结构图。

具体实施方式

[0034] 本发明提供一种更优的媒体流可靠传输和接收方案。该方案在尽量保证媒体流可 靠传输和接收的前提下,避免了无关数据重传增加网络负担和延时的情况,快速有效地实 现了 UDP可靠传输。以下通过具体实施例详细说明。

[0035] 实施例一给出了一种媒体流可靠传输的方法,该方法应用于编码设备,该编码设 备上开辟有用于媒体流数据备份的缓存空间。请参图1所示的该方法的流程图。

[0036] S11、根据预定的策略选取需要进行标注的媒体流数据;对选取的媒体流数据添加 标注信息,该标注7[目息至少包括标注序号。

[0037]编码设备在发送原始媒体流数据包前,需要确定哪些媒体流数据要进行特殊的标 注。通常,要标注的媒体流数据都是一些包含重要监控内容的数据。比如说,监控相机拍摄 到有人或物闯入禁区,车辆闯红灯等的视频数据,这些视频数据在封装成媒体流数据包时 还需要进一步进行特别的标注。

[0038]在具体实现的时候,可以和当前的告警信息结合起来。比如说,对于视频,当存在 开关量输入告警、运动检测告警、人脸/车辆检测告警、以及管理编码设备的服务器(如网络 硬盘录像机NVR或视频管理服务器VM)由电子围栏、门禁、其他摄像机追踪联动至本设备的 告警时,可以将对应的视频数据进行标注,即这些视频数据的媒体流数据包中将携带标注 信息。如果编码设备自身具备智能分析模块进行如运动检测告警、人脸/车辆检测告警等, 则可以由编码设备直接根据这些告警进行对应媒体流数据的标注;如果编码设备自身不具 备智能分析能力,则可以由外部的设备输出告警给编码设备,从而使得编码设备进行对应 媒体流数据的标注。这些具体的告警信息通常是实时得到的。

[0039]有些监控数据,除了视频数据外还包括音频数据,当对音频数据识别出关键语音 信息,如“取钱”“钱”“十” 百“元”“角”“分”等的时候,也可以将对应的媒体流数据选取出 来添加标注信息。

[0040] 在选取待标注的媒体流数据时,还可以和用户的配置结合起来。比如用户手动配 置某一段时间的媒体数据需要进行标注,则编码设备对该时间段的媒体流数据包都添加标 注信息;又比如,用户配置对计划时间段的媒体流数据进行标注,比如对每天晚上9点-第二 天凌晨5点的媒体流数据进行标注,则编码设备对每天该段时间的媒体流数据包添加标注 f目息。

[0041] 上述和告警信息结合、和配置信息结合选取待标注媒体流数据的方式都属于按照 预定策略进行选取的方式;当然这里和告警信息结合、和配置信息结合只是举例两个例子, 本发明并不排除其他的方式。

[0042] 对于标注信息,至少包括标注序号,该标注序号称为媒体流数据包标注序号。

[0043] S12、发送媒体流数据包,将添加有标注信息的媒体流数据包在所述缓存空间中进 行备份,未添加有标注信息的媒体流数据包则不进行备份,所述备份的媒体流数据包包括 数据包序号和/或依次连续的标注序号。

[0044]无论标注或未标注的媒体流数据包,编码设备都进行发送。而对于备份,本实施例 仅将带有标注信息的媒体流数据包放置在缓存空间中进行备份,而未带有标注信息的媒体 流数据包则不进行备份。在对媒体流数据包依次进行标注的时候,标注序号需要连续。比如 说顺序增加:第n至n+m个媒体流数据包需要添加标注序号,则可以将第k至k+m个标注序号 分别分配给这m+1个数据包;当然顺序递减等方式也都可以。标注序号具有连续性主要是为 解码设备后续判断标注数据包是否丢失提供依据。

[0045] S13、接收解码设备发送的包含有丢失数据包序号或者丢失数据包标注序号的重 传请求,根据丢失数据包序号或者丢失数据包标注序号判断所述缓存空间中是否存在待重 传的媒体流数据,如果存在,则对该媒体流数据进行重传,否则忽略该重传请求。

[0046]解码设备将对添加有标注序号的媒体流数据包进行丢包与否的判断,当判断该类 数据包丢失时,解码设备向编码设备发送重传请求。具体的判断方法下文将详细说明。该重 传请求中可以携带媒体流数据包的序号或者可以携带媒体流数据包的标注序号。媒体流数 据包序号指现有技术中的媒体流数据包本身包含的序号,比如说,对于RTP协议传输的媒体 流,每个RTP数据包的序号即为媒体流数据包序号;媒体流数据包标注序号为本发明特有的 序号,具体请参前文说明。编码设备接收到解码设备发送的重传请求后,在自身的备份空间 中查找是否有对应序号的媒体流数据包,如果存在,就重传该对应序号的媒体流数据包,否 则就忽略该重传请求。

[0047]请参图2所示的应用于编码设备的媒体流可靠传输装置模块图,其包括标注策略 下发t吴块,媒体流标注模块,媒体流备份模块,媒体流发送模块和媒体流重传请求接收模 块。

[0048]媒体流标注模块根据预定的策略选取需要进行标注的媒体流数据;对选取的媒体 流数据添加标注信息,该标注信息至少包括标注序号,且该标注序号顺序增加;所述预定的 策略由标注策略下发模块下发。

[0049]该标注策略下发模块可以是针对告警的告警处理模块,在编码设备自身给出告警 或者服务器给出告警后,告警处理模块下发指令给媒体流标注模块,通知其选取相关媒体 流数据进行标注;该标注策略下发模块还可以是配置模块,该配置模块下发媒体流标注的 配置信息给媒体流标注模块,如前文所述的对某一段时间的媒体流数据进行标注或者每 天、每月某一个时间段的媒体流数据需要进行标注等。

[0050]媒体流备份模块将添加有标注信息的媒体流数据包在所述缓存空间中进行备份, 未添加有标注信息的媒体流数据包则不进行备份。

[0051 ]媒体流发送模块发送媒体流数据包。媒体流发送模块对媒体流数据包进行网络传 输封装,封装完成后将媒体流数据包发送给解码设备。

[0052]媒体流重传请求接收模块接收解码设备发送的包含有丢失数据包序号或者丢失 数据包标注序号的重传请求。

[0053]媒体流备份模块进一步根据丢失数据包序号或者丢失数据包标注序号判断所述 缓存空间中是否存在待重传的媒体流数据,如果存在,则由媒体流发送模块对该媒体流数 据进行重传,否则媒体流备份模块忽略该重传请求。媒体流备份模块若确定缓存空间中存 在待重传的媒体流数据包,则将该媒体流数据包交给媒体流发送模块,这些待重传的媒体 流数据包将插入当前待发送的媒体流数据包队列中,由媒体流发送模块发送出去。

[0054]以上介绍了媒体流发送端在媒体流可靠传输中对媒体流数据的处理;下文将说明 媒体流接收端在媒体流可靠接收中如何对媒体流数据包进行处理的。请参图3所示的媒体 流可靠接收方法的流程图。

[0055] S31、接收媒体流数据包;

[0056] S32、判断媒体流数据包是否存在丢包情况,如果是,转步骤S33,否则转步骤S34;

[OO57] S33、判断未丢失的数据包的标注序号是否连续,如果是,则转步骤S34,否则转步 骤 S35;

[0058] S34、按照现有方式处理;

[0059] S35、向编码设备发送重传请求,该重传请求中包括丢失数据包的序号或者丢失数 据包的标注序号。

[0060]作为媒体流接收端的解码设备接收媒体流数据包后,判断媒体流数据包是否存在 丢包。具体如何判断丢包可参CN201310426244.1的中国专利申请,或者现有技术中提供的 其他方法。

[0061] 本发明方案在丢包的情况下,并不会立即启动重传,而是需要执行进一步的判断, 即判断未丢失的数据包的标注序号是否连续。当未丢失的数据包的标注序号连续的话,则 无需请求重传。因为按照本发明的设计机理,这种情况将认为丢失的那些数据包并不很重 要,不重传不会对具体的业务带来本质的影响,且反而节省了网络的带宽,在某种程度上减 少了数据包传递的延时。

[0062] 判断未丢失数据包的标注序号是否连续可以采用如下方法:

[0063]首先保证未丢失的媒体流数据包已经按照数据包序号排序完毕,然后对这些排好 序的数据包进行标注序号是否连续的判断,具体为:

[00M]若当前获取的数据包P存在标注序号,则判断该标注序号是否和当前记录的标注 序号连续,如果连续,则将当前记录的标注序号更新为所述当前获取的数据包P的标注序 号,将下一个数据包作为当前数据包执行新一轮判断;如果不连续,则确定丢失数据包的序 号或者丢失数据包的标注序号,并将当前记录的标注序号更新为所述当前获取的数据包P 的标注序号,将下一个数据包作为当前数据包执行新一轮判断;若当前获取的数据包P不存 在标注序号,则获取下一个数据包作为当前的数据包执行新一轮判断。

[0065]举个例子:假设当前记录的标注序号Seqmarked_cur为4,按照媒体流数据包序号 排好序的缓存中的数据包分别为数据包6、数据包7、数据包8、数据包9、数据包10;这5个数 据包对应的标注序号分别为6、7、8、9、10。首先获取当前数据包6,由于该数据包的标注序号 为6,和当前记录的标注序号SeqmarkecLcur为4不连续,则确定标注序号为5的数据包丢失; 且将当前记录的标注序号Seqmarked_cu更新为6;获取下一个数据包:数据包7,执行新的一 轮判断。数据包7的标注序号为7,和当前记录的标注序号Seqmarked_cur:6连续,则且将当 前记录的标注序号Seqmarked_cu更新为6,并获取下一个数据包:数据包8,执行新一轮判 断,直到缓存中的数据包全部判断完,然后将待反馈的标注序号5或者数据包序号5携带在 重传请求中发送给编码设备。

[0066]再举个例子:假设当前记录的标注序号SeqmarkecLcur为50,按照媒体流数据包序 号排好序的缓存中的数据包分别为数据包100、数据包101、数据包102、数据包103、数据包 104、数据包105、数据包106;这7个数据包对应的标注序号分别为〇、〇、〇、〇、〇、52、53。获取当 前的数据包100,由于其标注序号为0,所以继续获取下一个数据包101;由于数据包101的标 注序号为0,所以获取下一个数据包102;同样的,对于数据包103和数据包104,其标注序号 均为〇,所以获取数据包105,由于数据包105的标注序号是52,和当前记录的标注序号 Seqmarked_cur: 50不连续,所以记录当前丢失的数据包的标注序号为51,并将Seqmarked_ cur更新为52,;获取下一个数据包1〇6,由于该数据包的标注序号为53,和当前记录的标注 序号52连续,更新当前记录的标注序号Seqmarked_cur为53。所以解码设备反馈的重传请求 中携带的丢失数据包的标注序号为51。

[0067] 请参图4解码设备接收媒体流数据包并进行重传请求的又一个实施例。

[0068] S41、对接收到的缓存中的数据包按照数据包序号进行排序; t0069] S42、按序获取缓存中的一个数据包作为当前数据包,并判断该当前数据包的序号 和上一个数据包的序号是否连续,如果连续,则未丢包,获取下一数据包开始新一轮判断, 否则转步骤S43;

[0070] S43、判断当前数据包是否有标注序号,如果有,则转步骤S44,否则转步骤S45; [0071] S44、判断当前数据包的标注序号是否和当前记录的标注序号连续,如果是,则转 步骤S46;否则转步骤S47;

[0072] S45、判断上一个数据包是否有标注序号,如果是,则转步骤S49、否则转步骤S48; [0073] S46、更新当前记录的标注序号为当前数据包的标注序号,返回步骤S42;

[0074] S47、记录丢失的数据包的标注序号,且更新当前记录的标注序号为当前数据包的 标注序号,返回步骤S42;

[0075] S48、判断当前获取的数据包序号与上一个数据包序号不连续的间隔值是否大于 阈值,如果是,则转步骤S49;否则返回步骤S42;

[0076] S49、记录不连续的数据包序号,返回步骤S42。

[0077]当缓存中所有数据包都处理完毕后,结合记录的丢失的数据包的标注序号和不连 续数据包序号确定反馈重传请求携带的标注序号或者数据包序号。

[0078]上述流程主要对当前数据包没有标注序号时的处理方式进行改进,即在当前数据 包没有标注序号时,需要结合上一个数据包是否有标注序号,以及上一个数据包和当前数 据包的序号差值来判断是否需要记录不连续的数据包序号。以下进一步通过几个具体的例 子来进行说明。

[0079] 举例一:上一个数据包的序号为200,标注序号为0;从缓存中获取的当前数据包序 号为230,标注序号为0;假设上述流程中的阈值为25;此时满足数据包序号不连续,且当前 数据包、上一个数据包均无标注序号,且当前数据包序号与上一个数据包序号不连续的间 隔值30大于阈值25,所以此时需要记录不连续的数据包序号,即数据包序号201〜229。接下 来,从缓存中获取数据包230后面的下一个数据包,比如说该下一个数据包序号为231,标注 序号为0,此时的上一个数据包即为数据包230,由于数据包231和数据包230序号连续,所以 未丢包,继续缓存中下一个数据包的处理,直到所有的数据包都处理完成。

[0080] 这里之所以这样处理,是因为若缓存中的数据包的标注序号全部都是0时,就无法 根据当前缓存中数据包的标注序号来判断是否存在具有标注序号的数据包丢失,只有等到 后续接收到有标注序号的数据包才能做出判断。这样会有编码设备缓存中备份的具有标注 信息的数据包被覆盖的风险,所以就需要先将丢失数据包序号全部先记录下来;进一步优 化,如果这些丢失的数据包的数量不是很多,就不再记录丢失数据包的序号,这样处理更简 便并且实际上对业务不会有大的影响。如果缓存中的后续数据包有标注序号,则可以直接 根据标注序号判断是否有带标注序号的数据包丢失,此时之前记录的丢失的数据包序号就 可以忽略,重传请求中可以直接携带相关标注序号。

[0081] 举例二:上一个数据包的序号为200,标注序号为121;从缓存中获取的当前数据包 序号为230,标注序号为0;假设上述流程中的阈值为25;此时满足数据包序号不连续,且当 前数据包无标注序号、上一个数据包有标注序号,所以此时需要记录不连续的数据包序号, 即数据包序号201〜229。接着处理缓存中的下一个数据包,直到缓存中所有数据包全部处 理完毕。

[0082] 这里之所以这样处理,也是因为若缓存中的数据包的标注序号全部都是〇时,则无 法根据当前缓存中数据包的标注序号来判断是否存在具有标注序号的数据包丢失,只有等 到后续接收到有标注序号的数据包才能做出判断。这样会有编码设备缓存中备份的具有标 注信息的数据包被覆盖的风险,所以就需要先将丢失数据包序号全部先记录下来。另外,序 号为200、标注序号为以1的数据包有可能是一长串标注序号数据包的前几个数据包,即丢 失的数据包很可能都是有标注序号的,所以保险起见,记录丢失的数据包的序号。如果缓存 中的后续数据包有标注序号,则可以直接根据标注序号判断是否有带标注序号的数据包丢 失,此时之前记录的丢失的数据包序号就可以忽略。重传请求中可以直接携带相关标注序 号。

[0083]上述步骤M中的现有的方式可以根据业务层面的需求进行处理:如果涉及实况播 放,则可以解码拼帧送显;如果涉及媒体流数据存储的话,则执行媒体流数据的存储即可。 [0084]请参图5所示的应用于解码设备的媒体流可靠接收装置模块图,其包括丢包检测 模块、标注序号连续性判断模块、丢包重传模块和拼帧解码模块。

[0085]该丢包检测模块判断接收的媒体流数据包是否存在丢包。

[0086]标注序号连续性判断模块在丢包检测模块判断丢包的情况下,判断未丢失的数据 包的标注序号是否连续。

[0087] 丢包重传模块在未丢失的数据包的标注序号不连续时,向编码设备发送重传请 求,该重传请求中包括丢失数据包的序号或者丢失数据包的标注序号。

[0088] 拼帧解码模块在未发生丢包时或者在发生丢包且未丢数据包标注序号连续时,将 对媒体流数据包进行拼帧解码送显。该拼帧解码模块属于业务层面的模块,如果不涉及实 况实现,而是仅需要将媒体流数据进行存储的话,该模块则可以是其它业务功能模块。

[0089]标注序号连续性判断模块,在执行未丢失数据包连续性判断的时候,具体执行:依 次获取按照媒体流数据包序号排序后的数据包,进行标注序号是否连续的判断:

[0090] 若当前获取的数据包P存在标注序号,则判断该标注序号是否和当前记录的标注 序号连续,如果连续,则将当前记录的标注序号更新为所述当前获取的数据包P的标注序 号,将下一个数据包作为当前数据包执行新一轮判断;如果不连续,则确定丢失数据包的序 号或者丢失数据包的标注序号,并将当前记录的标注序号更新为所述当前获取的数据包P 的标注序号,将下一个数据包作为当前数据包执行新一轮判断;若当前获取的数据包P不存 在标注序号,则获取下一个数据包作为当前的数据包执行新一轮判断。

[0091] 若当前获取的数据包P不存在标注序号,则在获取下一数据包作为当前的数据包 执行新一轮判断前,根据上一个数据包的标注序号以及,当前获取的数据包序号与上一个 数据包序号不连续的间隔值大小判断是否记录不连续数据包的序号,以为后续重传请求携 带数据包信息做准备。

[0092] 所述根据上一个数据包的标注序号以及,当前获取的数据包序号与上一个数据包 序号不连续的间隔值大小判断是否记录不连续数据包的序号具体为:若上一个数据包无标 注序号,且当前获取的数据包序号与上一个数据包序号不连续的间隔值大于阈值,则记录 不连续数据包的序号;若上一个数据包无标注序号,且当前获取的数据包序号与上一个数 据包序号不连续的间隔值不大于阈值,则不记录不连续数据包的序号;若上一个数据包有 标注序号,则记录不连续数据包的序号。

[0093] 以上所述仅为本发明的较佳实施例而己,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

1. 一种媒体流可靠传输的方法,该方法应用于编码设备,其特征在于,该编码设备上开 辟有用于媒体流数据备份的缓存空间,该方法包括: 根据预定的策略选取需要进行标注的媒体流数据;对选取的媒体流数据添加标注信 息,该标注彳目息至少包括标注序号;所述根据预定的策略选取需要进行标注的媒体流数据 包具体为:当媒体流数据存在告警的情况时,则所述媒体流数据需要被选取进行标注;或 者,当用户配置对当前的媒体流数据进行标注时,则所述媒体流数据需要被选取进行标注; 发送媒体流数据包,将添加有标注信息的媒体流数据包在所述缓存空间中进行备份, 未添加有标注信息的媒体流数据包则不进行备份,所述备份的媒体流数据包包括数据包序 号和依次连续的标注序号; 接收解码设备发送的包含有丢失数据包序号或者丢失数据包标注序号的重传请求,根 据丢失数据包序号或者丢失数据包标注序号判断所述缓存空间中是否存在待重传的媒体 流数据,如果存在,则对该媒体流数据进行重传,否则忽略该重传请求。
2. —种媒体流可靠接收方法,该方法应用于解码设备,其特征在于,该方法包括: 接收媒体流数据包; 判断媒体流数据包是否存在丢包情况,如果存在丢包,则判断未丢失的媒体流数据包 的标注序号是否连续,如果连续,则不请求重传,如果不连续,则向编码设备发送重传请求, 该重传请求中包括丢失媒体流数据包的序号或者丢失媒体流数据包的标注序号; 所述判断未丢失的媒体流数据包的标注序号是否连续具体为: 依次获取按照媒体流数据包序号排序后的数据包,进行标注序号是否连续的判断。
3.如权利要求2所述的媒体流可靠接收的方法,其特征在于,所述依次获取按照媒体流 数据包序号排序后的数据包,进行标注序号是否连续的判断,具体为: 若当前获取的媒体流数据包P存在标注序号,则判断该标注序号是否和当前记录的标 注序号连续,如果连续,则将当前记录的标注序号更新为所述当前获取的数据包P的标注序 号,将下一个数据包作为当前数据包执行新一轮判断;如果不连续,则确定丢失数据包的序 号或者丢失数据包的标注序号,并将当前记录的标注序号更新为所述当前获取的数据包P 的标注序号,将下一个数据包作为当前数据包执行新一轮判断; 若当前获取的数据包P不存在标注序号,则获取下一个数据包作为当前的数据包执行 新一轮判断。
4. 如权利要求3所述的媒体流可靠接收的方法,其特征在于,若当前获取的数据包P不 存在标注序号,则在获取下一数据包作为当前的数据包执行新一轮判断前,根据上一个数 据包的标注序号以及,当前获取的数据包序号与上一个数据包序号不连续的间隔值大小判 断是否记录不连续数据包的序号,以作为后续重传请求携带的数据包序号。
5. 如权利要求4所述的媒体流可靠接收的方法,其特征在于,所述根据上一个数据包的 标注序号以及,当前获取的数据包序号与上一个数据包序号不连续的间隔值大小判断是否 记录不连续数据包的序号具体为: 若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连续的 间隔值大于阈值,则记录不连续数据包的序号; 若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连续的 间隔值不大于阈值,则不记录不连续数据包的序号; 若上一个数据包有标注序号,则记录不连续数据包的序号。
6.—种媒体流可靠传输装置,该装置应用于编码设备,其特征在于,该编码设备上开辟 有用于媒体流数据备份的缓存空间,该装置包括: 媒体流标注模块,用于根据预定的策略选取需要进行标注的媒体流数据;对选取的媒 体流数据添加标注信息,该标注信息至少包括标注序号;所述预定的策略由标注策略下发 模块下发;所述标注策略下发模块为告警处理模块,该告警处理模块在编码设备自身给出 告警或者服务器给出告警后,下发指令给媒体流标注模块,通知其选取对应媒体流数据进 行标注;或者,所述标注策略下发模块为配置模块,该配置模块用于下发媒体流标注的配置 信息给媒体流标注模块; 媒体流备份模块,用于将添加有标注信息的媒体流数据包在所述缓存空间中进行备 份,未添加有标注信息的媒体流数据包则不进行备份,所述备份的媒体流数据包包括数据 包序号和依次连续的标注序号; 媒体流发送模块,用于发送媒体流数据包; 媒体流重传请求接收模块,用于接收解码设备发送的包含有丢失数据包序号或者丢失 数据包标注序号的重传请求; 媒体流备份模块,进一步用于根据丢失数据包序号或者丢失数据包标注序号判断所述 缓存空间中是否存在待重传的媒体流数据,如果存在,则由媒体流发送模块对该媒体流数 据进行重传,否则媒体流备份模块忽略该重传请求。
7.—种媒体流可靠接收装置,该装置应用于解码设备,其特征在于,该装置包括: 丢包检测模块,用于判断接收的媒体流数据包是否存在丢包; 标注序号连续性判断模块,用于在丢包检测模块判断丢包的情况下,判断未丢失的数 据包的标注序号是否连续;所述标注序号连续性判断模块在执行未丢失数据包连续性判断 的时候,具体执行:依次获取按照媒体流数据包序号排序后的数据包,进行标注序号是否连 续的判断; 丢包重传模块,用于在未丢失的数据包的标注序号不连续时,向编码设备发送重传请 求,该重传请求中包括丢失数据包的序号或者丢失数据包的标注序号。
8.如权利要求7所述的媒体流可靠接收装置,其特征在于,所述标注序号连续性判断模 块依次获取按照媒体流数据包序号排序后的数据包,进行标注序号是否连续的判断,具体 执行: 若当前获取的数据包P存在标注序号,则判断该标注序号是否和当前记录的标注序号 连续,如果连续,则将当前记录的标注序号更新为所述当前获取的数据包P的标注序号,将 下一个数据包作为当前数据包执行新一轮判断;如果不连续,则确定丢失数据包的序号或 者丢失数据包的标注序号,并将当前记录的标注序号更新为所述当前获取的数据包P的标 注序号,将下一个数据包作为当前数据包执行新一轮判断;若当前获取的数据包P不存在标 注序号,则获取下一个数据包作为当前的数据包执行新一轮判断。
9.如权利要求8所述的媒体流可靠接收的装置,其特征在于,若当前获取的数据包P不 存在标注序号,则在获取下一数据包作为当前的数据包执行新一轮判断前,根据上一个数 据包的标注序号以及,当前获取的数据包序号与上一个数据包序号不连续的间隔值大小判 断是否记录不连续数据包的序号,以作为后续重传请求携带的数据包序号。
10.如权利要求9所述的媒体流可靠接收的装置,其特征在于,所述根据上一个数据包 的标注序号以及,当前获取的数据包序号与上一个数据包序号不连续的间隔值大小判断是 否记录不连续数据包的序号具体为: 若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连续的 间隔值大于阈值,则记录不连续数据包的序号; 若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连续的 间隔值不大于阈值,则不记录不连续数据包的序号; 若上一个数据包有标注序号,则记录不连续数据包的序号。
CN201410483645.5A 2014-09-19 2014-09-19 一种媒体流可靠传输和接收的方法和装置 CN104244109B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410483645.5A CN104244109B (zh) 2014-09-19 2014-09-19 一种媒体流可靠传输和接收的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410483645.5A CN104244109B (zh) 2014-09-19 2014-09-19 一种媒体流可靠传输和接收的方法和装置

Publications (2)

Publication Number Publication Date
CN104244109A CN104244109A (zh) 2014-12-24
CN104244109B true CN104244109B (zh) 2017-12-08

Family

ID=52231312

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410483645.5A CN104244109B (zh) 2014-09-19 2014-09-19 一种媒体流可靠传输和接收的方法和装置

Country Status (1)

Country Link
CN (1) CN104244109B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106603481A (zh) * 2016-07-22 2017-04-26 深圳曼塔智能科技有限公司 数据传输方法及装置
CN106713345A (zh) * 2017-01-11 2017-05-24 深圳云视融通科技有限公司 一种流媒体传输方法
CN108322836A (zh) * 2018-01-24 2018-07-24 北京奇艺世纪科技有限公司 一种数据传输的方法及装置
CN109525376A (zh) * 2019-01-07 2019-03-26 北京三体云联科技有限公司 快速重传方法、装置及终端设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101729228B (zh) * 2008-10-31 2014-04-16 华为技术有限公司 丢包抑制重传的方法、网络节点和系统
CN102104468A (zh) * 2011-02-18 2011-06-22 中兴通讯股份有限公司 一种基于路由代理的媒体感知arq控制方法及系统
CN103533450B (zh) * 2013-06-09 2018-03-09 浙江宇视科技有限公司 一种媒体流可靠传输和接收的方法以及装置

Also Published As

Publication number Publication date
CN104244109A (zh) 2014-12-24

Similar Documents

Publication Publication Date Title
US10171959B2 (en) Distributed access point for IP based communications
CN101155145B (zh) 中继装置、中继方法,以及中继程序
TWI242957B (en) Method and device for multimedia streaming
EP1050166B1 (en) Decoder buffer for streaming video receiver and method
TWI246283B (en) Packet transmission system and packet reception system
TWI376126B (en) Bandwidth reservation for data flows in interconnection networks
US8213431B2 (en) System and method for enabling wireless real time applications over a wide area network in high signal intermittence environments
TWI388170B (zh) 網路中串流資料內容之方法及裝置
US7117521B2 (en) Method to measure the perceived quality of streaming media
US6700893B1 (en) System and method for controlling the delay budget of a decoder buffer in a streaming data receiver
US9019886B2 (en) Unicast to multicast conversion
EP1379051B1 (en) Data sending/receiving system and method for a defect-free data transmission
US9246969B2 (en) System for delayed video viewing
CN1656749B (zh) 数字内容分发系统、方法、程序及服务器和客户机
EP2197153B1 (en) Method and device for reliable multicast using UDP
US5444709A (en) Protocol for transporting real time data
SG11201807205XA (en) Quality of service (qos) management in wireless networks
SG11201906784RA (en) Systems and methods for issuing and tracking digital tokens within distributed network nodes
US9071942B2 (en) MAC based mapping in IP based communications
KR101223950B1 (ko) 원격 송신 시스템
US20100254262A1 (en) Tuning congestion control in IP multicast to mitigate the impact of blockage
JPWO2005099188A1 (ja) 通信品質管理方法および装置
KR20060010781A (ko) 멀티-레벨 변조 신호를 동기화하기 위한 방법 및 장치
US20050021678A1 (en) Satellite network control by internet with file upload and distribution
RU2634908C2 (ru) Способ и устройство для управления доставкой медиаданных

Legal Events

Date Code Title Description
PB01 Publication
C06 Publication
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
GR01 Patent grant
GR01 Patent grant