视频数据传输方法、接收方法、装置、存储介质及设备与流程

文档序号:14125309阅读:178来源:国知局
视频数据传输方法、接收方法、装置、存储介质及设备与流程

本公开涉及通信技术领域,具体地,涉及一种视频数据传输方法、接收方法、装置、存储介质及设备。



背景技术:

目前,高清视频的传输通常采用h.264编码方式,采用此种编码方式可将图像帧分为i帧、p帧和b帧,其中,i帧包含了全部的图像信息,称为关键帧,p帧包含了当前帧与前一帧之间的差别,b帧则包含了当前帧和前后帧之间的差别。如果i帧传输不成功则无法通过p帧和b帧恢复出当前帧完整的图像,特别是在无线传输的情况下,由于传输误码率较有线传输更高,因此i帧的传输可靠性对视频数据的传输来说是非常重要的作用。

当前基于lte网络的实时视频传输大部分采用h.264编码方式,且为了保证视频传输的实时性均采用um(unacknowledgedmode,非确认模式)模式,通过udp(userdatagramprotocol,用户数据报协议)进行传输,在无线网络环境较差的情况下,特别是在用户设备频繁移动的使用场景中。采用上述方式无法保证图像帧的传输可靠性,若关键帧i帧丢失的情况下,用户设备接收到的视频图像的质量较差,严重影响了用户对视频的观看。



技术实现要素:

本公开的目的是提供一种视频数据传输方法、接收方法、装置、存储介质及设备,用以解决相关技术中,在通信环境较差的情况下接收视频质量较差的问题。

根据本公开的第一个方面,提供了一种视频数据传输方法,包括:以am(acknowledgedmode,确认模式)将视频数据的i帧传输至视频接收端;以um将视频数据的p帧以及b帧传输至所述视频接收端;其中,所述i帧通过第一drb(dataradiobearer,数据承载)传输,所述p帧以及所述b帧通过第二drb传输。

可选地,所述视频数据传输方法还包括:在检测到有所述数据包在其对应的预设时长内未发送成功的情况下,通知所述视频接收端移动接收窗口;

在检测到有所述数据包在其对应的所述预设时长内未发送成功的情况下,移动发送窗口以丢弃在对应的所述预设时长内未发送成功的所述数据包;其中,所述数据包中包括所述i帧,或者所述数据包中包括所述p帧以及所述b帧。

可选地,所述视频数据传输方法还包括:在传输所述i帧、p帧以及b帧之前,将所述视频数据进行打包,并在打包的数据包中携带打包的时间戳。

根据本公开的第二个方面,提供了一种视频数据接收方法,包括:接收视频发送端以确认模式am传输的视频数据的i帧;接收所述视频接收端以非确认模式um传输的视频数据的p帧以及b帧,其中,所述i帧通过第一数据承载drb传输,所述p帧以及所述b帧通过第二drb传输。

可选地,所述视频数据接收方法还包括:在接收到所述i帧、所述p帧以及所述b帧之后,将接收到的由第一drb以及第二drb传输的数据包合并至一个缓存中,根据所述数据包中的打包时间戳来确定所述缓存中的所述i帧、所述p帧以及所述b帧之间的对应关系。

根据本公开的第三个方面,提供了一种视频数据传输装置,包括:第一传输模块,用于以am将视频数据的i帧传输至视频接收端;第一传输模块,用于以um将视频数据的p帧以及b帧传输至所述视频接收端;其中,所述i帧通过第一drb传输,所述p帧以及所述b帧通过第二drb传输。

可选地,所述视频数据传输装置还包括:通知模块,用于在检测到有所述数据包在其对应的所述预设时长内未发送成功的情况下,通知所述视频接收端移动接收窗口;

处理模块,用于在检测到有所述数据包在其对应的所述预设时长内未发送成功的情况下,移动发送窗口丢弃在对应的所述预设时长内未发送成功的所述数据包;其中,所述数据包中包括所述i帧,或者所述数据包中包括所述p帧以及所述b帧。

可选地,所述视频数据传输装置还包括:打包模块,用于在传输所述i帧、p帧以及b帧之前,将所述视频数据进行打包,并在打包的数据包中携带打包的时间戳。

根据本公开的第四个方面,提供了一种视频数据接收装置,包括:第一接收模块,用于接收视频发送端以确认模式am传输的视频数据的i帧;第二接收模块,用于接收所述视频接收端以非确认模式um传输的视频数据的p帧以及b帧,其中,所述i帧通过第一数据承载drb传输,所述p帧以及所述b帧通过第二drb传输。

可选地,所述视频数据接收装置还包括:确定模块,用于在接收到所述i帧、所述p帧以及所述b帧之后,将接收到的由第一drb以及第二drb传输的数据包合并至一个缓存中,根据所述数据包中的打包时间戳来确定所述缓存中的所述i帧、所述p帧以及所述b帧之间的对应关系。

根据本公开的第五个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一个方面所述的任意一种视频数据传输方法的步骤。

根据本公开的第六个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第二个方面所述的任意一种视频数据接收方法的步骤。

根据本公开的第七个方面,提供了一种电子设备,包括:本公开第五个方面所述的计算机可读存储介质;以及一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。

根据本公开的第八个方面,提供了一种电子设备,包括:本公开第六个方面所述的计算机可读存储介质;以及一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。

通过上述技术方案,在发送视频数据时,将i帧与p帧和b帧分开传输,使用am模式传输i帧,提高了i帧的传输成功率,使用um模式传输p帧与b帧,能够尽可能地传输较多的b帧与p帧,提高了视频图像的重量,使得即使在无线传输情况恶劣的情况下,也能确保视频接收端接收到质量较高的视频图像,提高了视频传输的可靠性。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是本申请实施例一的视频数据传输方法的流程图。

图2是本申请实施例二的视频数据接收方法的流程图。

图3是本申请实施例三的视频传输以及视频接收过程的信令流程图。

图4是本申请实施例四的视频数据传输装置的框图。

图5是本申请实施例五的视频数据接收装置的框图。

图6是本申请实施例六的电子设备的框图。

图7是本申请实施例七的电子设备的框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

实施例一

本实施例提供了一种视频数据传输方法,该方法由视频发送端执行,图1是该方法的流程图,如图1所示,该方法包括:

步骤101:以am将视频数据的i帧传输至视频接收端;

步骤102:以um将视频数据的p帧以及b帧传输至视频接收端;

其中,i帧通过第一drb传输,p帧以及b帧通过第二drb传输,第一drb以及第二drb为不同的两个drb。

需要说明的是,在执行本实施例的视频数据传输方法时,可以先执行上述步骤101,也可以先执行上述步骤102,也可以并行执行。可选地,在本实施例中可以通过udp来传输i帧、p帧以及b帧。

为了提高i帧传输的实时性,本实施例的视频传输方法还可以包括:在传输i帧、p帧以及b帧之前,为每个待发送的数据包设置对应的预设时长;在检测到有数据包在其对应的预设时长内未发送成功的情况下,通知视频接收端移动接收窗口。其中,数据包中包括i帧,或者数据包中包括p帧以及b帧。可选地,在检测到有数据包在其对应的预设时长内未发送成功的情况下,移动发送窗口以丢弃在对应的预设时长内未发送成功的数据包,这样则能够减少i帧传输的时延,提高了i帧传输的实时性。示例的,可以为每个数据包,例如ip包设置一个定时器,定时器定时的时间长度可以根据视频接收端用于存储两个drb上的视频数据的缓存的大小来确定,当定时器超时后,ip包仍然未发送成功,则通知视频接收端移动接收窗口,此时视频发送端也需要移动发送端口,以丢弃窗口外的数据。

为了避免造成图像帧乱序现象的发生,本实施例的视频数据传输方法还可以包括对视频数据进行打包的操作,例如可以是rtp(real-timetransportprotocol,实时传输协议)打包,打包的操作可以包括:在传输i帧、p帧以及b帧之前,对视频数据进行打包,并在数据包中携带打包的时间戳。经过对视频数据的打包操作,使得视频接收端在接收到视频数据包后,能够根据数据包中携带的打包的时间戳来获知i帧、p帧以及b帧之间的对应关系,以便视频数据接收端能够较为方便快捷地还原视频数据。

本实施例提供的视频数据传输方法,通过将i帧与p帧和b帧分开传输,使用am模式传输i帧,提高了i帧的传输成功率,且通过提醒接收端移动接收窗口的方式,提高了i帧的传输实时性,此外,使用um模式以尽可能地多传输p帧与b帧,提高了视频图像的重量,即使在无线传输情况恶劣的情况下,也能确保视频接收端接收到质量较高的视频图像,提高了视频传输的可靠性,同时也提高了用户的观看体验。

实施例二

本实施例提供了一种视频数据接收方法,该方法由视频接收端实现,图2是该方法的流程图,如图2所示,该方法包括:

步骤201:接收视频发送端以am传输的视频数据的i帧;

步骤202:接收视频接收端以um传输的视频数据的p帧以及b帧。

其中,i帧通过第一drb传输,p帧以及b帧通过第二drb传输,第一drb与第二drb为不同的两个drb。

需要说明的是,在执行本实施例的视频数据接收方法时,可以先执行上述步骤201,也可以先执行上述步骤202。

由于视频发送端通过不同的两个drb传输i帧、p帧以及b帧,故该不同的两个drb上的图像帧到达视频接收端的时间是不固定的,但鉴于i帧、p帧以及b帧之间具有一定的对应关系,则过早到达的p帧或b帧存在被丢弃的可能,这样则会造成视频解码异常,故为了避免造成接收到的视频图像出现乱序的现象,在本实施例的视频接收方法还可以包括:在接收到i帧、p帧以及b帧之后,将接收到的由第一drb以及第二drb传输的数据包合并至一个缓存中,例如可以是合并到同一个jitterbuffer(抖动缓冲器)中,其中,缓存的大小可以根据视频发送端设定的预设时长来设置,根据数据包中的打包时间戳来确定缓存中的i帧、p帧以及b帧之间的对应关系。

本实施例提供的视频数据接收方法,接收视频发送端通过两个不同的drb,以am模式传输的i帧,以及以um模式传输的i帧与p帧,确保了视频传输的可靠性,即使在无线传输情况恶劣的情况下,视频接收端也能接收到质量较高的视频图像。

实施例三

上述实施例一以及实施例二分别从视频发送端以及视频接收端对视频数据的传输以及接收方法进行了阐述,本实施例结合图3通过视频发送端与视频接收端在视频传输以及视频接收的过程中的信息交互流程进行阐述。

在本实施例中,为了避免出现i帧大量丢失的情况,视频发送端在传输图像帧时采用i帧与b帧、p帧分离的方式来优化图像帧的传输。在传输图像帧时,执行图3中所示的步骤301:i帧采用am模式通过udp发送给视频接收端,以保证i帧的传输成功率,而由于p帧和b帧只需要尽可能多的传输而无需保证传输成功率,故p帧和b帧采用um模式通过udp发送给视频接收端。基于这种i帧与b帧和p帧分离传输的方式,用户面需要通过两条drb进行图像帧的传输,其中,i帧对应的qos比p或b帧高。由于采用这种传输方式有可能造成图像帧的乱序现象,所以在本实施例中,需要对图像帧进行rtp打包,在视频接收端接收到来自视频发送端发送的视频数据后,执行图3中所示的步骤307:将两个drb上的视频数据合并到同一个jitterbuffer中,经过防抖处理后再将视频数据发送给视频解码器进行解码,由于防抖处理的原理已在上述实施例中进行了详细说明,故此处不再赘述。

由于i帧的传输实时性非常重要,采用传统的lteam模式会增加传输的rtt(round-triptime,往返时延),造成接收端大量数据堆积无法投递。在本实施例中,为了减少i帧传输的时延,为rlc增加快速移窗功能,在视频发送端传输视频数据时,视频发送端执行图3中所示的步骤302:为每个ip包设置一个定时器(定时器长度需要根据jitterbuffer大小进行设置),当定时器超时后ip包仍未发送成功时,视频发送端执行步骤303:通知视频接收端移动接收窗口,视频接收端接收到来自视频发送端移动接收窗口的指示后,执行步骤304:移动接收窗口,以及执行步骤305:向视频发送端反馈接收窗口移动完成消息。视频发送端接收视频接收端反馈的接收窗口移动完成消息,执行步骤306:移动发送窗口以丢弃掉窗口外的数据包。

本实施例中的视频传输以及接收方案可以有效地保证i帧传输的有效性,降低视频帧的误码率,提高视频接收端接收到的视频的质量。

实施例四

本实施例提供了一种视频数据传输装置,该装置用于实现上述视频数据传输方法,该装置可以设置于视频发送端一侧,图4是该装置的框图,如图4所示,该装置40包括:

第一传输模块41,用于以am将视频数据的i帧传输至视频接收端;

第一传输模块42,用于以um将视频数据的p帧以及b帧传输至视频接收端;

其中,i帧通过第一drb传输,p帧以及b帧通过第二drb传输,第一drb以及第二drb为不同的两个drb。

可选地,本实施例的视频传输装置还可以包括:

设置模块,用于在传输i帧、p帧以及b帧之前,为每个待发送的数据包设置对应的预设时长;通知模块,用于在检测到有数据包在其对应的预设时长内未发送成功的情况下,通知视频接收端移动接收窗口。

可选地,本实施例的视频传输装置还可以包括:

处理模块,用于在检测到有数据包在其对应的预设时长内未发送成功的情况下,移动发送窗口以丢弃在对应的预设时长内未发送成功的数据包。

可选地,本实施例的视频传输装置还可以包括:

打包模块,用于在传输i帧、p帧以及b帧之前,对视频数据进行打包,并在数据包中携带打包的时间戳。

本实施例提供的视频数据传输装置,通过将i帧与p帧和b帧分开传输,使用am模式传输i帧,提高了i帧传输的实时性,使用um模式以尽可能地多传输p帧与b帧,提高了视频图像的重量,即使在无线传输情况恶劣的情况下,也能够保证视频传输的可靠性,确保视频接收端接收到质量较高的视频图像。此外,通过将接收到的不同drb的数据包合并至同一缓存中,能够防止图像帧出现乱序的现象,降低了视频的误码率。

实施例五

本实施例提供了一种视频数据接收装置,该装置用于实现上述视频数据接收方法,该装置可以设置于视频接收端,图5是该装置的框图,如图5所示,该装置50包括:

第一接收模块51,用于接收视频发送端以am传输的视频数据的i帧;

第二接收模块52,用于接收视频接收端以um传输的视频数据的p帧以及b帧,其中,i帧通过第一数据承载drb传输,p帧以及b帧通过第二drb传输。

可选地,本实施例的视频接收装置还可以包括:确定模块,该模块用于在接收到i帧、p帧以及b帧之后,将接收到的由第一drb以及第二drb传输的数据包合并至一个缓存中,根据数据包中的打包时间戳来确定缓存中的i帧、p帧以及b帧之间的对应关系。

本实施例提供的视频数据接收装置,能够接收视频发送端通过两个不同的drb以am模式传输的i帧,以及以um模式传输的p帧与b帧,确保了视频传输的可靠性,即使在无线传输情况恶劣的情况下,视频接收端也能接收到质量较高的视频图像。此外,通过将接收到的不同drb的数据包合并至同一缓存中,能够防止图像帧出现乱序的现象,降低了视频的误码率。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

实施例六

本实施例提供了一种电子设备,该电子设备可以被提供为一服务器。图6是该电子设备的框图,如图6所示,该电子设备600包括处理器622,其数量可以为一个或多个,以及存储器632,用于存储可由处理器622执行的计算机程序。存储器632中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器622可以被配置为执行该计算机程序,以执行上述的视频数据传输方法。

另外,电子设备600还可以包括电源组件626和通信组件650,该电源组件626可以被配置为执行电子设备600的电源管理,该通信组件650可以被配置为实现电子设备600的通信,例如,有线或无线通信。此外,该电子设备600还可以包括输入/输出(i/o)接口658。电子设备600可以操作基于存储在存储器632的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm等等。

本实施例还提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,该程序被处理器执行时实现本申请上述实施例提供的任意一种视频数据传输方法,该存储介质例如包括程序指令的存储器632,上述程序指令可由电子设备600的处理器622执行以完成上述视频数据传输方法。

实施例七

本实施例提供了一种电子设备,该电子设备可以被提供为一种视频接收终端,图7是该电子设备的框图,如图7所示,该电子设备700可以包括:处理器701,计算机可读存储介质,本实施例以存储器702为例进行说明,多媒体组件703,输入/输出(i/o)接口704,以及通信组件705。

其中,处理器701用于控制该电子设备700的整体操作,以完成上述的视频数据接收方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如,可以存储从视频发送端接收到的视频数据等,或者从视频发送端发送的移动窗口的指令,或者是预设时长。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件可以用来播放从视频接收端接收到的视频,该多媒体组件可以包括屏幕和音频组件,其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口703为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件704可以包括:wi-fi模块,蓝牙模块,nfc模块。

在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的视频数据接收方法。

本实施例还提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,该程序被处理器执行时实现本申请上述实施例提供的任意一种视频数据接收方法,该存储介质例如包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述视频数据接收方法。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1