CN112532341A - 一种媒体数据播放方法及装置 - Google Patents
一种媒体数据播放方法及装置 Download PDFInfo
- Publication number
- CN112532341A CN112532341A CN201910876156.9A CN201910876156A CN112532341A CN 112532341 A CN112532341 A CN 112532341A CN 201910876156 A CN201910876156 A CN 201910876156A CN 112532341 A CN112532341 A CN 112532341A
- Authority
- CN
- China
- Prior art keywords
- data
- messages
- fec
- media
- receiving
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000004364 calculation method Methods 0.000 claims description 57
- 238000012545 processing Methods 0.000 claims description 28
- 238000002360 preparation method Methods 0.000 claims description 22
- 238000012937 correction Methods 0.000 claims description 18
- 238000011084 recovery Methods 0.000 claims description 17
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明公开了一种媒体数据播放方法及装置,其中方法为:媒体播放设备接收到N个报文和第一FEC冗余数据;所述N个报文是所述媒体服务器发送的M个报文中的N个;所述第一FEC冗余数据是所述媒体服务器发送的第二FEC冗余数据中的部分或全部;若所述媒体播放设备确定接收所述媒体服务器发送的M个报文过程中发生了报文丢失,且接收所述第二FEC冗余数据过程中无报文丢失,则根据所述第一FEC冗余数据和所述N个报文恢复出所述M个报文中丢失的M‑N个报文;所述媒体播放设备根据所述N个报文和恢复出的所述M‑N个报文进行媒体数据播放。
Description
技术领域
本发明涉及多媒体播放领域,尤其涉及一种媒体数据播放方法及装置。
背景技术
多媒体播放的应用场景下,由于需要源源不断地获取媒体数据,才能播放媒体数据,对媒体数据传输的实时性要求较高。
因此,目前常通过用户数据报协议(User Datagram Protocol,UDP)在网络上进行媒体数据传输。UDP虽然有较高吞吐量和较低延迟的优点,能满足实时性,但它是不可靠的传输协议,不能对所传数据提供担保,可能会出现数据包丢失的问题,从而降低了媒体数据的播放质量。
发明内容
本申请实施例提供一种媒体数据播放方法及装置,解决了现有技术中的问题。
第一方面,本申请实施例提供一种媒体数据播放方法,包括:媒体播放设备接收到N个报文和第一FEC冗余数据;所述N个报文是所述媒体服务器发送的M个报文中的N个;所述第一FEC冗余数据是所述媒体服务器发送的第二FEC冗余数据中的部分或全部;所述第二FEC冗余数据是所述媒体服务器对所述M个报文进行前向纠错编码得到的数据;其中,N,M均为正整数,且N小于或等于M;若所述媒体播放设备确定接收所述媒体服务器发送的M个报文过程中发生了报文丢失,且接收所述第二FEC冗余数据过程中无报文丢失,则根据所述第一FEC冗余数据和所述N个报文恢复出所述M个报文中丢失的M-N个报文;其中,M-N的值小于或等于报文恢复阈值;所述媒体播放设备根据所述N个报文和恢复出的所述M-N个报文进行媒体数据播放。
一种可选实施方式中,所述媒体播放设备根据所述第一FEC冗余数据和所述N个报文恢复出所述M个报文中丢失的M-N个报文,包括:所述媒体播放设备将所述第一FEC冗余数据解析为FEC冗余信息;所述媒体播放设备从所述N个报文中获取K个报文;所述K个报文用于恢复出所述M-N个报文;K为小于或等于N的正整数;所述媒体播放设备根据所述K个报文和所述FEC冗余信息,恢复出所述M个报文中丢失的M-N个报文。
一种可选实施方式中,所述媒体播放设备接收到N个报文和第一FEC冗余数据,包括:所述媒体播放设备创建原始媒体数据接收缓冲区和FEC冗余数据缓冲区;所述媒体播放设备将所述N个报文存入所述原始媒体数据接收缓冲区,将所述第一FEC冗余数据存入所述FEC冗余数据缓冲区;所述媒体播放设备确定接收所述媒体服务器发送的M个报文过程中发生了报文丢失,且接收所述第二FEC冗余数据过程中无报文丢失之后,还包括:所述媒体播放设备创建FEC数据计算缓冲区;所述媒体播放设备将所述FEC冗余信息和所述K个报文存储至所述FEC数据计算缓冲区;所述媒体播放设备对所述FEC数据计算缓冲区中的数据进行解码,恢复出所述M-N个报文。
一种可选实施方式中,所述FEC数据计算缓冲区包括混合数据准备缓冲区、FEC解码计算缓冲区;所述媒体播放设备将所述FEC冗余信息和所述K个报文存储至所述FEC数据计算缓冲区,包括:所述媒体播放设备将所述FEC冗余信息和所述K个报文存储至所述混合数据准备缓冲区;所述媒体播放设备对所述FEC数据计算缓冲区中的数据进行解码,恢复出所述M-N个报文,包括:所述媒体播放设备从所述混合数据准备缓冲区中读取数据至所述FEC解码计算缓冲区;所述媒体播放设备对所述FEC解码计算缓冲区中的数据进行解码,恢复出所述M-N个报文。
第二方面,本申请实施例提供一种媒体数据播放方法,包括:媒体服务器对M个报文进行前向纠错编码,获取第二FEC冗余数据;所述媒体服务器向媒体播放设备发送所述M个报文和所述第二FEC冗余数据;所述第二FEC冗余数据用于:所述媒体播放设备在接收所述第二FEC冗余数据过程中无报文丢失,且接收所述M个报文过程中发生了报文丢失时,根据所述媒体播放设备接收到的第一FEC冗余数据和接收到的N个报文恢复出所述M个报文中丢失的M-N个报文;其中,N,M均为正整数,M-N的值小于或等于报文恢复阈值。
第三方面,本申请提供一种媒体数据播放装置,包括:接收模块,用于接收到N个报文和第一FEC冗余数据;所述N个报文是媒体服务器发送的M个报文中的N个;所述第一FEC冗余数据是所述媒体服务器发送的第二FEC冗余数据中的部分或全部;所述第二FEC冗余数据是所述媒体服务器对所述M个报文进行前向纠错编码得到的数据;其中,N,M均为正整数,且N小于或等于M;处理模块,用于确定接收所述媒体服务器发送的M个报文过程中发生了报文丢失,且接收所述第二FEC冗余数据过程中无报文丢失,则根据所述第一FEC冗余数据和所述N个报文恢复出所述M个报文中丢失的M-N个报文;其中,M-N的值小于或等于报文恢复阈值;播放模块,用于根据所述N个报文和恢复出的所述M-N个报文进行媒体数据播放。
一种可选实施方式中,所述处理模块具体用于:将所述第一FEC冗余数据解析为FEC冗余信息;所述媒体播放设备从所述N个报文中获取K个报文;所述K个报文用于恢复出所述M-N个报文;K为小于或等于N的正整数;根据所述K个报文和所述FEC冗余信息,恢复出所述M个报文中丢失的M-N个报文。
一种可选实施方式中,所述接收模块具体用于:创建原始媒体数据接收缓冲区和FEC冗余数据缓冲区;将所述N个报文存入所述原始媒体数据接收缓冲区,将所述第一FEC冗余数据存入所述FEC冗余数据缓冲区;所述处理模块还用于:创建FEC数据计算缓冲区;将所述FEC冗余信息和所述K个报文存储至所述FEC数据计算缓冲区;对所述FEC数据计算缓冲区中的数据进行解码,恢复出所述M-N个报文。
一种可选实施方式中,所述FEC数据计算缓冲区包括混合数据准备缓冲区、FEC解码计算缓冲区;所述处理模块具体用于:将所述FEC冗余信息和所述K个报文存储至所述混合数据准备缓冲区;从所述混合数据准备缓冲区中读取数据至所述FEC解码计算缓冲区;对所述FEC解码计算缓冲区中的数据进行解码,恢复出所述M-N个报文。
第四方面,本申请提供一种媒体数据播放装置,包括:编码模块,用于对M个报文进行前向纠错编码,获取第二FEC冗余数据;发送模块,用于向媒体播放设备发送所述M个报文和所述第二FEC冗余数据;所述第二FEC冗余数据用于:所述媒体播放设备在接收所述第二FEC冗余数据过程中无报文丢失,且接收所述M个报文过程中发生了报文丢失时,根据所述媒体播放设备接收到的第一FEC冗余数据和接收到的N个报文恢复出所述M个报文中丢失的M-N个报文;其中,N,M均为正整数,M-N的值小于或等于报文恢复阈值。
第五方面,本申请实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个实施例或上述第二方面的方法。
第六方面,本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个实施例或上述第二方面的方法。
上述方法中,媒体服务器向媒体播放设备发送了M个报文和第二FEC冗余数据,媒体播放设备获取到了N个报文和第一FEC冗余数据;若所述媒体播放设备确定接收所述M个报文过程中发生了报文丢失,且接收所述第二FEC冗余数据过程中无报文丢失,说明N小于M,M个报文中有一部分报文丢失,而且说明第一FEC冗余数据即为第二FEC冗余数据,而第二FEC冗余数据是媒体服务器对所述M个报文进行前向纠错编码得到的数据,而当M-N的值小于或等于报文恢复阈值时,通过前向纠错编码,从而可以根据第一FEC冗余数据和N个报文恢复出丢失的M-N个报文,媒体播放设备根据N个报文和恢复出的M-N个报文进行媒体数据播放,相对于直接播放N个报文,其播放质量更高。
附图说明
图1为本申请实施例提供的一种媒体数据播放方法的步骤流程示意图;
图2为本申请实施例提供的一种媒体数据播放方法的接收端数据流示意图;
图3为本申请实施例提供的一种媒体数据播放方法的时序示意图;
图4为本申请实施例提供的一种媒体数据播放方法的具体流程示意图;
图5为本申请实施例提供的一种媒体数据播放装置的结构示意图;
图6为本申请实施例提供的一种媒体数据传输装置的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图及具体的实施方式对上述技术方案进行详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互结合。
多媒体(Multimedia)是多种媒体的综合,一般包括文本,声音和图像等多种媒体形式。在计算机系统中,多媒体指组合两种或两种以上媒体的一种人机交互式信息交流和传播媒体。使用的媒体包括文字、图片、照片、声音、动画和影片,以及程式所提供的互动功能。多媒体技术就是通过计算机对语言文字、数据、音频、视频等各种信息进行存储和管理,使用户能够通过多种感官跟计算机进行实时信息交流的技术。
多媒体播放就是通过多媒体播放设备播放上述语言文字、数据、音频、视频的技术。多媒体播放一般要持续一段时间,这就需要源源不断地获取媒体数据,才能实时播放,因此这对媒体数据传输的实时性要求较高。目前常通过用户数据报协议(User DatagramProtocol,UDP)在网络上进行媒体数据传输的方法虽然有较高吞吐量和较低延迟的优点,能满足实时性,但它是不可靠的传输协议,不能对所传数据提供担保,可能会出现数据包丢失的问题,从而降低了媒体数据的播放质量。
为此,本申请实施例提供一种媒体数据播放方法。如图1所示,为本申请实施例提供一种媒体数据播放方法的步骤流程示意图。
步骤101:媒体播放设备接收到N个报文和第一FEC冗余数据。
其中,FEC为前向纠错编码(forward error correction,FEC)。
步骤102:若所述媒体播放设备确定接收所述媒体服务器发送的M个报文过程中发生了报文丢失,且接收所述第二FEC冗余数据过程中无报文丢失,则根据所述第一FEC冗余数据和所述N个报文恢复出所述M个报文中丢失的M-N个报文;其中,M-N的值小于或等于报文恢复阈值。
步骤103:所述媒体播放设备根据所述N个报文和恢复出的所述M-N个报文进行媒体数据播放。
步骤101之前,执行了以下步骤:
媒体服务器对M个报文进行前向纠错编码,获取第二FEC冗余数据。所述媒体服务器向媒体播放设备发送所述M个报文和所述第二FEC冗余数据。
需要说明的是,媒体服务器向媒体播放设备发送所述M个报文和所述第二FEC冗余数据可能会出现报文丢失,媒体播放设备最多只能收到M个报文和全部的第二FEC冗余数据,第二冗余数据也由多个报文组成。无论是所述M个报文还是所述第二FEC冗余数据丢失,丢失的报文的最小单位是一个报文。也就是说,针对M个报文中每个报文,要么该报文成功发送到媒体播放设备,要么该报文丢失。
所述第二FEC冗余数据用于:所述媒体播放设备在接收所述第二FEC冗余数据过程中无报文丢失,且接收所述M个报文过程中发生了报文丢失时,根据所述媒体播放设备接收到的第一FEC冗余数据和接收到的N个报文恢复出所述M个报文中丢失的M-N个报文;其中,N,M均为正整数,M-N的值小于或等于报文恢复阈值。
其中,接收所述第二FEC冗余数据过程中无报文丢失,且接收所述M个报文过程中发生了报文丢失时,第一FEC冗余数据即为第二FEC冗余数据。无论是第二FEC冗余数据还是M个报文,均可根据实时传输协议(Real-time Transport Protocol,RTP)序号判断是否存在报文丢失。举例来说,媒体服务器在开始传输M个报文之前,与媒体播放设备约定了一个初始RTP序号,比如1000;同时与媒体播放设备约定一个报文的字节长度,比如100;当媒体播放设备接收到一个或多个报文后,会检验这一个或多个报文的RTP序号是否连续。举例来说,收到了3个报文,起始的RTP序号为依次为1000、1100和1200,说明这3个报文是连续的,并未发生报文丢失;再如,收到了3个报文,起始的RTP序号为依次为1000、1100和1300,说明这3个报文中缺少了1200,因此发生了报文丢失。
步骤101中,所述N个报文是所述媒体服务器发送的M个报文中的N个;所述第一FEC冗余数据是所述媒体服务器发送的第二FEC冗余数据中的部分或全部;所述第二FEC冗余数据是所述媒体服务器对所述M个报文进行前向纠错编码得到的数据;其中,N,M均为正整数,且N小于或等于M。
步骤102中,M-N的值小于或等于报文恢复阈值。
需要说明的是,前向纠错编码(FEC)技术是在不可靠或强噪声干扰的信道中传输数据时用来控制错误的一项技术,FEC具有引入级联信道编码等增益编码技术的特点,可以自动纠正传输误码的优点。FEC的冗余部分允许接收方检测可能出现在信息任何地方的有限个差错,并且通常可以纠正这些差错而不用重传。但需要在一些前提条件才能恢复,步骤102能进行的前提条件为M-N的值小于或等于报文恢复阈值,这个报文恢复阈值是M个报文和第二FEC冗余数据确定后客观上固有的,并不是人为设定的。以FEC中以汉明码为例,假如D4 D3 D2 D1为原报文,P3 P2 P1为汉明码,那么想根据P3 P2 P1和D4 D3 D2 D1中的一部分恢复出D4 D3 D2 D1,必须要满足D4 D3 D2 D1丢失的码位小于或等于1。
步骤103中,所述媒体播放设备根据所述N个报文和恢复出的所述M-N个报文进行媒体数据播放。
步骤102的一种可选实施方式如下:
所述媒体播放设备将所述第一FEC冗余数据解析为FEC冗余信息;所述媒体播放设备从所述N个报文中获取恢复出所述M-N个报文必需的K个报文;K为小于或等于N的正整数;所述媒体播放设备根据所述K个报文和所述FEC冗余信息,恢复出所述M个报文中丢失的M-N个报文。
需要说明的是,媒体播放设备是不能直接识别第一FEC冗余数据的,需要将第一FEC冗余数据解析出FEC冗余信息。FEC冗余信息指示出了可恢复的报文范围,在步骤102中即为M个报文,以及整个FEC冗余信息共包含的报文个数,也就是说0~M个报文范围内中丢失的报文数小于预设报文阈值时,都可以恢复。可根据FEC冗余信息选择K个报文,通过K个报文和FEC冗余信息恢复出所述M-N个报文。K个报文为N个报文中的一部分。一些情况下,并不需要全部的N个报文,便能恢复出M-N个报文。具体可视M-N个报文的丢失个数而定,当丢失的M-N个报文小于报文恢复阈值,只需要其中的K个报文即可恢复出M-N个报文。
步骤101~步骤103所示的方法,可以通过媒体播放设备开辟数据缓冲区来进行,具体可采用如下实施方式:
第一步、所述媒体播放设备的数据接收模块创建原始媒体数据接收缓冲区、媒体播放缓冲区和FEC冗余数据缓冲区。
第二步、所述媒体播放设备将所述N个报文存入所述原始媒体数据接收缓冲区,将所述第一FEC冗余数据存入所述FEC冗余数据缓冲区。
需要说明的是,第二步中,媒体播放设备接收N个报文和第一FEC冗余数据时,均可以通过数据接收线程来接收N个报文,并存入相应的缓冲区。
第三步、所述媒体播放设备创建FEC数据计算缓冲区。
第四步、所述媒体播放设备将所述FEC冗余信息和所述K个报文存储至所述FEC数据计算缓冲区。
第五步、所述媒体播放设备对所述FEC数据计算缓冲区中的数据进行解码,恢复出所述M-N个报文。
其中,第四步中FEC数据计算缓冲区可分为混合数据准备缓冲区、FEC解码计算缓冲区、FEC解码成功缓冲区三部分。第四步具体可以为:
所述媒体播放设备将所述FEC冗余信息和所述K个报文存储至所述混合数据准备缓冲区。
第五步具体可以为:所述媒体播放设备从所述混合数据准备缓冲区中读取数据至所述FEC解码计算缓冲区;所述媒体播放设备对所述FEC解码计算缓冲区中的数据进行解码,恢复出所述M-N个报文。
第五步中,所述媒体播放设备对所述FEC解码计算缓冲区中的数据进行解码的解码算法可以为所罗门算法,其它解码算法也可,在此不做限定。
第五步之后,媒体播放设备可以把恢复成功的M-N个报文和N个报文从FEC解码计算缓冲区注入到FEC解码成功缓冲区,以供媒体播放模块需要读取数据时,可读取此缓冲区数据到媒体播放缓冲区完成播放。
上述第一步~第五步通过合理创建数据缓冲区存储各类数据,对数据进行实时计算,然后根据不同的情况对数据进行合理调度处理,保证了播放数据合理及时的处理完成,保证了播放的流畅性和实时性。
如图2所示,本申请实施例提供了一种媒体数据播放方法的接收端数据流示意图。
第一步、从网络层传输M个报文和第二FEC冗余数据至传输层。
第二步、媒体播放设备的数据接收模块从传输层接收N个报文和第一FEC冗余数据。
其中,传输层的通信协议可以为用户数据报协议(User Datagram Protocol,UDP)协议。
第三步、数据接收模块将N个报文解析为源码流,将第一FEC冗余数据解析为FEC冗余信息,并发送至FEC处理模块。
第四步、FEC处理模块将源码流和FEC冗余信息处理为RTP数据流。
第五步、媒体处理模块接收RTP数据流,媒体处理模块若通过RTP数据流确定N个报文不存在报文丢失,则将处理后的RTP数据流在应用上播放;媒体处理模块若通过RTP数据流确定N个报文存在报文丢失且第一FEC冗余数据不存在报文丢失,则控制FEC处理模块恢复出丢失的M-N个报文,并根据N个报文和恢复出的M-N个报文,重新形成RTP数据流在应用上播放。
下面结合图3和图4详细说明,如图3所示,为本申请实施例提供的一种媒体数据播放方法的时序示意图。
步骤301:数据接收模块创建原始媒体数据缓冲区、FEC冗余数据缓冲区、媒体播放缓冲区。
步骤302:数据接收模块从数据源接收数据。
具体可以通过UDP协议接收,接收的数据包括N个报文和第一FEC冗余数据。
步骤303:数据接收模块将N个报文存储至原始媒体数据缓冲区,将第一FEC冗余数据存储至FEC冗余数据缓冲区。
步骤304:数据处理模块若确定N个报文存在报文丢失,且FEC冗余数据缓冲区中的第一FEC冗余数据无报文丢失,则创建FEC数据计算缓冲区。
步骤305:数据处理模块将原始媒体数据缓冲区中的N个报文和FEC冗余数据缓冲区中的第一FEC冗余数据存储至FEC数据计算缓冲区。
步骤306:数据处理模块对FEC数据计算缓冲区中的数据进行恢复,并将恢复后的数据存储至媒体播放缓冲区。
如图4所示,为本申请实施例提供的一种媒体数据播放方法的具体流程示意图。需要说明的是,图4示出的具体流程示意图为媒体播放设备确定M个报文有丢失后的具体步骤流程图。
步骤401:确定N个报文存在报文丢失。
步骤402:读取第一FEC冗余数据,根据FEC数据结构解析出FEC冗余信息,创建FEC数据计算缓冲区。
FEC数据计算缓冲区包括:混合数据准备缓冲区、FEC解码计算缓冲区、FEC解码成功缓冲区三部分。
步骤403:读取N个报文、FEC冗余信息到混合数据准备缓冲区。
步骤404:确定混合数据准备缓冲区中是否有足够FEC解码数据?
若是执行步骤405,若否,执行步骤403。
步骤405:混合数据准备缓冲区数据注入FEC解码计算缓冲区。
步骤406:确定FEC解码是否成功。
若是,执行步骤407;若否,直接结束流程。
步骤407:FEC解码计算缓冲区数据注入FEC解码成功缓冲区。
FEC解码成功后,把数据从FEC解码计算缓冲区注入到FEC解码成功缓冲区,此缓冲区的作用等同于原始媒体数据接收缓冲区,如果媒体播放模块需要读取数据时,可读取此缓冲区数据到媒体播放缓冲区完成播放。
步骤408:读取FEC解码成功缓冲区的数据到媒体播放缓冲区。
步骤101~步骤102的方法中,媒体服务器向媒体播放设备发送了M个报文和第二FEC冗余数据,媒体播放设备获取到了N个报文和第一FEC冗余数据;若所述媒体播放设备确定接收所述M个报文过程中发生了报文丢失,且接收所述第二FEC冗余数据过程中无报文丢失,说明N小于M,M个报文中有一部分报文丢失,而且说明第一FEC冗余数据即为第二FEC冗余数据,而第二FEC冗余数据是媒体服务器对所述M个报文进行前向纠错编码得到的数据,而当M-N的值小于或等于报文恢复阈值时,通过前向纠错编码,从而可以根据第一FEC冗余数据和N个报文恢复出丢失的M-N个报文,媒体播放设备根据N个报文和恢复出的M-N个报文进行媒体数据播放,相对于直接播放N个报文,其播放质量更高。
如图5所示,本申请提供一种媒体数据播放装置,包括:接收模块501,用于接收到N个报文和第一FEC冗余数据;所述N个报文是媒体服务器发送的M个报文中的N个;所述第一FEC冗余数据是所述媒体服务器发送的第二FEC冗余数据中的部分或全部;所述第二FEC冗余数据是所述媒体服务器对所述M个报文进行前向纠错编码得到的数据;其中,N,M均为正整数,且N小于或等于M;处理模块502,用于确定接收所述媒体服务器发送的M个报文过程中发生了报文丢失,且接收所述第二FEC冗余数据过程中无报文丢失,则根据所述第一FEC冗余数据和所述N个报文恢复出所述M个报文中丢失的M-N个报文;其中,M-N的值小于或等于报文恢复阈值;播放模块503,用于根据所述N个报文和恢复出的所述M-N个报文进行媒体数据播放。
一种可选实施方式中,所述处理模块502具体用于:将所述第一FEC冗余数据解析为FEC冗余信息;所述媒体播放设备从所述N个报文中获取K个报文;所述K个报文用于恢复出所述M-N个报文;K为小于或等于N的正整数;根据所述K个报文和所述FEC冗余信息,恢复出所述M个报文中丢失的M-N个报文。
一种可选实施方式中,所述接收模块501具体用于:创建原始媒体数据接收缓冲区和FEC冗余数据缓冲区;将所述N个报文存入所述原始媒体数据接收缓冲区,将所述第一FEC冗余数据存入所述FEC冗余数据缓冲区;所述处理模块502还用于:创建FEC数据计算缓冲区;将所述FEC冗余信息和所述K个报文存储至所述FEC数据计算缓冲区;对所述FEC数据计算缓冲区中的数据进行解码,恢复出所述M-N个报文。
一种可选实施方式中,所述FEC数据计算缓冲区包括混合数据准备缓冲区、FEC解码计算缓冲区;所述处理模块502具体用于:将所述FEC冗余信息和所述K个报文存储至所述混合数据准备缓冲区;从所述混合数据准备缓冲区中读取数据至所述FEC解码计算缓冲区;对所述FEC解码计算缓冲区中的数据进行解码,恢复出所述M-N个报文。
如图6所示,本申请实施例提供的一种媒体数据传输装置,包括:编码模块601,用于对M个报文进行前向纠错编码,获取第二FEC冗余数据;发送模块602,用于向媒体播放设备发送所述M个报文和所述第二FEC冗余数据;所述第二FEC冗余数据用于:所述媒体播放设备在接收所述第二FEC冗余数据过程中无报文丢失,且接收所述M个报文过程中发生了报文丢失时,根据所述媒体播放设备接收到的第一FEC冗余数据和接收到的N个报文恢复出所述M个报文中丢失的M-N个报文;其中,N,M均为正整数,M-N的值小于或等于报文恢复阈值。
本申请实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种媒体数据播放方法及任一可选方法。
本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种媒体数据播放方法及任一可选方法。
最后应说明的是:本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种媒体数据播放方法,其特征在于,包括:
媒体播放设备接收到N个报文和第一FEC冗余数据;所述N个报文是所述媒体服务器发送的M个报文中的N个;所述第一FEC冗余数据是所述媒体服务器发送的第二FEC冗余数据中的部分或全部;所述第二FEC冗余数据是所述媒体服务器对所述M个报文进行前向纠错编码得到的数据;其中,N,M均为正整数,且N小于或等于M;
若所述媒体播放设备确定接收所述媒体服务器发送的M个报文过程中发生了报文丢失,且接收所述第二FEC冗余数据过程中无报文丢失,则根据所述第一FEC冗余数据和所述N个报文恢复出所述M个报文中丢失的M-N个报文;其中,M-N的值小于或等于报文恢复阈值;
所述媒体播放设备根据所述N个报文和恢复出的所述M-N个报文进行媒体数据播放。
2.如权利要求1所述的方法,其特征在于,所述媒体播放设备根据所述第一FEC冗余数据和所述N个报文恢复出所述M个报文中丢失的M-N个报文,包括:
所述媒体播放设备将所述第一FEC冗余数据解析为FEC冗余信息;
所述媒体播放设备从所述N个报文中获取K个报文;所述K个报文用于恢复出所述M-N个报文;K为小于或等于N的正整数;
所述媒体播放设备根据所述K个报文和所述FEC冗余信息,恢复出所述M个报文中丢失的M-N个报文。
3.如权利要求2所述的方法,其特征在于,所述媒体播放设备接收到N个报文和第一FEC冗余数据,包括:
所述媒体播放设备创建原始媒体数据接收缓冲区和FEC冗余数据缓冲区;
所述媒体播放设备将所述N个报文存入所述原始媒体数据接收缓冲区,将所述第一FEC冗余数据存入所述FEC冗余数据缓冲区;
所述媒体播放设备确定接收所述媒体服务器发送的M个报文过程中发生了报文丢失,且接收所述第二FEC冗余数据过程中无报文丢失之后,还包括:所述媒体播放设备创建FEC数据计算缓冲区;
所述媒体播放设备将所述FEC冗余信息和所述K个报文存储至所述FEC数据计算缓冲区;
所述媒体播放设备对所述FEC数据计算缓冲区中的数据进行解码,恢复出所述M-N个报文。
4.如权利要求3所述的方法,其特征在于,所述FEC数据计算缓冲区包括混合数据准备缓冲区、FEC解码计算缓冲区;所述媒体播放设备将所述FEC冗余信息和所述K个报文存储至所述FEC数据计算缓冲区,包括:
所述媒体播放设备将所述FEC冗余信息和所述K个报文存储至所述混合数据准备缓冲区;
所述媒体播放设备对所述FEC数据计算缓冲区中的数据进行解码,恢复出所述M-N个报文,包括:
所述媒体播放设备从所述混合数据准备缓冲区中读取数据至所述FEC解码计算缓冲区;
所述媒体播放设备对所述FEC解码计算缓冲区中的数据进行解码,恢复出所述M-N个报文。
5.一种媒体数据传输方法,其特征在于,包括:
媒体服务器对M个报文进行前向纠错编码,获取第二FEC冗余数据;
所述媒体服务器向媒体播放设备发送所述M个报文和所述第二FEC冗余数据;所述第二FEC冗余数据用于:所述媒体播放设备在接收所述第二FEC冗余数据过程中无报文丢失,且接收所述M个报文过程中发生了报文丢失时,根据所述媒体播放设备接收到的第一FEC冗余数据和接收到的N个报文恢复出所述M个报文中丢失的M-N个报文;其中,N,M均为正整数,M-N的值小于或等于报文恢复阈值。
6.一种媒体数据播放装置,其特征在于,包括:
接收模块,用于接收到N个报文和第一FEC冗余数据;所述N个报文是媒体服务器发送的M个报文中的N个;所述第一FEC冗余数据是所述媒体服务器发送的第二FEC冗余数据中的部分或全部;所述第二FEC冗余数据是所述媒体服务器对所述M个报文进行前向纠错编码得到的数据;其中,N,M均为正整数,且N小于或等于M;
处理模块,用于确定接收所述媒体服务器发送的M个报文过程中发生了报文丢失,且接收所述第二FEC冗余数据过程中无报文丢失,则根据所述第一FEC冗余数据和所述N个报文恢复出所述M个报文中丢失的M-N个报文;其中,M-N的值小于或等于报文恢复阈值;
播放模块,用于根据所述N个报文和恢复出的所述M-N个报文进行媒体数据播放。
7.如权利要求6所述的装置,其特征在于,所述处理模块具体用于:
将所述第一FEC冗余数据解析为FEC冗余信息;
所述媒体播放设备从所述N个报文中获取K个报文;所述K个报文用于恢复出所述M-N个报文;K为小于或等于N的正整数;
根据所述K个报文和所述FEC冗余信息,恢复出所述M个报文中丢失的M-N个报文。
8.如权利要求7所述的装置,其特征在于,所述接收模块具体用于:
创建原始媒体数据接收缓冲区和FEC冗余数据缓冲区;
将所述N个报文存入所述原始媒体数据接收缓冲区,将所述第一FEC冗余数据存入所述FEC冗余数据缓冲区;
所述处理模块还用于:
创建FEC数据计算缓冲区;
将所述FEC冗余信息和所述K个报文存储至所述FEC数据计算缓冲区;
对所述FEC数据计算缓冲区中的数据进行解码,恢复出所述M-N个报文。
9.如权利要求8所述的装置,其特征在于,所述FEC数据计算缓冲区包括混合数据准备缓冲区、FEC解码计算缓冲区;所述处理模块具体用于:
将所述FEC冗余信息和所述K个报文存储至所述混合数据准备缓冲区;
从所述混合数据准备缓冲区中读取数据至所述FEC解码计算缓冲区;
对所述FEC解码计算缓冲区中的数据进行解码,恢复出所述M-N个报文。
10.一种媒体数据传输装置,其特征在于,包括:
编码模块,用于对M个报文进行前向纠错编码,获取第二FEC冗余数据;
发送模块,用于向媒体播放设备发送所述M个报文和所述第二FEC冗余数据;所述第二FEC冗余数据用于:所述媒体播放设备在接收所述第二FEC冗余数据过程中无报文丢失,且接收所述M个报文过程中发生了报文丢失时,根据所述媒体播放设备接收到的第一FEC冗余数据和接收到的N个报文恢复出所述M个报文中丢失的M-N个报文;其中,N,M均为正整数,M-N的值小于或等于报文恢复阈值。
11.一种计算机设备,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至4或5中任意一项所述的方法被执行。
12.一种存储介质,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至4或5中任意一项所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910876156.9A CN112532341A (zh) | 2019-09-17 | 2019-09-17 | 一种媒体数据播放方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910876156.9A CN112532341A (zh) | 2019-09-17 | 2019-09-17 | 一种媒体数据播放方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112532341A true CN112532341A (zh) | 2021-03-19 |
Family
ID=74974857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910876156.9A Pending CN112532341A (zh) | 2019-09-17 | 2019-09-17 | 一种媒体数据播放方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112532341A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1482779A (zh) * | 2002-09-13 | 2004-03-17 | 北京威速科技有限公司 | 互联网多媒体实时通信中的前向纠错方法 |
CN101030832A (zh) * | 2006-03-03 | 2007-09-05 | 华为技术有限公司 | 实现实时传输协议报文冗余机制的方法及其系统 |
CN101184034A (zh) * | 2006-11-17 | 2008-05-21 | 株式会社东芝 | 通信设备和通信方法 |
WO2011079763A1 (zh) * | 2009-12-28 | 2011-07-07 | 华为技术有限公司 | 一种fec数据的处理方法、装置及系统 |
CN102790666A (zh) * | 2011-05-17 | 2012-11-21 | 华为终端有限公司 | 差错控制的方法、接收端、发送端和系统 |
CN107241166A (zh) * | 2017-06-12 | 2017-10-10 | 京信通信系统(中国)有限公司 | 一种长期演进上的语音Volte数据保障方法和设备 |
CN108809893A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种视频质量评估方法和设备 |
-
2019
- 2019-09-17 CN CN201910876156.9A patent/CN112532341A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1482779A (zh) * | 2002-09-13 | 2004-03-17 | 北京威速科技有限公司 | 互联网多媒体实时通信中的前向纠错方法 |
CN101030832A (zh) * | 2006-03-03 | 2007-09-05 | 华为技术有限公司 | 实现实时传输协议报文冗余机制的方法及其系统 |
CN101184034A (zh) * | 2006-11-17 | 2008-05-21 | 株式会社东芝 | 通信设备和通信方法 |
WO2011079763A1 (zh) * | 2009-12-28 | 2011-07-07 | 华为技术有限公司 | 一种fec数据的处理方法、装置及系统 |
CN102790666A (zh) * | 2011-05-17 | 2012-11-21 | 华为终端有限公司 | 差错控制的方法、接收端、发送端和系统 |
CN108809893A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种视频质量评估方法和设备 |
CN107241166A (zh) * | 2017-06-12 | 2017-10-10 | 京信通信系统(中国)有限公司 | 一种长期演进上的语音Volte数据保障方法和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111107297B (zh) | 一种视频传输方法、装置、资源服务器和存储介质 | |
US9246630B2 (en) | Method, device, and system for forward error correction | |
JP4321284B2 (ja) | ストリーミングデータ送信装置、および情報配信システム | |
JP5442816B2 (ja) | 可変fecオーバヘッド及び保護期間を利用したストリーミング及びバッファリング | |
RU2611975C2 (ru) | Устройство и способ передачи и приема пакетов в системе вещания и связи | |
US10164736B2 (en) | Systems, methods, apparatus, and computer program products for providing forward error correction with low latency | |
CN106656422A (zh) | 一种动态调整fec冗余度的流媒体传输方法 | |
JP2004507147A (ja) | 低時間遅れデータエンコーダ | |
CN101394252A (zh) | 一种基于rtp的数据传输方法 | |
CN104661042A (zh) | 一种传输流的传输方法、装置和系统 | |
US8484540B2 (en) | Data transmitting device, control method therefor, and program | |
CN110708569B (zh) | 一种视频处理方法、装置、电子设备及存储介质 | |
CN110970039A (zh) | 一种音频传输方法、装置、电子设备和存储介质 | |
JP4083678B2 (ja) | 暗号化されたフレームの次のパケットにおいて冗長なストリーム暗号情報 | |
CN113783661B (zh) | 在通信系统中发送和接收分组的方法和装置 | |
CN112532341A (zh) | 一种媒体数据播放方法及装置 | |
CN106937127A (zh) | 一种智能搜索准备的显示方法及其系统 | |
JP2007324876A (ja) | データ送信装置、データ受信装置、データ送信方法、データ受信方法、及びプログラム | |
CN104796732A (zh) | 一种音视频编辑方法及装置 | |
JP2010034898A (ja) | データ送信装置及びデータ送信方法 | |
EP2654311B1 (en) | Synchronization method and synchronization apparatus for multicast group quick access, and terminal | |
JP2012151622A (ja) | 受信端末、パケットデータ受信方法、送信端末、送受信システム、中継端末およびパケットデータの中継方法 | |
US8819526B2 (en) | Method and apparatus for recovering burst data loss by duplicating block code symbols | |
CN106534137B (zh) | 媒体流传输方法及装置 | |
CN104661043A (zh) | 一种传输流的传输方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |