CN114900716A - 云视频数据的传输方法、云平台、云终端及介质 - Google Patents
云视频数据的传输方法、云平台、云终端及介质 Download PDFInfo
- Publication number
- CN114900716A CN114900716A CN202210513537.2A CN202210513537A CN114900716A CN 114900716 A CN114900716 A CN 114900716A CN 202210513537 A CN202210513537 A CN 202210513537A CN 114900716 A CN114900716 A CN 114900716A
- Authority
- CN
- China
- Prior art keywords
- code stream
- video
- error correction
- forward error
- video 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000005540 biological transmission Effects 0.000 title claims abstract description 33
- 238000012937 correction Methods 0.000 claims abstract description 295
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
-
- 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/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开实施例提供了一种云视频数据的传输方法、云平台、云终端及计算机可读存储介质,涉及计算机技术领域。该方法包括:将视频数据进行视频编码获得视频码流,其中视频码流包括多个视频数据包;获取业务场景信息、编码信息和第一网络状态;根据业务场景信息、编码信息和第一网络状态确定前向纠错的冗余度;基于前向纠错的冗余度对视频码流进行冗余编码获得前向纠错码流,其中前向纠错码流包括多个与视频数据包对应的冗余数据包;将前向纠错的冗余度发送至云终端;将视频码流和前向纠错码流发送至云终端。本公开实施例提供的方案可以动态调整前向纠错的冗余度,从而保证播放视频的稳定。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种云视频数据的传输方法、云平台、云终端及计算机可读存储介质。
背景技术
相关技术中,在云终端丢失视频码流的视频数据包时,向云平台请求对丢失的视频码流的视频数据包进行重新传送,在接收到丢失的视频码流的视频数据包后,对视频码流的视频数据包进行解码,因此会导致云终端的视频的卡顿,导致不好的用户体验。
发明内容
本公开实施例提供了一种云视频数据的传输方法、云平台、云终端及计算机可读存储介质,可以动态调整前向纠错的冗余度,从而保证播放视频的稳定。
本公开实施例提供了一种云视频数据的传输方法,应用于云平台,该方法包括:将视频数据进行视频编码获得视频码流,其中视频码流包括多个视频数据包;获取业务场景信息、编码信息和第一网络状态;根据业务场景信息、编码信息和第一网络状态确定前向纠错的冗余度;基于前向纠错的冗余度对视频码流进行冗余编码获得前向纠错码流,其中前向纠错码流包括多个与视频数据包对应的冗余数据包;将前向纠错的冗余度发送至云终端;将视频码流和前向纠错码流发送至云终端。
本公开实施例提供了一种云视频数据的传输方法,应用于云终端,包括:接收云平台发送的前向纠错的冗余度;接收云平台发送的视频码流和前向纠错码流,其中视频码流包括多个视频数据包,前向纠错码流包括多个与视频数据包对应的冗余数据包;将第二网络状态发送至云平台以使云平台确定第一网络状态;在发生丢失视频码流的视频数据包时,通过前向纠错码流的对应冗余数据包对丢失的视频码流的视频数据包进行恢复;使用恢复的视频码流的视频数据包和已接收的视频码流的视频数据包进行解码。
本公开实施例提供了一种云平台,该云平台包括:视频编码器,用于将视频数据进行视频编码获得视频码流,其中视频码流包括多个视频数据包;前向纠错参数配置器,用于获取业务场景信息、编码信息和第一网络状态;前向纠错参数配置器,还用于根据业务场景信息、编码信息和第一网络状态确定前向纠错的冗余度;前向纠错编码器,用于基于前向纠错的冗余度对视频码流进行冗余编码获得前向纠错码流,其中前向纠错码流包括多个与视频数据包对应的冗余数据包;第一传输器,用于将前向纠错的冗余度发送至云终端;第一传输器,还用于将视频码流和前向纠错码流发送至云终端。
在本公开的一些实施例中,业务场景信息包括视频数据的业务类型,编码信息包括视频码率、帧率和分辨率,第一网络状态包括丢包率和时延。
在本公开的一些实施例中,前向纠错参数配置器还用于执行以下步骤:根据业务场景信息、编码信息和第一网络状态,通过查询阈值表格以获得前向纠错的冗余度;其中,阈值表格为根据理论计算和/或实际经验编制的、不同业务场景信息、编码信息和第一网络状态与不同前向纠错的冗余度的对应关系表格。
在本公开的一些实施例中,第一传输器还用于执行以下步骤:基于用户数据报协议UDP将视频码流和前向纠错码流发送至云终端。
在本公开的一些实施例中,前向纠错编码器还用于执行以下步骤:根据前向纠错的冗余度确定视频码流的视频数据包与前向纠错码流的冗余数据包的比例;将编码参数分别与视频码流的对应数量的视频数据包相乘后再相加以获得前向纠错码流的冗余数据包。
在本公开的一些实施例中,第一传输器还用于执行以下步骤:在云视频数据为带内传输时,将视频码流的视频数据包与对应的前向纠错码流的冗余数据包顺序编号后,发送至云终端;在云视频数据为带外传输时,将视频码流的视频数据包与前向纠错码流的冗余数据包分别顺序编号后,发送至云终端。
本公开实施例提供了一种云终端,该云终端包括:接收器,用于接收云平台发送的前向纠错的冗余度;接收器,还用于接收云平台发送的视频码流和前向纠错码流,其中视频码流包括多个视频数据包,前向纠错码流包括多个与视频数据包对应的冗余数据包;第二传输器,用于将第二网络状态发送至云平台以使云平台确定第一网络状态;前向纠错解码器,用于在发生丢失视频码流的视频数据包时,通过前向纠错码流的对应冗余数据包对丢失的视频码流的视频数据包进行恢复;视频解码器,用于使用恢复的视频码流的视频数据包和已接收的视频码流的视频数据包进行解码。
在本公开的一些实施例中,前向纠错解码器进一步用于执行以下步骤:在接收云平台发送的视频码流的视频数据包和前向纠错码流的对应冗余数据包的数量大于等于云平台发送视频码流的视频数据包的数量时,通过前向纠错码流的对应冗余数据包对丢失的视频码流的视频数据包进行恢复。
在本公开的一些实施例中,前向纠错解码器进一步用于执行以下步骤:将前向纠错码流的对应冗余数据包减去未丢失的视频码流的视频数据包的求和值后,再除以丢失的视频码流的视频数据包对应的编码参数后,获得丢失的视频码流的视频数据包;其中,未丢失的视频码流的视频数据包的求和值是未丢失的视频码流的视频数据包分别与对应的编码参数相乘后再求和。
在本公开的一些实施例中,前向纠错解码器进一步用于执行以下步骤:在对视频码流的视频数据包进行解码后,如果解码后的数据存在错误,通过前向纠错码流的冗余数据包对错误数据进行恢复。
在本公开的一些实施例中,前向纠错解码器进一步用于执行以下步骤:确定错误数据所在的视频码流的视频数据包;确定错误数据所在的视频码流的视频数据包所对应的前向纠错码流的对应冗余数据包;通过错误数据所在的视频码流的视频数据包所对应的前向纠错码流的对应冗余数据包,对错误数据所在的视频码流的视频数据包进行恢复;根据恢复的错误数据所对应的视频码流的视频数据包,获得与错误数据对应的正确数据。
在本公开的一些实施例中,第二网络状态包括云终端单位时间的收包数和收包时间。
本公开实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上实施例中任一项的传输方法。
本公开实施方式提供的云视频数据的传输方法,将视频数据进行视频编码获得视频码流,根据业务场景信息、编码信息和第一网络状态确定前向纠错的冗余度;基于前向纠错的冗余度对视频码流进行冗余编码获得前向纠错码流,将前向纠错的冗余度、视频码流和前向纠错码流发送至云终端;在确定前向纠错的冗余度时,考虑业务场景信息、编码信息和第一网络状态,能够实现前向纠错冗余度的动态调整;出现丢失视频码流的视频数据包时,云终端可以根据前向纠错码流的冗余数据包对丢失的视频码流的视频数据包进行恢复,无需请求云平台重新传输丢失的视频数据包,能够适应不同的业务、网络等情况,降低或避免视频的卡顿。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的一种云视频数据的传输方法的网络交互架构图;
图2是相关技术的云视频数据的传输流程图;
图3是本公开实施例提供的一种云视频数据的传输方法的流程图;
图4是本公开实施例提供的另一种云视频数据的传输方法的流程图;
图5是本公开一个实施例的通过前向纠错码流的冗余数据包对错误数据进行恢复的方法流程图;
图6是本公开实施例提供的又一种云视频数据的传输方法的流程图;
图7是本公开实施例提供的一种包括云平台的云系统的结构示意图;
图8是本公开实施例提供的一种包括云终端的云系统的结构示意图;以及
图9是本公开实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
在本公开实施例中,可以基于云平台和云终端的通讯等技术,云平台获取业务场景信息、编码信息和第一网络状态,根据业务场景信息、编码信息和第一网络状态确定前向纠错的冗余度,基于前向纠错的冗余度对视频码流进行冗余编码获得前向纠错码流,将前向纠错的冗余度、视频码流和前向纠错码流发送至云终端,以使云终端在发生丢失视频码流的视频数据包时,通过前向纠错码流的对应冗余数据包对丢失的视频码流的视频数据包进行恢复,并使用恢复的视频码流的视频数据包和已接收的视频码流的视频数据包进行解码从而实现云终端的视频画面的稳定,从而提高用户的体验。
其中,云平台也称为云计算平台,是指基于硬件资源和软件资源的服务,提供计算、网络和存储能力,云平台主要是为云终端提供计算、存储等服务的平台。
云终端,将云网能力与智能终端的硬件深度融合,实现云网和终端一体交付,提供计算在云、存储在云、应用在云、安全在云,畅享在终端及多终端共享的服务体验。云终端是借助云平台完成本来在终端上进行的计算、存储等工作,以此提升终端的能力,降低业务对终端硬件的要求。目前云终端主要包括云手机、智慧云屏、云摄像头、云路由器、云电视、云VR(Virtual Reality,虚拟现实)等。本公开的技术方案主要是面向云手机、云桌面、云游戏等业务。
前向纠错,也叫前向纠错码(Forward Error Correction,简称FEC),是增加数据通讯可信度的方法。“前向纠错”被广泛应用于通信系统中的编码技术以保证数据的准确性,它的基本思路是在发送端,把要发送的信息重新编码,加入一定的冗余校验信息,组成长度较长的代码(codeword),待到达接收端之后,如果错误在可纠范围之内,通过解码检查后纠正错误,从而降低误码率。
冗余度是在数据传输中,由于衰减或干扰会使数据代码发生突变,此时就要提高数据代码的抗干扰能力,使相应数据具有一定的冗余度。冗余度,通俗的讲就是数据的重复度。
本公开实施例提供的方案涉及云技术的云平台、云终端和通讯中的前向纠错等技术,具体通过如下实施例进行说明:
在本公开实施例中,请参见图1,图1是本公开实施例提供的一种云视频数据的传输方法的网络交互架构图,本公开实施例可以由云平台和云终端共同实现。其中,云终端可以从云平台101中获取视频数据,对该视频数据进行播放显示,其中,该云平台101可以与云终端之间进行数据交互。
其中,该云终端可以是云终端102a、云终端102b或云终端102c等,本公开实施例中的云终端可以由云终端102a、云终端102b或云终端102c等中的任意一个云终端实现,但本公开并不限定于此,云终端可以是其他的用户设备。
具体的,以云终端102b为例,云平台101可以将视频数据进行视频编码获得视频码流,其中视频码流包括多个视频数据包;获取业务场景信息、编码信息和第一网络状态;根据业务场景信息、编码信息和第一网络状态确定前向纠错的冗余度;基于前向纠错的冗余度对视频码流进行冗余编码获得前向纠错码流,其中前向纠错码流包括多个与视频数据包对应的冗余数据包;将前向纠错的冗余度发送至云终端102b;将视频码流和前向纠错码流发送至云终端102b。
具体的,还是以云终端102b为例,云终端102b的屏幕上可以显示来自云平台的视频画面;云终端102b可以接收云平台101发送的前向纠错的冗余度;接收云平台101发送的视频码流和前向纠错码流,其中视频码流包括多个视频数据包,前向纠错码流包括多个与视频数据包对应的冗余数据包;将第二网络状态发送至云平台101以使云平台101确定第一网络状态;在发生丢失视频码流的视频数据包时,通过前向纠错码流的对应冗余数据包对丢失的视频码流的视频数据包进行恢复;使用恢复的视频码流的视频数据包和已接收的视频码流的视频数据包进行解码,使用解码完成的视频数据进行视频画面的播放。
其中,该云终端可以是手机(如云终端102c)或笔记本电脑(如云终端102b),还可以是交通工具中的播放设备(如云终端102a)等,在此不做限制。其中,该云终端102a可以认为是交通工具103中的播放设备,该云终端102a中可以显示应用程序,该应用程序可以是视频会议类应用程序或者在线视频教育应用程序或者导航类应用程序或者网络游戏类应用程序等。其中,图1中的云终端仅为例举出的部分设备,在本公开中云终端并不仅限于该图1中所例举的设备。
可以理解的是,本公开实施例中所提及的云终端可以是一种用户设备,本公开实施例中的云平台包括但不限于服务器或服务器组成的集群。其中,以上所提及的云终端可以是一种电子设备,包括但不限于手机、平板电脑、智能语音交互设备、智能家电、车载终端、台式电脑、笔记本电脑、掌上电脑、车载设备、增强现实/虚拟现实(Augmented Reality/Virtual Reality,AR/VR)设备、头盔显示器、智能电视、可穿戴设备、智能音箱、数码相机、摄像头及其他具备网络接入能力的移动互联网设备(mobile internet device,MID),或者火车、轮船、飞行等场景下的终端设备等。
其中,以上所提及的服务器可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、车路协同、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,还可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统。
可选的,本公开实施例中所涉及的数据可以存储在云平台中,或者可以基于云存储技术、区块链技术对该数据进行存储,在此不做限制。
相关技术中的云视频数据的传输方案,不具有根据前向纠错的冗余度和前向纠错码流对丢失的视频码流的视频数据包进行恢复的能力,只是在丢失视频码流的视频数据包时,向云平台请求对丢失的视频码流的视频数据包进行重新传送,在接收到丢失的视频码流的视频数据包后,对视频码流的视频数据包进行解码,因此会导致云终端的视频的卡顿,导致不好的用户体验。此外,相关技术中,即使根据前向纠错的冗余度对丢失的视频码流的视频数据包进行恢复,但是缺少考虑业务场景信息、编码信息和第一网络状态,实现前向纠错冗余度的动态调整,不具备动态调整前向纠错冗余度的能力。
例如,如图2所示,在一种相关技术的云视频数据的传输中,云终端接收云平台通过TCP(Transmission Control Protocol,传输控制协议)发送的视频码流,在传送过程中,在丢失视频码流的视频数据包时,向云平台发送重新传送丢失的视频码流的视频数据包的请求,云平台接收到云终端的重传请求后,向云终端重新发送丢失的视频码流的视频数据包,云终端接收到丢失的视频码流的视频数据包后,对接收到的所有视频码流的视频数据包进行解码以进行视频画面的播放。相关技术中,视频解码时需要等待丢失的视频数据包的重新传送,会产生视频的卡顿,降低了用户的体验。
图3是本公开实施例提供的一种云视频数据的传输方法的流程图。本公开实施例提供的方法可以由图1实施例中的云平台执行。
如图3所示,本公开实施例提供的方法可以包括如下步骤。
在步骤S310中,将视频数据进行视频编码获得视频码流,其中视频码流包括多个视频数据包。
在一个实施例中,云平台的视频编码器可以将云平台的虚拟机的视频数据进行编码以获得视频码流,例如D1,D2,D3,D4,其中视频码流包括多个视频数据包,例如D1,D2,D3,D4分别是一个数据包。
在步骤S320中,获取业务场景信息、编码信息和第一网络状态。
本公开实施例中,云平台的前向纠错参数配置器可以根据业务场景信息、编码信息和第一网络状态确定前向纠错的冗余度。
本公开实施例中,业务场景信息包括视频数据的业务类型,例如视频数据属于云游戏、云会议或者云教育等的业务之一;编码信息包括视频码率、帧率和分辨率,第一网络状态包括丢包率和时延(例如,Round-Trip Time,往返时延)。
本公开实施例中,云平台的前向纠错参数配置器可以从虚拟机获取视频数据的业务类型,从视频编码器获取编码信息,根据从云终端获取的第二网络状态获取第一网络状态,其中第二网络状态包括云终端单位时间的收包数和收包时间。云平台的网络状态分析器或者前向纠错参数配置器可以根据云平台的单位时间的发包数和发包时间,以及结合云终端单位时间的收包数和收包时间获取丢包率和时延。
在步骤S330中,根据业务场景信息、编码信息和第一网络状态确定前向纠错的冗余度。
本公开实施例中,云平台的前向纠错参数配置器可以根据业务场景信息、编码信息和第一网络状态确定前向纠错的冗余度。
在一个实施例中,根据业务场景信息、编码信息和第一网络状态确定前向纠错的冗余度,包括:
根据业务场景信息、编码信息和第一网络状态,通过查询阈值表格以获得前向纠错的冗余度;
其中,阈值表格为根据理论计算和/或实际经验编制的、不同业务场景信息、编码信息和第一网络状态与不同前向纠错的冗余度的对应关系表格。
在一个实施例中,云平台的前向纠错参数配置器可以根据业务场景信息、编码信息和第一网络状态中的一种或多种,或根据业务场景信息、编码信息和第一网络状态中具体参数的一种或多种确定前向纠错的冗余度,但本公开不以此为限。例如,云平台的前向纠错参数配置器可以根据业务场景例如云会议,第一网络状态中的丢包率确定前向纠错的冗余度,或例如根据业务类型例如云游戏,编码信息的视频分辨率、帧率和第一网络状态的丢包率、时延确定前向纠错的冗余度。下表1示出了根据业务场景和丢包率确定前向纠错的冗余度的部分示例:
表1
在步骤S340中,基于前向纠错的冗余度对视频码流进行冗余编码获得前向纠错码流,其中前向纠错码流包括多个与视频数据包对应的冗余数据包。
在一个实施例中,云平台的前向纠错编码器可以基于前向纠错的冗余度对视频码流进行冗余编码获得前向纠错码流。
在一个实施例中,基于前向纠错的冗余度对视频码流进行冗余编码获得前向纠错码流,包括:
根据前向纠错的冗余度确定视频码流的视频数据包与前向纠错码流的冗余数据包的比例;
将编码参数分别与视频码流的对应数量的视频数据包相乘后再相加以获得前向纠错码流的冗余数据包。
在一个实施例中,前向纠错的冗余度例如为25%(4:1),视频码流例如为D1,D2,D3,D4,则将视频码流的视频数据包D1,D2,D3,D4编码为冗余数据包C1。其中编码方法例如为:
视频数据包D1、D2、D3、D4,数量N=4;
经过编码后得到冗余数据包C1,数量K=1;
其中,C1=R11*D1+R12*D2+R13*D3+R14*D4。
由冗余数据包组成的码流为前向纠错码流,其中上公式中R代表编码参数。
在步骤S350中,将前向纠错的冗余度发送至云终端。
在一个实施例中,云平台的前向纠错的冗余度是动态变化的,因此一旦前向纠错的冗余度发生变化,则需要及时通知云终端,以使云终端根据实时的前向纠错的冗余度对视频码流的视频数据包和前向纠错码流的冗余数据包进行识别,以及对丢失的视频码流的视频数据包进行恢复。
在步骤S360中,将视频码流和前向纠错码流发送至云终端。
在实一个施例中,云平台将视频码流和前向纠错码流发送至云终端,以使云终端对视频数据进行恢复,从而在云终端进行播放。
在一个实施例中,云平台通过UDP(User Datagram Protocol,用户数据报协议)将视频码流和前向纠错码流发送至云终端。
在一个实施例中,在云视频数据为带内传输时,将视频码流的视频数据包与对应的前向纠错码流的冗余数据包顺序编号后,发送至云终端。例如在冗余度为4:1时,将视频码流的视频数据包D1,D2,D3,D4和冗余数据包C1一起顺序编号1-5,则云终端可以根据编号和冗余度识别出1-4是视频数据包D1,D2,D3,D4,5是冗余数据包C1。
在一个实施例中,在云视频数据为带外传输时,将视频码流的视频数据包与前向纠错码流的冗余数据包分别顺序编号后,发送至云终端。例如在冗余度为4:1时,将视频码流的视频数据包D1,D2,D3,D4编号1-4,冗余数据包C1编号1,则云终端可以根据编号和冗余度识别出冗余数据包的编号1与是视频数据包的编号1-4的视频数据包D1,D2,D3,D4对应。
本公开实施方式提供的云视频数据的传输方法,云平台将视频数据进行视频编码获得视频码流,根据业务场景信息、编码信息和第一网络状态确定前向纠错的冗余度;基于前向纠错的冗余度对视频码流进行冗余编码获得前向纠错码流,将前向纠错的冗余度、视频码流和前向纠错码流发送至云终端;在确定前向纠错的冗余度时,至少考虑业务场景信息、编码信息和第一网络状态,能够实现前向纠错冗余度的动态调整。
图4是本公开实施例提供的另一种云视频数据的传输方法的流程图。本公开实施例提供的方法可以由图1实施例中的任一个云终端执行。
如图4所示,本公开实施例提供的方法可以包括如下步骤:
在步骤S410中,接收云平台发送的前向纠错的冗余度。
在本公开实施例中,在云平台对前向纠错的冗余度作出调整后向云终端发送,云终端接收云平台发送的前向纠错的冗余度,从而根据云平台发送的前向纠错的冗余度对视频码流的视频数据包和前向纠错码流的冗余数据包进行识别。
在步骤S420中,接收云平台发送的视频码流和前向纠错码流,其中视频码流包括多个视频数据包,前向纠错码流包括多个与视频数据包对应的冗余数据包。
在本公开实施例中,云终端根据接收云平台发送的视频码流和前向纠错码流,以及根据云平台发送的前向纠错的冗余度可以对视频码流的视频数据包和前向纠错码流的冗余数据包进行识别。
例如,在一个实施例中,前向纠错的冗余度为4:1时:
在云视频数据为带内传输时,云终端可以根据编号和冗余度识别出1-4是视频数据包D1,D2,D3,D4,5是冗余数据包C1,同理6-9是视频数据包,10是冗余数据包。
在云视频数据为带外传输时,云终端可以根据编号和冗余度识别出冗余数据包的编号1与是视频数据包的编号1-4的视频数据包D1,D2,D3,D4对应,同理冗余数据包的编号2与是视频数据包的编号5-8对应。
在步骤S430中,将第二网络状态发送至云平台以使云平台确定第一网络状态。
在一个实施例中,第二网络状态包括云终端单位时间的收包数和收包时间。云平台接收到第二网络状态后可以根据云平台的单位时间的发包数和发包时间分析获得第一网络状态的丢包率和时延。
在步骤S440中,在发生丢失视频码流的视频数据包时,通过前向纠错码流的对应冗余数据包对丢失的视频码流的视频数据包进行恢复。
在一个实施例中,在发生丢失视频码流的视频数据包时,通过前向纠错码流的对应冗余数据包对丢失的视频码流的视频数据包进行恢复,包括:
在接收云平台发送的视频码流的视频数据包和前向纠错码流的对应冗余数据包的数量大于等于云平台发送视频码流的视频数据包的数量时,通过前向纠错码流的对应冗余数据包对丢失的视频码流的视频数据包进行恢复。
在一个实施例中,通过前向纠错码流的对应冗余数据包对丢失的视频码流的视频数据包进行恢复,包括:
将前向纠错码流的对应冗余数据包减去未丢失的视频码流的视频数据包的求和值后,再除以丢失的视频码流的视频数据包对应的编码参数后,获得丢失的视频码流的视频数据包;
其中,未丢失的视频码流的视频数据包的求和值是未丢失的视频码流的视频数据包分别与对应的编码参数相乘后再求和。
例如,在一个实施例中,前向纠错的冗余度例如为25%(4:1),视频码流例如为D1,D2,D3,D4,云平台则将视频码流的视频数据包D1,D2,D3,D4编码为冗余数据包C1。其中编码方法例如为:
视频数据包D1、D2、D3、D4,数量N=4;
经过编码后得到冗余数据包C1,数量K=1;
其中,C1=R11*D1+R12*D2+R13*D3+R14*D4。
则视频数据包和冗余数据包数量为5个,若云终端接收的视频数据包和冗余数据包数量≥4,则可以通过冗余数据包进行恢复,例如丢失了视频数据包D2,则可以通过以下方法恢复:
其中,D2=(C1-R11D1-R13D3-R14D4)/R12。
在步骤S450中,使用恢复的视频码流的视频数据包和已接收的视频码流的视频数据包进行解码。
在本公开实施例中,云终端可以在丢失视频码流的视频数据包时,可以根据视频数据包对应的冗余数据包进行恢复,进而使用恢复的视频码流的视频数据包和已接收的视频码流的视频数据包进行解码,从而在云终端进行视频的播放。
本公开实施方式提供的云视频数据的传输方法,一方面,接收云平台发送的前向纠错的冗余度,接收云平台发送的视频码流和前向纠错码流,其中视频码流包括多个视频数据包,前向纠错码流包括多个与视频数据包对应的冗余数据包;可以实时接收前向纠错冗余度的数值,并根据前向纠错冗余度对视频码流的视频数据包和前向纠错码流的冗余数据包进行识别;一方面,将第二网络状态发送至云平台以使云平台确定第一网络状态;在发生丢失视频码流的视频数据包时,通过前向纠错码流的对应冗余数据包对丢失的视频码流的视频数据包进行恢复;使用恢复的视频码流的视频数据包和已接收的视频码流的视频数据包进行解码,在发生丢失视频码流的视频数据包时,通过前向纠错码流的对应冗余数据包对丢失的视频码流的视频数据包进行恢复,无需请求云平台重新传输,可以自行对丢失的视频数据包进行恢复,可以保证视频的播放质量,提高用户体验。
在本公开的实施例中,还包括:
在对视频码流的视频数据包进行解码后,如果解码后的数据存在错误,通过前向纠错码流的冗余数据包对错误数据进行恢复。
图5示出了本公开一个实施例的通过前向纠错码流的冗余数据包对错误数据进行恢复的流程图。
参考图5,通过前向纠错码流的冗余数据包对错误数据进行恢复可以包括如下步骤:
在步骤S510中,确定错误数据所在的视频码流的视频数据包;
例如,在一个实施例中,前向纠错的冗余度例如为25%(4:1),视频码流例如为D1,D2,D3,D4,则将视频码流的视频数据包D1,D2,D3,D4编码为冗余数据包C1。其中编码方法例如为:
视频数据包D1、D2、D3、D4,数量N=4;
经过编码后得到冗余数据包C1,数量K=1;
其中,C1=R11*D1+R12*D2+R13*D3+R14*D4。
例如,数据包D2的原始数据为(10101010),但是解码后的数据为(10101001),后两位数据由10错误解码为01。
则在在步骤S510中,确定错误数据所在的视频码流的视频数据包为D2。
在步骤S520中,确定错误数据所在的视频码流的视频数据包所对应的前向纠错码流的对应冗余数据包;
接上述示例,确定错误数据所在的视频码流的视频数据包D2所对应的前向纠错码流的对应冗余数据包为C1。在步骤S530中,通过错误数据所在的视频码流的视频数据包所对应的前向纠错码流的对应冗余数据包,对错误数据所在的视频码流的视频数据包进行恢复;
接上述示例,其中可通过以下公式对数据包D2进行恢复:
D2=(C1-R11D1-R13D3-R14D4)/R12。步骤S540中,根据恢复的错误数据所对应的视频码流的视频数据包,获得与错误数据对应的正确数据。
接上述示例,如果对数据包D2恢复的数据为(10101010),则可以将错误数据(10101001)修改为(10101010),从而实现对错误数据的纠正和修改。
本公开的上述实施例可以保证在云终端解码后的数据存在错误时,通过前向纠错码流的冗余数据包对错误数据进行纠正,从而保证视频的正确播放。
图6是本公开实施例提供的又一种云视频数据的传输方法的流程图。本公开实施例提供的方法可以由图1实施例中的云平台和任一个云终端联合执行。
如图6所示,本公开实施例提供的方法可以包括如下步骤。
在步骤S601中,云平台将视频数据进行视频编码获得视频码流,其中视频码流包括多个视频数据包;
在步骤S602中,云平台获取业务场景信息、编码信息和第一网络状态;
在步骤S603中,云平台根据业务场景信息、编码信息和第一网络状态确定前向纠错的冗余度;
在步骤S604中,云平台基于前向纠错的冗余度对视频码流进行冗余编码获得前向纠错码流,其中前向纠错码流包括多个与视频数据包对应的冗余数据包;
在步骤S605中,云平台将前向纠错的冗余度发送至云终端;
在步骤S606中,云平台将视频码流和前向纠错码流发送至云终端;
在步骤S607中,云终端接收云平台发送的前向纠错的冗余度;
在步骤S608中,云终端接收云平台发送的视频码流和前向纠错码流,其中视频码流包括多个视频数据包,前向纠错码流包括多个与视频数据包对应的冗余数据包;
在步骤S609中,云终端将第二网络状态发送至云平台以使云平台确定第一网络状态;
在步骤S610中,云终端在发生丢失视频码流的视频数据包时,通过前向纠错码流的对应冗余数据包对丢失的视频码流的视频数据包进行恢复;
在步骤S611中,云终端使用恢复的视频码流的视频数据包和已接收的视频码流的视频数据包进行解码。
本公开的图6的云视频数据的传输方法,云平台将视频数据进行视频编码获得视频码流,根据业务场景信息、编码信息和第一网络状态确定前向纠错的冗余度;云平台基于前向纠错的冗余度对视频码流进行冗余编码获得前向纠错码流,将前向纠错的冗余度、视频码流和前向纠错码流发送至云终端;云平台在确定前向纠错的冗余度时,考虑业务场景信息、编码信息和第一网络状态,能够实现前向纠错冗余度的动态调整;在云终端出现丢失视频码流的视频数据包时,云终端可以根据前向纠错码流的冗余数据包对丢失的视频码流的视频数据包进行恢复。
图6中云视频数据的传输方法未尽的技术细节,可以参照图3和图4的描述,此处不在赘述。
图7是本公开实施例提供的一种包括云平台71的云系统的结构示意图。
如图7所示,本公开实施例提供的云平台71可以包括虚拟机711、视频编码器712、前向纠错参数配置器713、前向纠错编码器714、第一传输器715和网络状态分析器716。
其中,视频编码器712用于将视频数据进行视频编码获得视频码流,其中视频码流包括多个视频数据包;
前向纠错参数配置器713用于获取业务场景信息、编码信息和第一网络状态;
前向纠错参数配置器713还用于根据业务场景信息、编码信息和第一网络状态确定前向纠错的冗余度;
前向纠错编码器714用于基于前向纠错的冗余度对视频码流进行冗余编码获得前向纠错码流,其中前向纠错码流包括多个与视频数据包对应的冗余数据包;
第一传输器715用于将前向纠错的冗余度发送至云终端72;
第一传输器715还用于将视频码流和前向纠错码流发送至云终端72。
其中,图7实施例是与带内传输对应。视频编码器712对虚拟机711的视频画面的数据进行RTC(Real-time communication,即时通讯)视频编码。第一传输器715采用RTC传输,将视频码流和前向纠错码流通过UDP发送至云终端72的接收器。网络状态分析器716用于接收云终端72发送的第二网络状态以确定第一网络状态。
在一个实施例中,业务场景信息包括视频数据的业务类型,编码信息包括视频码率、帧率和分辨率,第一网络状态包括丢包率和时延。
在一个实施例中,前向纠错参数配置器713还用于:根据业务场景信息、编码信息和第一网络状态,通过查询阈值表格以获得前向纠错的冗余度;其中,阈值表格为根据理论计算和/或实际经验编制的、不同业务场景信息、编码信息和第一网络状态与不同前向纠错的冗余度的对应关系表格。
在实施例中,前向纠错编码器714,还用于:根据前向纠错的冗余度确定视频码流的视频数据包与前向纠错码流的冗余数据包的比例;将编码参数分别与视频码流的对应数量的视频数据包相乘后再相加以获得前向纠错码流的冗余数据包。
在一个实施例中,第一传输器715,还用于:在云视频数据为带内传输时,在视频码流的视频数据包与对应的前向纠错码流的冗余数据包顺序编号后,发送至云终端72;在云视频数据为带外传输时,在视频码流的视频数据包与前向纠错码流的冗余数据包分别顺序编号后,发送至云终端72。
本公开的图7的云平台中,视频编码器712将视频数据进行视频编码获得视频码流,前向纠错参数配置器713根据业务场景信息、编码信息和第一网络状态确定前向纠错的冗余度;前向纠错编码器714基于前向纠错的冗余度对视频码流进行冗余编码获得前向纠错码流,第一传输器715将前向纠错的冗余度、视频码流和前向纠错码流发送至云终端72;云平台71在确定前向纠错的冗余度时,考虑业务场景信息、编码信息和第一网络状态,能够实现前向纠错冗余度的动态调整;在云终端72出现丢失视频码流的视频数据包时,云终端72可以根据前向纠错码流的冗余数据包对丢失的视频码流的视频数据包进行恢复。
图8是本公开实施例提供的一种包括云终端81的云系统结构示意图。
如图8所示,本公开实施例提供的云终端81可以包括接收器811、前向纠错解码器812、第二传输器813、判断器814、视频解码器815和视频播放器816。
其中,接收器811用于接收云平台发送的前向纠错的冗余度;
接收器811还用于接收云平台82发送的视频码流和前向纠错码流,其中视频码流包括多个视频数据包,前向纠错码流包括多个与视频数据包对应的冗余数据包;
第二传输器813用于将第二网络状态发送至云平台82以使云平台83确定第一网络状态;
前向纠错解码器812用于在发生丢失视频码流的视频数据包时(判断器814判断为“是”),通过前向纠错码流的对应冗余数据包对丢失的视频码流的视频数据包进行恢复;
视频解码器815用于使用恢复的视频码流的视频数据包和已接收的视频码流的视频数据包进行解码。
其中,接收器811是RTC接收。第二传输器813通过RR(Receiver Report,接收者报告)将第二网络状态的云终端81单位时间的收包数、收包时间发送至云平台82的网络状态分析器。
在一个实施例中,前向纠错解码器812,还用于:在接收云平台82发送的视频码流的视频数据包和前向纠错码流的对应冗余数据包的数量大于等于云平台82发送视频码流的视频数据包的数量时,通过前向纠错码流的对应冗余数据包对丢失的视频码流的视频数据包进行恢复。
在一个实施例中,前向纠错解码器812,还用于:将前向纠错码流的对应冗余数据包减去未丢失的视频码流的视频数据包的求和值后,再除以丢失的视频码流的视频数据包对应的编码参数后,获得丢失的视频码流的视频数据包;其中,未丢失的视频码流的视频数据包的求和值是未丢失的视频码流的视频数据包分别与对应的编码参数相乘后再求和。
在一个实施例中,前向纠错解码器812,还用于:在对视频码流的视频数据包进行解码后,如果解码后的数据存在错误(判断器814判断为“是”),通过前向纠错码流的冗余数据包对错误数据进行恢复。
在一个实施例中,前向纠错解码器812,还用于:确定错误数据所在的视频码流的视频数据包;确定错误数据所在的视频码流的视频数据包所对应的前向纠错码流的对应冗余数据包;通过错误数据所在的视频码流的视频数据包所对应的前向纠错码流的对应冗余数据包,对错误数据所在的视频码流的视频数据包进行恢复;根据恢复的错误数据所对应的视频码流的视频数据包,获得与错误数据对应的正确数据。
下面结合一个具体实施例,说明云平台如何对前向纠错的冗余度进行动态调整:
例如,在云会议的视频播放中:
云平台将视频数据进行视频编码获得视频码流,其中视频码流包括多个视频数据包,视频码流例如包括视频数据包D1,D2,D3,D4;
云平台获取业务场景信息、编码信息和第一网络状态(初始发送时,没有接收云终端反馈的第二网络状态,第一网络状态初始值可以为0);
云平台可以根据云会议的业务场景信息和编码信息将前向纠错的冗余度设置为25%(4:1);
云平台基于前向纠错的冗余度25%(4:1)对视频码流进行冗余编码获得前向纠错码流,其中,视频码流例如包括视频数据包D1,D2,D3,D4,则将视频码流的视频数据包D1,D2,D3,D4编码为冗余数据包C1。其中编码方法例如为:
视频数据包D1、D2、D3、D4,数量N=4;
经过编码后得到冗余数据包C1,数量K=1;
其中,C1=R11*D1+R12*D2+R13*D3+R14*D4。
前向纠错码流为由冗余数据包组成的码流;
云平台将前向纠错的冗余度25%(4:1)发送至云终端;
云平台将视频码流(例如,D1,D2,D3,D4)和前向纠错码流(例如C1)发送至云终端;
云终端接收云平台发送的前向纠错的冗余度25%(4:1);
云终端接收云平台发送的视频码流(例如,D1,D2,D3,D4)和前向纠错码流(例如C1);
云终端将第二网络状态发送至云平台;
云平台根据第二网络状态确定第一网络状态;在视频播放过程,如果云平台根据云终端发送的第二网络状态而分析获得第一网络状态中的丢包率≤5%,则可以保持前向纠错的冗余度为25%(4:1)不变;
云平台根据云终端发送的第二网络状态而分析获得第一网络状态中的丢包率>5%,则云平台将前向纠错的冗余度调整为33.33%(2:1);
云平台基于前向纠错的冗余度33.33%(2:1)对视频码流进行冗余编码获得前向纠错码流,视频码流例如包括视频数据包为D1,D2,则将视频码流的视频数据包D1,D2编码为冗余数据包C1。其中编码方法例如为:
视频数据包D1、D2,数量N=2;
经过编码后得到冗余数据包C1,数量K=1;
其中,C1=R11*D1+R12*D2。
云平台将前向纠错的冗余度33.33%(2:1)发送至云终端;
云平台将视频码流(例如,D1,D2)和前向纠错码流(例如C1)发送至云终端。
本公开上述前向纠错的冗余度进行动态的方法流程,可以使云平台根据业务场景信息、编码信息和第一网络状态对前向纠错的冗余度进行动态的调整。
参见图9,图9是本公开实施例提供的一种计算机设备的结构示意图。如图9所示,本公开实施例中的计算机设备可以包括:一个或多个处理器901、存储器902和输入输出接口903。该处理器901、存储器902和输入输出接口903通过总线904连接。存储器902用于存储计算机程序,该计算机程序包括程序指令,输入输出接口903用于接收数据及输出数据,如用于宿主机与计算机设备之间进行数据交互,或者用于在宿主机中的各个虚拟机之间进行数据交互;处理器901用于执行存储器902存储的程序指令。
其中,该处理器901可以执行如下操作:
将视频数据进行视频编码获得视频码流,其中视频码流包括多个视频数据包;获取业务场景信息、编码信息和第一网络状态;根据业务场景信息、编码信息和第一网络状态确定前向纠错的冗余度;基于前向纠错的冗余度对视频码流进行冗余编码获得前向纠错码流,其中前向纠错码流包括多个与视频数据包对应的冗余数据包;将前向纠错的冗余度发送至云终端;将视频码流和前向纠错码流发送至云终端。
或者,该处理器901可以执行如下操作:
接收云平台发送的前向纠错的冗余度;接收云平台发送的视频码流和前向纠错码流,其中视频码流包括多个视频数据包,前向纠错码流包括多个与视频数据包对应的冗余数据包;将第二网络状态发送至云平台以使云平台确定第一网络状态;在发生丢失视频码流的视频数据包时,通过前向纠错码流的对应冗余数据包对丢失的视频码流的视频数据包进行恢复;使用恢复的视频码流的视频数据包和已接收的视频码流的视频数据包进行解码。
在一些可行的实施方式中,该处理器901可以是中央处理单元(centralprocessing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器902可以包括只读存储器和随机存取存储器,并向处理器901和输入输出接口903提供指令和数据。存储器902的一部分还可以包括非易失性随机存取存储器。例如,存储器902还可以存储设备类型的信息。
具体实现中,该计算机设备可通过其内置的各个功能模块执行如上述实施例中各个步骤所提供的实现方式,具体可参见上述实施例中各个步骤所提供的实现方式,在此不再赘述。
本公开实施例通过提供一种计算机设备,包括:处理器、输入输出接口、存储器,通过处理器获取存储器中的计算机程序,执行上述实施例中所示方法的各个步骤,进行传输操作。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序适于由该处理器加载并执行上述实施例中各个步骤所提供的云视频数据的传输方法,具体可参见上述实施例中各个步骤所提供的实现方式,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本公开所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本公开方法实施例的描述。作为示例,计算机程序可被部署为在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行。
该计算机可读存储介质可以是前述任一实施例提供的云平台、云终端或者该计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本公开实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的各种可选方式中所提供的方法。
本公开实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在该说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
本公开实施例提供的方法及相关装置是参照本公开实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程传输设备的处理器以产生一个机器,使得通过计算机或其他可编程传输设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程传输设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程传输设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本公开较佳实施例而已,当然不能以此来限定本公开之权利范围,因此依本公开权利要求所作的等同变化,仍属本公开所涵盖的范围。
Claims (15)
1.一种云视频数据的传输方法,应用于云平台,其特征在于,包括:
将视频数据进行视频编码获得视频码流,其中所述视频码流包括多个视频数据包;
获取业务场景信息、编码信息和第一网络状态;
根据所述业务场景信息、所述编码信息和所述第一网络状态确定前向纠错的冗余度;
基于所述前向纠错的冗余度对所述视频码流进行冗余编码获得前向纠错码流,其中所述前向纠错码流包括多个与所述视频数据包对应的冗余数据包;
将所述前向纠错的冗余度发送至云终端;
将所述视频码流和所述前向纠错码流发送至所述云终端。
2.根据权利要求1所述的方法,其特征在于,所述业务场景信息包括所述视频数据的业务类型,所述编码信息包括视频码率、帧率和分辨率,所述第一网络状态包括丢包率和时延。
3.根据权利要求2所述的方法,其特征在于,根据所述业务场景信息、所述编码信息和所述第一网络状态确定前向纠错的冗余度,包括:
根据所述业务场景信息、所述编码信息和所述第一网络状态,通过查询阈值表格以获得所述前向纠错的冗余度;
其中,所述阈值表格为根据理论计算和/或实际经验编制的、不同业务场景信息、编码信息和第一网络状态与不同所述前向纠错的冗余度的对应关系表格。
4.根据权利要求2所述的方法,其特征在于,将所述视频码流和所述前向纠错码流发送至云终端,包括:
基于用户数据报协议UDP将所述视频码流和所述前向纠错码流发送至云终端。
5.根据权利要求2所述的方法,其特征在于,基于所述前向纠错的冗余度对所述视频码流进行冗余编码获得前向纠错码流,包括:
根据所述前向纠错的冗余度确定所述视频码流的视频数据包与所述前向纠错码流的冗余数据包的比例;
将编码参数分别与所述视频码流的对应数量的视频数据包相乘后再相加以获得所述前向纠错码流的冗余数据包。
6.根据权利要求2所述的方法,其特征在于,将所述视频码流和所述前向纠错码流发送至所述云终端,包括:
在所述云视频数据为带内传输时,将所述视频码流的视频数据包与对应的所述前向纠错码流的冗余数据包顺序编号后,发送至所述云终端;
在所述云视频数据为带外传输时,将所述视频码流的视频数据包与所述前向纠错码流的冗余数据包分别顺序编号后,发送至所述云终端。
7.一种云视频数据的传输方法,应用于云终端,其特征在于,包括:
接收云平台发送的前向纠错的冗余度;
接收所述云平台发送的视频码流和前向纠错码流,其中所述视频码流包括多个视频数据包,所述前向纠错码流包括多个与所述视频数据包对应的冗余数据包;
将第二网络状态发送至所述云平台以使所述云平台确定第一网络状态;
在发生丢失所述视频码流的视频数据包时,通过所述前向纠错码流的对应冗余数据包对丢失的所述视频码流的视频数据包进行恢复;
使用恢复的所述视频码流的视频数据包和已接收的所述视频码流的视频数据包进行解码。
8.根据权利要求7所述的方法,其特征在于,在发生丢失所述视频码流的视频数据包时,通过所述前向纠错码流的对应冗余数据包对丢失的所述视频码流的视频数据包进行恢复,包括:
在接收所述云平台发送的所述视频码流的视频数据包和所述前向纠错码流的对应冗余数据包的数量大于等于所述云平台发送所述视频码流的视频数据包的数量时,通过所述前向纠错码流的对应冗余数据包对丢失的所述视频码流的视频数据包进行恢复。
9.根据权利要求8所述的方法,其特征在于,通过所述前向纠错码流的对应冗余数据包对丢失的所述视频码流的视频数据包进行恢复,包括:
将所述前向纠错码流的对应冗余数据包减去未丢失的所述视频码流的视频数据包的求和值后,再除以丢失的所述视频码流的视频数据包对应的编码参数后,获得丢失的所述视频码流的视频数据包;
其中,未丢失的所述视频码流的视频数据包的求和值是未丢失的所述视频码流的视频数据包分别与对应的编码参数相乘后再求和。
10.根据权利要求7所述的方法,其特征在于,还包括:
在对所述视频码流的视频数据包进行解码后,如果解码后的数据存在错误,通过所述前向纠错码流的冗余数据包对错误数据进行恢复。
11.根据权利要求10所述的方法,其特征在于,通过所述前向纠错码流的冗余数据包对错误数据进行恢复,包括:
确定所述错误数据所在的所述视频码流的视频数据包;
确定所述错误数据所在的所述视频码流的视频数据包所对应的所述前向纠错码流的对应冗余数据包;
通过所述错误数据所在的所述视频码流的视频数据包所对应的所述前向纠错码流的对应冗余数据包,对所述错误数据所在的所述视频码流的视频数据包进行恢复;
根据恢复的所述错误数据所对应的所述视频码流的视频数据包,获得与所述错误数据对应的正确数据。
12.根据权利要求7所述的方法,其特征在于,所述第二网络状态包括所述云终端单位时间的收包数和收包时间。
13.一种云平台,其特征在于,包括:
视频编码器,用于将视频数据进行视频编码获得视频码流,其中所述视频码流包括多个视频数据包;
前向纠错参数配置器,用于获取业务场景信息、编码信息和第一网络状态;
所述前向纠错参数配置器,还用于根据所述业务场景信息、所述编码信息和所述第一网络状态确定前向纠错的冗余度;
前向纠错编码器,用于基于所述前向纠错的冗余度对所述视频码流进行冗余编码获得前向纠错码流,其中所述前向纠错码流包括多个与所述视频数据包对应的冗余数据包;
第一传输器,用于将所述前向纠错的冗余度发送至云终端;
所述第一传输器,还用于将所述视频码流和所述前向纠错码流发送至所述云终端。
14.一种云终端,其特征在于,包括:
接收器,用于接收云平台发送的前向纠错的冗余度;
所述接收器,还用于接收所述云平台发送的视频码流和前向纠错码流,其中所述视频码流包括多个视频数据包,所述前向纠错码流包括多个与所述视频数据包对应的冗余数据包;
第二传输器,用于将第二网络状态发送至所述云平台以使所述云平台确定第一网络状态;
前向纠错解码器,用于在发生丢失所述视频码流的视频数据包时,通过所述前向纠错码流的对应冗余数据包对丢失的所述视频码流的视频数据包进行恢复;
视频解码器,用于使用恢复的所述视频码流的视频数据包和已接收的所述视频码流的视频数据包进行解码。
15.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的方法或者如权利要求7-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210513537.2A CN114900716B (zh) | 2022-05-11 | 2022-05-11 | 云视频数据的传输方法、云平台、云终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210513537.2A CN114900716B (zh) | 2022-05-11 | 2022-05-11 | 云视频数据的传输方法、云平台、云终端及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114900716A true CN114900716A (zh) | 2022-08-12 |
CN114900716B CN114900716B (zh) | 2023-09-26 |
Family
ID=82721046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210513537.2A Active CN114900716B (zh) | 2022-05-11 | 2022-05-11 | 云视频数据的传输方法、云平台、云终端及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114900716B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006262288A (ja) * | 2005-03-18 | 2006-09-28 | Nec Corp | 映像データの配信サーバおよび映像データ配信方法 |
US20080134005A1 (en) * | 2004-12-02 | 2008-06-05 | Izzat Hekmat Izzat | Adaptive Forward Error Correction |
US20090222709A1 (en) * | 2008-02-28 | 2009-09-03 | Ip Video Communications Coporation | Universal packet loss recovery system for delivery of real-time streaming multimedia content over packet-switched networks |
CN102687445A (zh) * | 2011-12-30 | 2012-09-19 | 华为技术有限公司 | 前向纠错编、解码方法、装置及系统 |
CN102710943A (zh) * | 2012-05-29 | 2012-10-03 | 罗天明 | 基于前向纠错编码窗口扩张的实时视频传输方法 |
CN107438187A (zh) * | 2015-09-28 | 2017-12-05 | 苏州踪视通信息技术有限公司 | 实时视频传输的带宽调整 |
CN107592540A (zh) * | 2016-07-07 | 2018-01-16 | 腾讯科技(深圳)有限公司 | 一种视频数据处理方法及装置 |
CN108183774A (zh) * | 2018-03-26 | 2018-06-19 | 浙江齐聚科技有限公司 | 一种流媒体传输的前向纠错方法和系统 |
CN108712235A (zh) * | 2018-05-29 | 2018-10-26 | 北京光润通科技发展有限公司 | 一种单向无反馈传输方法 |
CN109862440A (zh) * | 2019-02-22 | 2019-06-07 | 深圳市凯迪仕智能科技有限公司 | 音视频传输前向纠错方法、装置、计算机设备及存储介质 |
CN111162877A (zh) * | 2020-01-19 | 2020-05-15 | 西安邮电大学 | 一种音视频服务质量控制的自适应前向纠错方法及应用 |
CN111629232A (zh) * | 2020-04-13 | 2020-09-04 | 北京大学 | 一种基于深度学习的实时视频传输自适应前向纠错方法和系统 |
CN113242155A (zh) * | 2021-03-30 | 2021-08-10 | 深圳震有科技股份有限公司 | 一种数据包丢包的恢复方法、系统及计算机可读存储介质 |
-
2022
- 2022-05-11 CN CN202210513537.2A patent/CN114900716B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080134005A1 (en) * | 2004-12-02 | 2008-06-05 | Izzat Hekmat Izzat | Adaptive Forward Error Correction |
JP2006262288A (ja) * | 2005-03-18 | 2006-09-28 | Nec Corp | 映像データの配信サーバおよび映像データ配信方法 |
US20090222709A1 (en) * | 2008-02-28 | 2009-09-03 | Ip Video Communications Coporation | Universal packet loss recovery system for delivery of real-time streaming multimedia content over packet-switched networks |
CN102687445A (zh) * | 2011-12-30 | 2012-09-19 | 华为技术有限公司 | 前向纠错编、解码方法、装置及系统 |
CN102710943A (zh) * | 2012-05-29 | 2012-10-03 | 罗天明 | 基于前向纠错编码窗口扩张的实时视频传输方法 |
CN107438187A (zh) * | 2015-09-28 | 2017-12-05 | 苏州踪视通信息技术有限公司 | 实时视频传输的带宽调整 |
CN107592540A (zh) * | 2016-07-07 | 2018-01-16 | 腾讯科技(深圳)有限公司 | 一种视频数据处理方法及装置 |
CN108183774A (zh) * | 2018-03-26 | 2018-06-19 | 浙江齐聚科技有限公司 | 一种流媒体传输的前向纠错方法和系统 |
CN108712235A (zh) * | 2018-05-29 | 2018-10-26 | 北京光润通科技发展有限公司 | 一种单向无反馈传输方法 |
CN109862440A (zh) * | 2019-02-22 | 2019-06-07 | 深圳市凯迪仕智能科技有限公司 | 音视频传输前向纠错方法、装置、计算机设备及存储介质 |
CN111162877A (zh) * | 2020-01-19 | 2020-05-15 | 西安邮电大学 | 一种音视频服务质量控制的自适应前向纠错方法及应用 |
CN111629232A (zh) * | 2020-04-13 | 2020-09-04 | 北京大学 | 一种基于深度学习的实时视频传输自适应前向纠错方法和系统 |
CN113242155A (zh) * | 2021-03-30 | 2021-08-10 | 深圳震有科技股份有限公司 | 一种数据包丢包的恢复方法、系统及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
XIN CUI,LIN,CUI: ""A Cross-Layer Optimization between FEC and TCP over Satellite Networks"", 2008 4TH INTERNATIONAL CONFERENCE WIRELESS COMMUNICATIONS,NETWORKING AND MOBILE COMPUTING * |
李政熠: ""基于可靠度的前向纠错技术研究"", 中国优秀硕士学位论文全文数据库 * |
Also Published As
Publication number | Publication date |
---|---|
CN114900716B (zh) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102143367B (zh) | 一种纠错校验方法、设备和系统 | |
JP3512776B2 (ja) | 通信網におけるビットストリーム送受信装置及びその方法 | |
CN109729439A (zh) | 实时视频传输方法 | |
JP2012521723A5 (zh) | ||
CN109862440A (zh) | 音视频传输前向纠错方法、装置、计算机设备及存储介质 | |
CN108174234A (zh) | 一种流媒体传输方法及系统 | |
CN111629210A (zh) | 一种数据处理的方法、装置及电子设备 | |
CN101137060B (zh) | 一种视频传输方法、系统及设备 | |
US9331815B2 (en) | Transmission device, reception device, transmission method, and reception method | |
CN117135148A (zh) | 一种基于WebRTC的音视频传输方法及系统 | |
CN114221909B (zh) | 数据传输方法、装置、终端及存储介质 | |
CN104113722A (zh) | 一种无线视频会议传输方法 | |
US9379845B2 (en) | Transmission device, reception device, transmission method, and reception method | |
JP4604851B2 (ja) | 送信装置、受信装置、送信処理方法、受信処理方法、それらのプログラム | |
US9838463B2 (en) | System and method for encoding control commands | |
CN105409151A (zh) | 信息处理装置、信息处理方法以及程序 | |
CN114900716B (zh) | 云视频数据的传输方法、云平台、云终端及介质 | |
JP2007324876A (ja) | データ送信装置、データ受信装置、データ送信方法、データ受信方法、及びプログラム | |
US20200099972A1 (en) | Increasing video bit rates while maintaining video quality | |
CN111245566B (zh) | 不可靠网络的抗丢包方法、装置、存储介质及电子设备 | |
CN116800371A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN112055165B (zh) | 视频通信方法、装置、系统、服务器、客户端及存储介质 | |
CN106534137B (zh) | 媒体流传输方法及装置 | |
US20200252085A1 (en) | Receiving device and receiving method | |
CN114978427B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |