一种媒体流的修复方法

文档序号:7835578阅读:230来源:国知局
专利名称:一种媒体流的修复方法
技术领域
本发明涉及一种媒体流的修复方法,特别地涉及一种针对数据包的媒体流修复方法。
背景技术
媒体流是一种采用流式传输的方式在网络上传输的媒体格式。现有技术播放媒体流内容的方法是由内容源提供数据来源;内容准备模块根据数据来源的内容输入及相关环境信息进行内容分片和生成元数据,并将内容分片和元数据发布到媒体流服务器;媒体流播放器获取到元数据的网页地址(Uniform/Universal Resource Locator,URL),并到媒体流服务器请求获取元数据,其中,元数据用于描述分片信息;媒体流服务器将元数据发送给媒体流播放器;媒体流播放器解析获得的元数据,得到内容分片信息,并根据内容分片信息到媒体流服务器请求内容分片;媒体流服务器将内容分片发送给媒体流播放器;媒体流播放器播放内容分片。Network Coding是2000年提出的概念,它通过在网络层将信息流进行组合编码来达到数据的高速传输(即最大流),而传统的信息传输方式只是将信息进行复制、转发 (即路由方式)。在视频聊天,视频会议这种实时性要求高的媒体流应用中,往往采用UDP的传输方式来保证传输速度,但是往往由于UDP传输的不可靠性带来网络丢包,从而造成视频质量差,影响通信效果。本发明吸取了 NetworkCoding的思想,用数据包异或等多种方式对数据进行冗余计算,利用应用层组播来降低网络开销,并在每一个组播点上做恢复运算,使得网络接收端有较大的容错能力,允许在一定的丢包比例范围内不影响媒体流质量,从而能让媒体流在较差的网络中获得较好的效果。本发明主要包括数据包冗余编码、应用层组播、 接收端容错处理几部分。Reliable UDP是目前被广泛使用的UDP防丢包技术,在出现丢包的情况下,接收端通过应用层协议到发送端重新请求丢失的包,因此Reliable UDP在实时性上会大打折扣。本发明和Reliable UDP相比,在保证传输可靠性的前提下,更加实时,逻辑处理上更加简单。UDP是一个不可靠的传输协议,由于其传输速度快,目前被广泛的应用于实时媒体流传输。假设发送端到组播点有10%的丢包率,组播点到接收端也有10%的丢包率,那么, 本来的10个包到达接收端只剩下8个包。这时接收端在播放时,视频质量就不能保证了。另一种Reliable UDP的处理方式是当组播点在丢失了某个数据包之后,会主动到发送端重新请求,发送端会把丢失的数据包重新送给组播点。假设每次重新请求的时间消耗是100ms,如果考虑经过多个组播点转发的情况,延时会更加严重,当延时超过Is的时候,视频质量就不能接受了。并且,传统的组播点的作用是对收到的数据做原封不动的分发,也就是只有路由功能。

发明内容
本发明为了解决上述技术问题,提供了一种不增加网络负担,且具有容错和恢复的功能的媒体流数据包丢失的修复方法。目前的媒体流传输时都具有以下几个关键模块消息头Head :用于描述文件的媒体信息。索引Index :用于存放视频关键帧位置的索引表。媒体流包用于存放实际的视音频数据帧。其中索引中的元素是按照时间戳从小到大的顺序存放,因此可以根据索引中的按时间戳排列好的关键帧的位置,将关键帧I到关键帧2分割成一个小数据包,依次类推将整个媒体流包全部分割。在进行媒体流传输时,就以分割出来的小数据包进行传输。而且每个分割出来的小数据由索引中的关键帧位置信息进行命名。小数据包I代表关键帧I到关键帧2之间的数据包,小数据包2代表关键帧2到关键帧3之间的数据包, 以此类推,小数据包η代表关键帧η到关键帧η+1之间的数据包。这样如果在传输时某个数据包出现丢失,接收端可以根据所接收到的小数据包的名称就立刻判断出是哪个部分的数据包发生了丢失。本发明所述修复方法的另一部分在于,在传输媒体流数据包之前,使用异或的方式作出一个冗余包,然后将媒体流数据包与冗余包一起进行传输;这些数据包由发送端传输到组播点;由组播点对所接收的数据包做丢包检查;如果组播点发现有丢失的数据包, 首先定位丢失的是哪个数据包,然后通过冗余包对所丢失的数据包进行恢复,再用同样的算法做出一个冗余包;组播点将经过检查以及修复的数据包传输到接收端;接收端对所接收的数据包做丢包检查;如果组播点发现有丢失的数据包,首先定位丢失的是哪个数据包, 然后通过冗余包对所丢失的数据包进行恢复。如果在实际的媒体流传输过程中具有多个组播点,则每个组播点都对所接收的数据进行丢包检查,并按照前述的处理方法进行处理。上述对小数据包是否丢失进行检查的方法很简单,只需要将接收到的数据包按文件名称从小到大排列,如果名称的排列是按照阿拉伯数字从小到大顺序连续排列的,并且数据包的数量刚好等于索引中关键帧数量减一,那么说明数据包没有丢失;如果不是上述情况,则可以根据阿拉伯数字的排列中缺少哪一个或哪几个数字而从中找出丢失的相应名称的数据包。本发明的有益效果在于,通过使用索引中的关键帧信息将媒体流分割成小的数据包,使得在传输过程中对数据包的检查更加简单快捷,组播点或者是接收端均能快速定位丢失的数据包。另外,赋予了组播点检查错误和修复错误的功能。因此,在应用本发明的组播网络中,组播点的增加并不是传输的负担,从而让本发明可以广泛用于P2P的实时媒体流应用中。
具体实施例方式假设有一媒体流传输包,其具有以下几个关键模块消息头Head :用于描述文件的媒体信息。
索引Index :用于存放视频关键帧位置的索引表。媒体流包用于存放实际的视音频数据帧。其中索引中的关键帧共有21个,而且这些元素是按照时间戳从小到大的顺序存放,因此可以根据索引中的按时间戳排列好的关键帧的位置,将关键帧I到关键帧2分割成一个小数据包,依次类推将整个媒体流包全部分割。共分割成20个数据包,在进行媒体流传输时,就以分割出来的这20个小数据包进行传输。而且每个分割出来的小数据由索引中的关键帧位置信息进行命名。小数据包I代表关键帧I到关键帧2之间的数据包,小数据包2代表关键帧2到关键帧3之间的数据包, 以此类推,小数据包20代表关键帧20到关键帧21之间的数据包。接收端或者是组播点将接收到的数据包按文件名称从小到大排列,如果名称的排列是按照阿拉伯数字从I到20连续排列的,并且数据包的数量为20,那么说明数据包没有丢失;如果不是上述情况,则可以根据阿拉伯数字的排列中缺少哪一个或哪几个数字而从中找出丢失的相应名称的数据包。另外,在传输媒体流数据包之前,使用异或的方式作出一个冗余包,然后将媒体流数据包与冗余包一起进行传输;这些数据包由发送端传输到组播点;由组播点对所接收的数据包做丢包检查;如果组播点发现有丢失的数据包,首先定位丢失的是哪个数据包,然后通过冗余包对所丢失的数据包进行恢复,再用同样的算法做出一个冗余包;组播点将经过检查以及修复的数据包传输到接收端;接收端对所接收的数据包做丢包检查;如果组播点发现有丢失的数据包,首先定位丢失的是哪个数据包,然后通过冗余包对所丢失的数据包进行恢复。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
权利要求
1.一种媒体流的修复方法,其特征在于所述方法包括以下步骤步骤一根据索引中的按时间戳排列好的关键帧的位置,将关键帧I到关键帧2分割成一个小数据包,依次类推将整个媒体流包全部分割;步骤二 而且每个分割出来的小数据由索引中的关键帧位置信息进行命名,小数据包 I代表关键帧I到关键帧2之间的数据包,小数据包2代表关键帧2到关键帧3之间的数据包,以此类推,小数据包η代表关键帧η到关键帧η+1之间的数据包;步骤三在进行媒体流传输时,就以分割出来的小数据包进行传输;步骤四在传输媒体流数据包之前,使用异或的方式作出一个冗余包,然后将媒体流数据包与冗余包一起进行传输;步骤五这些数据包由发送端传输到组播点,由组播点对所接收的数据包做丢包检查; 如果组播点发现有丢失的数据包,首先定位丢失的是哪个数据包,然后通过冗余包对所丢失的数据包进行恢复,再用同样的算法做出一个冗余包;步骤六组播点将经过检查以及修复的数据包传输到接收端,接收端对所接收的数据包做丢包检查,如果组播点发现有丢失的数据包,首先定位丢失的是哪个数据包,然后通过冗余包对所丢失的数据包进行恢复。
2.权利要求I中所述的媒体流的修复方法,其特征在于所述对小数据包进行丢包检查的方法包括将接收到的数据包按文件名称从小到大排列,如果名称的排列是按照阿拉伯数字从小到大顺序连续排列的,并且数据包的数量刚好等于索引中关键帧数量减一,那么说明数据包没有丢失;否则根据阿拉伯数字的排列中缺少哪一个或哪几个数字而从中找出丢失的相应名称的数据包。
3.权利要求I中所述的媒体流的修复方法,其特征在于根据实际组播点的存在,步骤五可以重复多次。
全文摘要
本发明提供了一种媒体流的修复方法。这种方法包括将媒体流分割成小包,按一定规则对小包命名,按小包进行传输,在传输前通过异或的方法制作出一个冗余包,每个组播点对是否丢失小包进行检查,如果发现丢失数据包则通过冗余包进行恢复,并且将经过恢复的数据包继续向接收端传输,直至完成媒体流的传输。
文档编号H04N7/64GK102595144SQ20111044260
公开日2012年7月18日 申请日期2011年12月27日 优先权日2011年12月27日
发明者李宗霖 申请人:李宗霖
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1