CN104244109A - 一种媒体流可靠传输和接收的方法和装置 - Google Patents
一种媒体流可靠传输和接收的方法和装置 Download PDFInfo
- Publication number
- CN104244109A CN104244109A CN201410483645.5A CN201410483645A CN104244109A CN 104244109 A CN104244109 A CN 104244109A CN 201410483645 A CN201410483645 A CN 201410483645A CN 104244109 A CN104244109 A CN 104244109A
- Authority
- CN
- China
- Prior art keywords
- packet
- media stream
- reference number
- sequence number
- stream data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明提供一种媒体流可靠传输和接收的方法。编码设备根据预定的策略选取需要进行标注的媒体流数据;对选取的媒体流数据添加至少包括标注序号的标注信息;发送媒体流数据包,将添加有标注信息的媒体流数据包在所述缓存空间中进行备份。解码设备确定存在丢包且未丢数据包的标注序号不连续时请求重传。编码设备接收解码设备发送的重传请求后,判断所述缓存空间中是否存在待重传的媒体流数据,如果存在,则对该媒体流数据进行重传。本发明方案避免非重要数据重传增加带宽和时延的情况,快速有效的实现了UDP可靠传输。
Description
技术领域
本发明涉及媒体流数据传输领域,尤其涉及一种媒体流可靠传输的方法和对应的装置。
背景技术
在多媒体通信技术领域,特别是视频监控系统中,随着IP技术的发展与逐步完善,媒体流使用基于IP网络的传输也越来越广泛。另一方面,在媒体流传输的时可以基于单播来传输,也可以利用组播来传输,组播的传输方式可以减轻IP网络的流量压力。由于传输的实时性要求,通常媒体流传输的时候都采用UDP的方式。但是UDP不论单播或者组播,对于存在丢包的情况,通常就只能任由该情况的发生。
在申请号为CN201310426244.1的中国专利申请中,申请人采用一种媒体流可靠传输和接收的方案,解决了上述问题。在该申请的方案中编码设备实行媒体流数据备份机制,解码设备实行媒体流数据缓存机制。编码设备在向解码设备发送媒体流数据时将该媒体流数据存储在专门开辟的缓存空间中以达到将该媒体流数据进行备份的目的。当解码设备发现媒体流数据丢失后,向编码设备发送重传请求,并且缓存后续接收到的媒体流数据;编码设备根据自身缓存空间中备份的媒体流数据响应解码设备的重传请求。解码设备接收到重传的媒体流数据后将其和缓存中的媒体流数据一并进行解码显示。
上述方案虽然解决UDP传输中媒体流丢包的问题,但是在一些网络条件不是很好的情况下或者解码显示对于实时性要求比较高场合中,该方案还有进一步优化的余地。
发明内容
有鉴于此,本发明提供一种媒体流可靠传输和接收的方法和装置。
该媒体流可靠传输的方法应用于编码设备,该编码设备上开辟有用于媒体流数据备份的缓存空间,该方法包括:根据预定的策略选取需要进行标注的媒体流数据;对选取的媒体流数据添加标注信息,该标注信息至少包括标注序号;发送媒体流数据包,将添加有标注信息的媒体流数据包在所述缓存空间中进行备份,未添加有标注信息的媒体流数据包则不进行备份,所述备份的媒体流数据包包括数据包序号和/或依次连续的标注序号;接收解码设备发送的包含有丢失数据包序号或者丢失数据包标注序号的重传请求,根据丢失数据包序号或者丢失数据包标注序号判断所述缓存空间中是否存在待重传的媒体流数据,如果存在,则对该媒体流数据进行重传,否则忽略该重传请求。
优选地,根据预定的策略选取需要进行标注的媒体流数据包具体为:当媒体流数据存在告警的情况时,则所述媒体流数据需要被选取进行标注;或者,当用户配置对当前的媒体流数据进行标注时,则所述媒体流数据需要被选取进行标注。
该媒体流可靠接收方法应用于解码设备,包括:接收媒体流数据包;判断媒体流数据包是否存在丢包情况,如果存在丢包,则判断未丢失的媒体流数据包的标注序号是否连续,如果连续,则不请求重传,如果不连续,则向编码设备发送重传请求,该重传请求中包括丢失媒体流数据包的序号或者丢失媒体流数据包的标注序号。
优选地,判断未丢失的媒体流数据包的标注序号是否连续具体为:
依次获取按照媒体流数据包序号排序后的数据包,进行标注序号是否连续的判断,具体为:
若当前获取的媒体流数据包P存在标注序号,则判断该标注序号是否和当前记录的标注序号连续,如果连续,则将当前记录的标注序号更新为所述当前获取的数据包P的标注序号,将下一个数据包作为当前数据包执行新一轮判断;如果不连续,则确定丢失数据包的序号或者丢失数据包的标注序号,并将当前记录的标注序号更新为所述当前获取的数据包P的标注序号,将下一个数据包作为当前数据包执行新一轮判断;
若当前获取的数据包P不存在标注序号,则获取下一个数据包作为当前的数据包执行新一轮判断。
优选地,若当前获取的数据包P不存在标注序号,则在获取下一数据包作为当前的数据包执行新一轮判断前,根据上一个数据包的标注序号以及,当前获取的数据包序号与上一个数据包序号不连续的间隔值大小判断是否记录不连续数据包的序号,以作为后续重传请求携带的数据包序号。
优选地,所述根据上一个数据包的标注序号以及,当前获取的数据包序号与上一个数据包序号不连续的间隔值大小判断是否记录不连续数据包的序号具体为:
若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连续的间隔值大于阈值,则记录不连续数据包的序号;
若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连续的间隔值不大于阈值,则不记录不连续数据包的序号;
若上一个数据包有标注序号,则记录不连续数据包的序号。
该媒体流可靠传输装置应用于编码设备,该编码设备上开辟有用于媒体流数据备份的缓存空间,该装置包括:媒体流标注模块,用于根据预定的策略选取需要进行标注的媒体流数据;对选取的媒体流数据添加标注信息,该标注信息至少包括标注序号;所述预定的策略由标注策略下发模块下发;媒体流备份模块,用于将添加有标注信息的媒体流数据包在所述缓存空间中进行备份,未添加有标注信息的媒体流数据包则不进行备份,所述备份的媒体流数据包包括数据包序号和/或依次连续的标注序号;媒体流发送模块,用于发送媒体流数据包;媒体流重传请求接收模块,用于接收解码设备发送的包含有丢失数据包序号或者丢失数据包标注序号的重传请求;媒体流备份模块,进一步用于根据丢失数据包序号或者丢失数据包标注序号判断所述缓存空间中是否存在待重传的媒体流数据,如果存在,则由媒体流发送模块对该媒体流数据进行重传,否则媒体流备份模块忽略该重传请求。
优选地,所述标注策略下发模块为告警处理模块,该告警处理模块在编码设备自身给出告警或者服务器给出告警后,下发指令给媒体流标注模块,通知其选取对应媒体流数据进行标注;或者,所述标注策略下发模块为配置模块,该配置模块用于下发媒体流标注的配置信息给媒体流标注模块。
该媒体流可靠接收装置应用于解码设备,包括:丢包检测模块,用于判断接收的媒体流数据包是否存在丢包;标注序号连续性判断模块,用于在丢包检测模块判断丢包的情况下,判断未丢失的数据包的标注序号是否连续;丢包重传模块,用于在未丢失的数据包的标注序号不连续时,向编码设备发送重传请求,该重传请求中包括丢失数据包的序号或者丢失数据包的标注序号。
标注序号连续性判断模块在执行未丢失数据包连续性判断的时候,具体执行:依次获取按照媒体流数据包序号排序后的数据包,进行标注序号是否连续的判断:
若当前获取的数据包P存在标注序号,则判断该标注序号是否和当前记录的标注序号连续,如果连续,则将当前记录的标注序号更新为所述当前获取的数据包P的标注序号,将下一个数据包作为当前数据包执行新一轮判断;如果不连续,则确定丢失数据包的序号或者丢失数据包的标注序号,并将当前记录的标注序号更新为所述当前获取的数据包P的标注序号,将下一个数据包作为当前数据包执行新一轮判断;若当前获取的数据包P不存在标注序号,则获取下一个数据包作为当前的数据包执行新一轮判断。
标注序号连续性判断模块,还执行:若当前获取的数据包P不存在标注序号,则在获取下一数据包作为当前的数据包执行新一轮判断前,根据上一个数据包的标注序号以及,当前获取的数据包序号与上一个数据包序号不连续的间隔值大小判断是否记录不连续数据包的序号,以作为后续重传请求携带的数据包序号。
标注序号连续性判断模块根据上一个数据包的标注序号以及,当前获取的数据包序号与上一个数据包序号不连续的间隔值大小判断是否记录不连续数据包的序号具体为:
若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连续的间隔值大于阈值,则记录不连续数据包的序号;
若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连续的间隔值不大于阈值,则不记录不连续数据包的序号;
若上一个数据包有标注序号,则记录不连续数据包的序号。
相较于现有技术,本发明方案避免非重要数据重传增加带宽和时延的情况,快速有效的实现了UDP可靠传输。
附图说明
图1是本发明实施例一流程图;
图2是本发明装置一逻辑结构图;
图3是本发明实施例二流程图;
图4是本发明实施例三流程图;
图5是本发明装置二逻辑结构图。
具体实施方式
本发明提供一种更优的媒体流可靠传输和接收方案。该方案在尽量保证媒体流可靠传输和接收的前提下,避免了无关数据重传增加网络负担和延时的情况,快速有效地实现了UDP可靠传输。以下通过具体实施例详细说明。
实施例一给出了一种媒体流可靠传输的方法,该方法应用于编码设备,该编码设备上开辟有用于媒体流数据备份的缓存空间。请参图1所示的该方法的流程图。
S11、根据预定的策略选取需要进行标注的媒体流数据;对选取的媒体流数据添加标注信息,该标注信息至少包括标注序号。
编码设备在发送原始媒体流数据包前,需要确定哪些媒体流数据要进行特殊的标注。通常,要标注的媒体流数据都是一些包含重要监控内容的数据。比如说,监控相机拍摄到有人或物闯入禁区,车辆闯红灯等的视频数据,这些视频数据在封装成媒体流数据包时还需要进一步进行特别的标注。
在具体实现的时候,可以和当前的告警信息结合起来。比如说,对于视频,当存在开关量输入告警、运动检测告警、人脸/车辆检测告警、以及管理编码设备的服务器(如网络硬盘录像机NVR或视频管理服务器VM)由电子围栏、门禁、其他摄像机追踪联动至本设备的告警时,可以将对应的视频数据进行标注,即这些视频数据的媒体流数据包中将携带标注信息。如果编码设备自身具备智能分析模块进行如运动检测告警、人脸/车辆检测告警等,则可以由编码设备直接根据这些告警进行对应媒体流数据的标注;如果编码设备自身不具备智能分析能力,则可以由外部的设备输出告警给编码设备,从而使得编码设备进行对应媒体流数据的标注。这些具体的告警信息通常是实时得到的。
有些监控数据,除了视频数据外还包括音频数据,当对音频数据识别出关键语音信息,如“取钱”“钱”“十”“”百“元”“角”“分”等的时候,也可以将对应的媒体流数据选取出来添加标注信息。
在选取待标注的媒体流数据时,还可以和用户的配置结合起来。比如用户手动配置某一段时间的媒体数据需要进行标注,则编码设备对该时间段的媒体流数据包都添加标注信息;又比如,用户配置对计划时间段的媒体流数据进行标注,比如对每天晚上9点-第二天凌晨5点的媒体流数据进行标注,则编码设备对每天该段时间的媒体流数据包添加标注信息。
上述和告警信息结合、和配置信息结合选取待标注媒体流数据的方式都属于按照预定策略进行选取的方式;当然这里和告警信息结合、和配置信息结合只是举例两个例子,本发明并不排除其他的方式。
对于标注信息,至少包括标注序号,该标注序号称为媒体流数据包标注序号。
S12、发送媒体流数据包,将添加有标注信息的媒体流数据包在所述缓存空间中进行备份,未添加有标注信息的媒体流数据包则不进行备份,所述备份的媒体流数据包包括数据包序号和/或依次连续的标注序号。
无论标注或未标注的媒体流数据包,编码设备都进行发送。而对于备份,本实施例仅将带有标注信息的媒体流数据包放置在缓存空间中进行备份,而未带有标注信息的媒体流数据包则不进行备份。在对媒体流数据包依次进行标注的时候,标注序号需要连续。比如说顺序增加:第n至n+m个媒体流数据包需要添加标注序号,则可以将第k至k+m个标注序号分别分配给这m+1个数据包;当然顺序递减等方式也都可以。标注序号具有连续性主要是为解码设备后续判断标注数据包是否丢失提供依据。
S13、接收解码设备发送的包含有丢失数据包序号或者丢失数据包标注序号的重传请求,根据丢失数据包序号或者丢失数据包标注序号判断所述缓存空间中是否存在待重传的媒体流数据,如果存在,则对该媒体流数据进行重传,否则忽略该重传请求。
解码设备将对添加有标注序号的媒体流数据包进行丢包与否的判断,当判断该类数据包丢失时,解码设备向编码设备发送重传请求。具体的判断方法下文将详细说明。该重传请求中可以携带媒体流数据包的序号或者可以携带媒体流数据包的标注序号。媒体流数据包序号指现有技术中的媒体流数据包本身包含的序号,比如说,对于RTP协议传输的媒体流,每个RTP数据包的序号即为媒体流数据包序号;媒体流数据包标注序号为本发明特有的序号,具体请参前文说明。编码设备接收到解码设备发送的重传请求后,在自身的备份空间中查找是否有对应序号的媒体流数据包,如果存在,就重传该对应序号的媒体流数据包,否则就忽略该重传请求。
请参图2所示的应用于编码设备的媒体流可靠传输装置模块图,其包括标注策略下发模块,媒体流标注模块,媒体流备份模块,媒体流发送模块和媒体流重传请求接收模块。
媒体流标注模块根据预定的策略选取需要进行标注的媒体流数据;对选取的媒体流数据添加标注信息,该标注信息至少包括标注序号,且该标注序号顺序增加;所述预定的策略由标注策略下发模块下发。
该标注策略下发模块可以是针对告警的告警处理模块,在编码设备自身给出告警或者服务器给出告警后,告警处理模块下发指令给媒体流标注模块,通知其选取相关媒体流数据进行标注;该标注策略下发模块还可以是配置模块,该配置模块下发媒体流标注的配置信息给媒体流标注模块,如前文所述的对某一段时间的媒体流数据进行标注或者每天、每月某一个时间段的媒体流数据需要进行标注等。
媒体流备份模块将添加有标注信息的媒体流数据包在所述缓存空间中进行备份,未添加有标注信息的媒体流数据包则不进行备份。
媒体流发送模块发送媒体流数据包。媒体流发送模块对媒体流数据包进行网络传输封装,封装完成后将媒体流数据包发送给解码设备。
媒体流重传请求接收模块接收解码设备发送的包含有丢失数据包序号或者丢失数据包标注序号的重传请求。
媒体流备份模块进一步根据丢失数据包序号或者丢失数据包标注序号判断所述缓存空间中是否存在待重传的媒体流数据,如果存在,则由媒体流发送模块对该媒体流数据进行重传,否则媒体流备份模块忽略该重传请求。媒体流备份模块若确定缓存空间中存在待重传的媒体流数据包,则将该媒体流数据包交给媒体流发送模块,这些待重传的媒体流数据包将插入当前待发送的媒体流数据包队列中,由媒体流发送模块发送出去。
以上介绍了媒体流发送端在媒体流可靠传输中对媒体流数据的处理;下文将说明媒体流接收端在媒体流可靠接收中如何对媒体流数据包进行处理的。请参图3所示的媒体流可靠接收方法的流程图。
S31、接收媒体流数据包;
S32、判断媒体流数据包是否存在丢包情况,如果是,转步骤S33,否则转步骤S34;
S33、判断未丢失的数据包的标注序号是否连续,如果是,则转步骤S34,否则转步骤S35;
S34、按照现有方式处理;
S35、向编码设备发送重传请求,该重传请求中包括丢失数据包的序号或者丢失数据包的标注序号。
作为媒体流接收端的解码设备接收媒体流数据包后,判断媒体流数据包是否存在丢包。具体如何判断丢包可参CN201310426244.1的中国专利申请,或者现有技术中提供的其他方法。
本发明方案在丢包的情况下,并不会立即启动重传,而是需要执行进一步的判断,即判断未丢失的数据包的标注序号是否连续。当未丢失的数据包的标注序号连续的话,则无需请求重传。因为按照本发明的设计机理,这种情况将认为丢失的那些数据包并不很重要,不重传不会对具体的业务带来本质的影响,且反而节省了网络的带宽,在某种程度上减少了数据包传递的延时。
判断未丢失数据包的标注序号是否连续可以采用如下方法:
首先保证未丢失的媒体流数据包已经按照数据包序号排序完毕,然后对这些排好序的数据包进行标注序号是否连续的判断,具体为:
若当前获取的数据包P存在标注序号,则判断该标注序号是否和当前记录的标注序号连续,如果连续,则将当前记录的标注序号更新为所述当前获取的数据包P的标注序号,将下一个数据包作为当前数据包执行新一轮判断;如果不连续,则确定丢失数据包的序号或者丢失数据包的标注序号,并将当前记录的标注序号更新为所述当前获取的数据包P的标注序号,将下一个数据包作为当前数据包执行新一轮判断;若当前获取的数据包P不存在标注序号,则获取下一个数据包作为当前的数据包执行新一轮判断。
举个例子:假设当前记录的标注序号Seqmarked_cur为4,按照媒体流数据包序号排好序的缓存中的数据包分别为数据包6、数据包7、数据包8、数据包9、数据包10;这5个数据包对应的标注序号分别为6、7、8、9、10。首先获取当前数据包6,由于该数据包的标注序号为6,和当前记录的标注序号Seqmarked_cur为4不连续,则确定标注序号为5的数据包丢失;且将当前记录的标注序号Seqmarked_cu更新为6;获取下一个数据包:数据包7,执行新的一轮判断。数据包7的标注序号为7,和当前记录的标注序号Seqmarked_cur:6连续,则且将当前记录的标注序号Seqmarked_cu更新为6,并获取下一个数据包:数据包8,执行新一轮判断,直到缓存中的数据包全部判断完,然后将待反馈的标注序号5或者数据包序号5携带在重传请求中发送给编码设备。
再举个例子:假设当前记录的标注序号Seqmarked_cur为50,按照媒体流数据包序号排好序的缓存中的数据包分别为数据包100、数据包101、数据包102、数据包103、数据包104、数据包105、数据包106;这7个数据包对应的标注序号分别为0、0、0、0、0、52、53。获取当前的数据包100,由于其标注序号为0,所以继续获取下一个数据包101;由于数据包101的标注序号为0,所以获取下一个数据包102;同样的,对于数据包103和数据包104,其标注序号均为0,所以获取数据包105,由于数据包105的标注序号是52,和当前记录的标注序号Seqmarked_cur:50不连续,所以记录当前丢失的数据包的标注序号为51,并将Seqmarked_cur更新为52,;获取下一个数据包106,由于该数据包的标注序号为53,和当前记录的标注序号52连续,更新当前记录的标注序号Seqmarked_cur为53。所以解码设备反馈的重传请求中携带的丢失数据包的标注序号为51。
请参图4解码设备接收媒体流数据包并进行重传请求的又一个实施例。
S41、对接收到的缓存中的数据包按照数据包序号进行排序;
S42、按序获取缓存中的一个数据包作为当前数据包,并判断该当前数据包的序号和上一个数据包的序号是否连续,如果连续,则未丢包,获取下一数据包开始新一轮判断,否则转步骤S43;
S43、判断当前数据包是否有标注序号,如果有,则转步骤S44,否则转步骤S45;
S44、判断当前数据包的标注序号是否和当前记录的标注序号连续,如果是,则转步骤S46;否则转步骤S47;
S45、判断上一个数据包是否有标注序号,如果是,则转步骤S49、否则转步骤S48;
S46、更新当前记录的标注序号为当前数据包的标注序号,返回步骤S42;
S47、记录丢失的数据包的标注序号,且更新当前记录的标注序号为当前数据包的标注序号,返回步骤S42;
S48、判断当前获取的数据包序号与上一个数据包序号不连续的间隔值是否大于阈值,如果是,则转步骤S49;否则返回步骤S42;
S49、记录不连续的数据包序号,返回步骤S42。
当缓存中所有数据包都处理完毕后,结合记录的丢失的数据包的标注序号和不连续数据包序号确定反馈重传请求携带的标注序号或者数据包序号。
上述流程主要对当前数据包没有标注序号时的处理方式进行改进,即在当前数据包没有标注序号时,需要结合上一个数据包是否有标注序号,以及上一个数据包和当前数据包的序号差值来判断是否需要记录不连续的数据包序号。以下进一步通过几个具体的例子来进行说明。
举例一:上一个数据包的序号为200,标注序号为0;从缓存中获取的当前数据包序号为230,标注序号为0;假设上述流程中的阈值为25;此时满足数据包序号不连续,且当前数据包、上一个数据包均无标注序号,且当前数据包序号与上一个数据包序号不连续的间隔值30大于阈值25,所以此时需要记录不连续的数据包序号,即数据包序号201~229。接下来,从缓存中获取数据包230后面的下一个数据包,比如说该下一个数据包序号为231,标注序号为0,此时的上一个数据包即为数据包230,由于数据包231和数据包230序号连续,所以未丢包,继续缓存中下一个数据包的处理,直到所有的数据包都处理完成。
这里之所以这样处理,是因为若缓存中的数据包的标注序号全部都是0时,就无法根据当前缓存中数据包的标注序号来判断是否存在具有标注序号的数据包丢失,只有等到后续接收到有标注序号的数据包才能做出判断。这样会有编码设备缓存中备份的具有标注信息的数据包被覆盖的风险,所以就需要先将丢失数据包序号全部先记录下来;进一步优化,如果这些丢失的数据包的数量不是很多,就不再记录丢失数据包的序号,这样处理更简便并且实际上对业务不会有大的影响。如果缓存中的后续数据包有标注序号,则可以直接根据标注序号判断是否有带标注序号的数据包丢失,此时之前记录的丢失的数据包序号就可以忽略,重传请求中可以直接携带相关标注序号。
举例二:上一个数据包的序号为200,标注序号为121;从缓存中获取的当前数据包序号为230,标注序号为0;假设上述流程中的阈值为25;此时满足数据包序号不连续,且当前数据包无标注序号、上一个数据包有标注序号,所以此时需要记录不连续的数据包序号,即数据包序号201~229。接着处理缓存中的下一个数据包,直到缓存中所有数据包全部处理完毕。
这里之所以这样处理,也是因为若缓存中的数据包的标注序号全部都是0时,则无法根据当前缓存中数据包的标注序号来判断是否存在具有标注序号的数据包丢失,只有等到后续接收到有标注序号的数据包才能做出判断。这样会有编码设备缓存中备份的具有标注信息的数据包被覆盖的风险,所以就需要先将丢失数据包序号全部先记录下来。另外,序号为200、标注序号为121的数据包有可能是一长串标注序号数据包的前几个数据包,即丢失的数据包很可能都是有标注序号的,所以保险起见,记录丢失的数据包的序号。如果缓存中的后续数据包有标注序号,则可以直接根据标注序号判断是否有带标注序号的数据包丢失,此时之前记录的丢失的数据包序号就可以忽略。重传请求中可以直接携带相关标注序号。
上述步骤34中的现有的方式可以根据业务层面的需求进行处理:如果涉及实况播放,则可以解码拼帧送显;如果涉及媒体流数据存储的话,则执行媒体流数据的存储即可。
请参图5所示的应用于解码设备的媒体流可靠接收装置模块图,其包括丢包检测模块、标注序号连续性判断模块、丢包重传模块和拼帧解码模块。
该丢包检测模块判断接收的媒体流数据包是否存在丢包。
标注序号连续性判断模块在丢包检测模块判断丢包的情况下,判断未丢失的数据包的标注序号是否连续。
丢包重传模块在未丢失的数据包的标注序号不连续时,向编码设备发送重传请求,该重传请求中包括丢失数据包的序号或者丢失数据包的标注序号。
拼帧解码模块在未发生丢包时或者在发生丢包且未丢数据包标注序号连续时,将对媒体流数据包进行拼帧解码送显。该拼帧解码模块属于业务层面的模块,如果不涉及实况实现,而是仅需要将媒体流数据进行存储的话,该模块则可以是其它业务功能模块。
标注序号连续性判断模块,在执行未丢失数据包连续性判断的时候,具体执行:依次获取按照媒体流数据包序号排序后的数据包,进行标注序号是否连续的判断:
若当前获取的数据包P存在标注序号,则判断该标注序号是否和当前记录的标注序号连续,如果连续,则将当前记录的标注序号更新为所述当前获取的数据包P的标注序号,将下一个数据包作为当前数据包执行新一轮判断;如果不连续,则确定丢失数据包的序号或者丢失数据包的标注序号,并将当前记录的标注序号更新为所述当前获取的数据包P的标注序号,将下一个数据包作为当前数据包执行新一轮判断;若当前获取的数据包P不存在标注序号,则获取下一个数据包作为当前的数据包执行新一轮判断。
若当前获取的数据包P不存在标注序号,则在获取下一数据包作为当前的数据包执行新一轮判断前,根据上一个数据包的标注序号以及,当前获取的数据包序号与上一个数据包序号不连续的间隔值大小判断是否记录不连续数据包的序号,以为后续重传请求携带数据包信息做准备。
所述根据上一个数据包的标注序号以及,当前获取的数据包序号与上一个数据包序号不连续的间隔值大小判断是否记录不连续数据包的序号具体为:若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连续的间隔值大于阈值,则记录不连续数据包的序号;若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连续的间隔值不大于阈值,则不记录不连续数据包的序号;若上一个数据包有标注序号,则记录不连续数据包的序号。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (12)
1.一种媒体流可靠传输的方法,该方法应用于编码设备,其特征在于,该编码设备上开辟有用于媒体流数据备份的缓存空间,该方法包括:
根据预定的策略选取需要进行标注的媒体流数据;对选取的媒体流数据添加标注信息,该标注信息至少包括标注序号;
发送媒体流数据包,将添加有标注信息的媒体流数据包在所述缓存空间中进行备份,未添加有标注信息的媒体流数据包则不进行备份,所述备份的媒体流数据包包括数据包序号和/或依次连续的标注序号;
接收解码设备发送的包含有丢失数据包序号或者丢失数据包标注序号的重传请求,根据丢失数据包序号或者丢失数据包标注序号判断所述缓存空间中是否存在待重传的媒体流数据,如果存在,则对该媒体流数据进行重传,否则忽略该重传请求。
2.如权利要求1所述的媒体流可靠传输方法,其特征在于,所述根据预定的策略选取需要进行标注的媒体流数据包具体为:
当媒体流数据存在告警的情况时,则所述媒体流数据需要被选取进行标注;或者,
当用户配置对当前的媒体流数据进行标注时,则所述媒体流数据需要被选取进行标注。
3.一种媒体流可靠接收方法,该方法应用于解码设备,其特征在于,该方法包括:
接收媒体流数据包;
判断媒体流数据包是否存在丢包情况,如果存在丢包,则判断未丢失的媒体流数据包的标注序号是否连续,如果连续,则不请求重传,如果不连续,则向编码设备发送重传请求,该重传请求中包括丢失媒体流数据包的序号或者丢失媒体流数据包的标注序号。
4.如权利要求3所述的媒体流可靠接收的方法,其特征在于,所述判断未丢失的媒体流数据包的标注序号是否连续具体为:
依次获取按照媒体流数据包序号排序后的数据包,进行标注序号是否连续的判断,具体为:
若当前获取的媒体流数据包P存在标注序号,则判断该标注序号是否和当前记录的标注序号连续,如果连续,则将当前记录的标注序号更新为所述当前获取的数据包P的标注序号,将下一个数据包作为当前数据包执行新一轮判断;如果不连续,则确定丢失数据包的序号或者丢失数据包的标注序号,并将当前记录的标注序号更新为所述当前获取的数据包P的标注序号,将下一个数据包作为当前数据包执行新一轮判断;
若当前获取的数据包P不存在标注序号,则获取下一个数据包作为当前的数据包执行新一轮判断。
5.如权利要求4所述的媒体流可靠接收的方法,其特征在于,若当前获取的数据包P不存在标注序号,则在获取下一数据包作为当前的数据包执行新一轮判断前,根据上一个数据包的标注序号以及,当前获取的数据包序号与上一个数据包序号不连续的间隔值大小判断是否记录不连续数据包的序号,以作为后续重传请求携带的数据包序号。
6.如权利要求5所述的媒体流可靠接收的方法,其特征在于,所述根据上一个数据包的标注序号以及,当前获取的数据包序号与上一个数据包序号不连续的间隔值大小判断是否记录不连续数据包的序号具体为:
若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连续的间隔值大于阈值,则记录不连续数据包的序号;
若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连续的间隔值不大于阈值,则不记录不连续数据包的序号;
若上一个数据包有标注序号,则记录不连续数据包的序号。
7.一种媒体流可靠传输装置,该装置应用于编码设备,其特征在于,该编码设备上开辟有用于媒体流数据备份的缓存空间,该装置包括:
媒体流标注模块,用于根据预定的策略选取需要进行标注的媒体流数据;对选取的媒体流数据添加标注信息,该标注信息至少包括标注序号;所述预定的策略由标注策略下发模块下发;
媒体流备份模块,用于将添加有标注信息的媒体流数据包在所述缓存空间中进行备份,未添加有标注信息的媒体流数据包则不进行备份,所述备份的媒体流数据包包括数据包序号和/或依次连续的标注序号;
媒体流发送模块,用于发送媒体流数据包;
媒体流重传请求接收模块,用于接收解码设备发送的包含有丢失数据包序号或者丢失数据包标注序号的重传请求;
媒体流备份模块,进一步用于根据丢失数据包序号或者丢失数据包标注序号判断所述缓存空间中是否存在待重传的媒体流数据,如果存在,则由媒体流发送模块对该媒体流数据进行重传,否则媒体流备份模块忽略该重传请求。
8.如权利要求7所述的媒体流可靠传输装置,其特征在于,所述标注策略下发模块为告警处理模块,该告警处理模块在编码设备自身给出告警或者服务器给出告警后,下发指令给媒体流标注模块,通知其选取对应媒体流数据进行标注;或者,所述标注策略下发模块为配置模块,该配置模块用于下发媒体流标注的配置信息给媒体流标注模块。
9.一种媒体流可靠接收装置,该装置应用于解码设备,其特征在于,该装置包括:
丢包检测模块,用于判断接收的媒体流数据包是否存在丢包;
标注序号连续性判断模块,用于在丢包检测模块判断丢包的情况下,判断未丢失的数据包的标注序号是否连续;
丢包重传模块,用于在未丢失的数据包的标注序号不连续时,向编码设备发送重传请求,该重传请求中包括丢失数据包的序号或者丢失数据包的标注序号。
10.如权利要求9所述的媒体流可靠接收装置,其特征在于,所述标注序号连续性判断模块在执行未丢失数据包连续性判断的时候,具体执行:依次获取按照媒体流数据包序号排序后的数据包,进行标注序号是否连续的判断:
若当前获取的数据包P存在标注序号,则判断该标注序号是否和当前记录的标注序号连续,如果连续,则将当前记录的标注序号更新为所述当前获取的数据包P的标注序号,将下一个数据包作为当前数据包执行新一轮判断;如果不连续,则确定丢失数据包的序号或者丢失数据包的标注序号,并将当前记录的标注序号更新为所述当前获取的数据包P的标注序号,将下一个数据包作为当前数据包执行新一轮判断;若当前获取的数据包P不存在标注序号,则获取下一个数据包作为当前的数据包执行新一轮判断。
11.如权利要求10所述的媒体流可靠接收的装置,其特征在于,若当前获取的数据包P不存在标注序号,则在获取下一数据包作为当前的数据包执行新一轮判断前,根据上一个数据包的标注序号以及,当前获取的数据包序号与上一个数据包序号不连续的间隔值大小判断是否记录不连续数据包的序号,以作为后续重传请求携带的数据包序号。
12.如权利要求11所述的媒体流可靠接收的装置,其特征在于,所述根据上一个数据包的标注序号以及,当前获取的数据包序号与上一个数据包序号不连续的间隔值大小判断是否记录不连续数据包的序号具体为:
若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连续的间隔值大于阈值,则记录不连续数据包的序号;
若上一个数据包无标注序号,且当前获取的数据包序号与上一个数据包序号不连续的间隔值不大于阈值,则不记录不连续数据包的序号;
若上一个数据包有标注序号,则记录不连续数据包的序号。
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 true CN104244109A (zh) | 2014-12-24 |
CN104244109B CN104244109B (zh) | 2017-12-08 |
Family
ID=52231312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410483645.5A Active CN104244109B (zh) | 2014-09-19 | 2014-09-19 | 一种媒体流可靠传输和接收的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104244109B (zh) |
Cited By (14)
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 | 北京奇艺世纪科技有限公司 | 一种数据传输的方法及装置 |
CN108377427A (zh) * | 2018-01-29 | 2018-08-07 | 明博教育科技股份有限公司 | 一种实时视频传输方法和系统 |
CN108616326A (zh) * | 2016-12-12 | 2018-10-02 | 中国航空工业集团公司西安航空计算技术研究所 | 基于udp的发动机大数据可靠传输方法 |
CN109005081A (zh) * | 2018-06-26 | 2018-12-14 | 卡斯柯信号有限公司 | 一种丢包自动检测系统及方法 |
CN109525376A (zh) * | 2019-01-07 | 2019-03-26 | 北京三体云联科技有限公司 | 快速重传方法、装置及终端设备 |
CN109981221A (zh) * | 2019-03-26 | 2019-07-05 | 南京罗拉穿云物联网科技有限公司 | 工业dtu数据预处理方法及装置 |
CN111343501A (zh) * | 2020-03-06 | 2020-06-26 | 随锐科技集团股份有限公司 | 丢包检测方法及系统、计算机可读存储介质 |
CN111885404A (zh) * | 2020-07-16 | 2020-11-03 | RealMe重庆移动通信有限公司 | 数据传输方法、设备及存储介质 |
CN112019939A (zh) * | 2019-05-31 | 2020-12-01 | 青岛海信宽带多媒体技术有限公司 | Rtp包处理方法、装置及播放终端 |
CN112969075A (zh) * | 2021-01-29 | 2021-06-15 | 北京字节跳动网络技术有限公司 | 直播过程中的补帧方法、装置及计算设备 |
CN114257836A (zh) * | 2021-12-17 | 2022-03-29 | 青岛海信宽带多媒体技术有限公司 | 一种机顶盒及丢包处理方法 |
CN114338624A (zh) * | 2022-01-07 | 2022-04-12 | 深圳创维-Rgb电子有限公司 | 无线投屏数据处理方法、智能终端及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102104468A (zh) * | 2011-02-18 | 2011-06-22 | 中兴通讯股份有限公司 | 一种基于路由代理的媒体感知arq控制方法及系统 |
EP2352248A1 (en) * | 2008-10-31 | 2011-08-03 | Huawei Technologies Co., Ltd. | Lost packet retransmission suppressing method, network node and system |
CN103533450A (zh) * | 2013-06-09 | 2014-01-22 | 浙江宇视科技有限公司 | 一种媒体流可靠传输和接收的方法以及装置 |
-
2014
- 2014-09-19 CN CN201410483645.5A patent/CN104244109B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2352248A1 (en) * | 2008-10-31 | 2011-08-03 | Huawei Technologies Co., Ltd. | Lost packet retransmission suppressing method, network node and system |
CN102104468A (zh) * | 2011-02-18 | 2011-06-22 | 中兴通讯股份有限公司 | 一种基于路由代理的媒体感知arq控制方法及系统 |
CN103533450A (zh) * | 2013-06-09 | 2014-01-22 | 浙江宇视科技有限公司 | 一种媒体流可靠传输和接收的方法以及装置 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018014421A1 (zh) * | 2016-07-22 | 2018-01-25 | 深圳曼塔智能科技有限公司 | 数据传输方法及装置 |
CN106603481A (zh) * | 2016-07-22 | 2017-04-26 | 深圳曼塔智能科技有限公司 | 数据传输方法及装置 |
CN108616326A (zh) * | 2016-12-12 | 2018-10-02 | 中国航空工业集团公司西安航空计算技术研究所 | 基于udp的发动机大数据可靠传输方法 |
CN106713345A (zh) * | 2017-01-11 | 2017-05-24 | 深圳云视融通科技有限公司 | 一种流媒体传输方法 |
CN108322836A (zh) * | 2018-01-24 | 2018-07-24 | 北京奇艺世纪科技有限公司 | 一种数据传输的方法及装置 |
CN108377427B (zh) * | 2018-01-29 | 2021-11-26 | 明博教育科技股份有限公司 | 一种实时视频传输方法和系统 |
CN108377427A (zh) * | 2018-01-29 | 2018-08-07 | 明博教育科技股份有限公司 | 一种实时视频传输方法和系统 |
CN109005081A (zh) * | 2018-06-26 | 2018-12-14 | 卡斯柯信号有限公司 | 一种丢包自动检测系统及方法 |
CN109525376A (zh) * | 2019-01-07 | 2019-03-26 | 北京三体云联科技有限公司 | 快速重传方法、装置及终端设备 |
CN109525376B (zh) * | 2019-01-07 | 2021-12-03 | 北京世纪好未来教育科技有限公司 | 快速重传方法、装置及终端设备 |
CN109981221A (zh) * | 2019-03-26 | 2019-07-05 | 南京罗拉穿云物联网科技有限公司 | 工业dtu数据预处理方法及装置 |
CN112019939A (zh) * | 2019-05-31 | 2020-12-01 | 青岛海信宽带多媒体技术有限公司 | Rtp包处理方法、装置及播放终端 |
CN111343501A (zh) * | 2020-03-06 | 2020-06-26 | 随锐科技集团股份有限公司 | 丢包检测方法及系统、计算机可读存储介质 |
CN111885404A (zh) * | 2020-07-16 | 2020-11-03 | RealMe重庆移动通信有限公司 | 数据传输方法、设备及存储介质 |
CN112969075A (zh) * | 2021-01-29 | 2021-06-15 | 北京字节跳动网络技术有限公司 | 直播过程中的补帧方法、装置及计算设备 |
CN114257836A (zh) * | 2021-12-17 | 2022-03-29 | 青岛海信宽带多媒体技术有限公司 | 一种机顶盒及丢包处理方法 |
CN114257836B (zh) * | 2021-12-17 | 2024-05-28 | 青岛海信宽带多媒体技术有限公司 | 一种机顶盒及丢包处理方法 |
CN114338624A (zh) * | 2022-01-07 | 2022-04-12 | 深圳创维-Rgb电子有限公司 | 无线投屏数据处理方法、智能终端及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104244109B (zh) | 2017-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104244109A (zh) | 一种媒体流可靠传输和接收的方法和装置 | |
DE60211335T2 (de) | Echtzeitpaketisierung und Wiederübertragung in Streaming Anwendungen | |
CN106464601B (zh) | 信道捆绑 | |
CN102577272B (zh) | 低等待时间的可高速缓存的媒体流式传输 | |
CN101488967B (zh) | 一种视频传输方法、嵌入式监控终端及监控平台服务器 | |
US10135897B2 (en) | Backfill of video stream | |
EP1672826B1 (en) | Retry strategies for use in a streaming environment | |
CN102932667B (zh) | 一种实时流媒体上传中的丢帧控制与续传方法及系统 | |
CN103533450A (zh) | 一种媒体流可靠传输和接收的方法以及装置 | |
US11070327B2 (en) | Method and apparatus for re-transmitting MMT packet and method and apparatus for requesting MMT packet re-transmission | |
CN101262321A (zh) | 媒体数据处理方法、编码设备及媒体平台 | |
CN106341738A (zh) | 流媒体网络传输的带宽计算方法、服务器端和系统 | |
CN104284135B (zh) | 视频传输方法及设备 | |
CN102802088B (zh) | 一种基于实时传输协议的数据传输方法 | |
US20060224745A1 (en) | Error recovery mechanism and network element comprising same | |
CN101431666A (zh) | 一种监控录像远程快速浏览方法及系统 | |
CN101944982B (zh) | 基于时间驱动滑动窗口协议的流媒体实时转发方法 | |
CN102387409A (zh) | 基于流媒体系统的视频播放方法 | |
CN106210785B (zh) | 媒体流网络自适应单向控制方法及系统 | |
CN103036808B (zh) | 一种去除网络抖动的方法及系统 | |
CN105611424B (zh) | 基于rudp的音视频可靠传输qos方法、接收端及系统 | |
US10798249B2 (en) | Managing live video stream connections and data usage | |
KR20080062692A (ko) | 스트림 녹화 방법, 장치 및 시스템 | |
JP3927486B2 (ja) | ストリーミング配信装置、ストリーミング配信システム、及びストリーミング配信方法 | |
JP2008131599A (ja) | キャスト伝送装置及びキャスト伝送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |