CN110996122A - 视频帧传输方法、装置、计算机设备及存储介质 - Google Patents

视频帧传输方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN110996122A
CN110996122A CN201911276877.2A CN201911276877A CN110996122A CN 110996122 A CN110996122 A CN 110996122A CN 201911276877 A CN201911276877 A CN 201911276877A CN 110996122 A CN110996122 A CN 110996122A
Authority
CN
China
Prior art keywords
video
frame
data
reference frame
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
Application number
CN201911276877.2A
Other languages
English (en)
Other versions
CN110996122B (zh
Inventor
华耀波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Cloud Computing Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Cloud Computing Beijing Co Ltd filed Critical Tencent Cloud Computing Beijing Co Ltd
Priority to CN201911276877.2A priority Critical patent/CN110996122B/zh
Publication of CN110996122A publication Critical patent/CN110996122A/zh
Application granted granted Critical
Publication of CN110996122B publication Critical patent/CN110996122B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请提供了一种视频帧传输方法、装置、计算机设备及存储介质,涉及视频处理技术领域。所述方法包括:视频接收设备通过接收视频编码设备发送的第一视频帧的视频数据,当成功接收到第一视频帧的视频数据时,解析视频数据中包含的参考帧指示信息,根据参考帧指示信息所指示的第一视频帧的参考帧,对视频数据进行解码获得第一视频帧。本申请实施例提供的技术方案,可以使得接收端可以根据视频数据中的参考帧指示信息精确地选择之前已经成功接收到的视频帧作为参考帧,从而跳过发生未成功接收到的视频帧进行视频解码播放,降低了发生卡顿的时长,提高实时音视频传输的效果。

Description

视频帧传输方法、装置、计算机设备及存储介质
技术领域
本申请实施例涉及视频处理技术领域,特别涉及一种视频帧传输方法、装置、计算机设备及存储介质。
背景技术
网页即时通信(Web Real-Time Communication,WebRTC)是一个支持网页浏览器进行实时语音对话或视频对话的方案,目前在实时音视频场景中被广泛的应用。
WebRTC在进行实时的音视频传输时,可以传输基于H264标准编码的视频数据。在相关技术中,WebRTC方案主要依靠其带宽估计和码率控制算法结合自动重传请求以及前向纠错功能,在弱网的情况下,在播放端部分的复原视频数据,从而尽可能的保证视频的流畅度。
然而,相关技术中的WebRTC方案并不能保证完全不丢包,而由于H264标准的视频数据的编码方式是基于图像组(group of pictures,GOP)的编码方式,GOP内只要有一帧的数据无法恢复,则从该帧到GOP的最后一帧都无法解码播放,从而导致卡顿时长过长,影响实时音视频传输的效果。
发明内容
本申请实施例提供了一种视频帧传输方法、装置、计算机设备及存储介质,所述技术方案如下:
一方面,本申请实施例提供了一种视频帧传输方法,所述方法由视频接收设备执行,所述方法包括:
接收视频编码设备发送的第一视频帧的视频数据,所述视频数据中包含参考帧指示信息,所述参考帧指示信息用于指示所述第一视频帧的参考帧;所述第一视频帧的参考帧是由所述视频接收设备根据所述视频播放设备最近一次反馈的视频帧标识确定的;
当成功接收到所述第一视频帧的视频数据时,解析所述视频数据中包含的所述参考帧指示信息;
根据所述参考帧指示信息所指示的所述第一视频帧的参考帧,对所述视频数据进行解码获得所述第一视频帧。
另一方面,本申请实施例提供了一种视频帧传输方法,所述方法由视频编码设备执行,所述方法包括:
在对第一视频帧进行编码时,根据视频接收设备最近一次反馈的视频帧标识确定所述第一视频帧的参考帧;
生成所述用于指示所述第一视频帧的参考帧的参考帧指示信息;
生成所述第一视频帧的视频数据,所述视频数据中包含所述参考帧指示信息;
向所述视频接收设备发送所述第一视频帧的视频数据。
又一方面,本申请实施例提供了一种视频帧传输装置,所述装置用于视频接收设备中,所述装置包括:
数据接收模块,用于接收视频编码设备发送的第一视频帧的视频数据,所述视频数据中包含参考帧指示信息,所述参考帧指示信息用于指示所述第一视频帧的参考帧;所述第一视频帧的参考帧是由所述视频接收设备根据所述视频播放设备最近一次反馈的视频帧标识确定的;
信息解析模块,用于当成功接收到所述第一视频帧的视频数据时,解析所述视频数据中包含的所述参考帧指示信息;
视频帧获取模块,用于根据所述参考帧指示信息所指示的所述第一视频帧的参考帧,对所述视频数据进行解码获得所述第一视频帧。
可选的,所述信息解析模块,包括:
字段解析子模块,用于当成功接收到所述第一视频帧的视频数据时,解析所述视频数据中的自定义字段,所述自定义字段是所述视频数据的数据格式中预留的字段;
信息提取子模块,用于从所述自定义字段中提取所述参考帧指示信息。
可选的,视频数据是基于画面组GOP的视频数据;
所述自定义解析子模块,用于,
解析所述视频数据中的补充增强信息单元SEI。
可选的,所述视频数据是基于实时传输协议RTP传输的数据;
所述自定义解析子模块,用于,
解析用于携带所述视频数据的RTP包的padding参数字段。
可选的,所述参考帧指示信息中包含参考帧偏移量,所述参考帧偏移量是所述第一视频帧的参考帧相对于所述第一视频帧的偏移量。
可选的,所述装置还包括:
响应发送模块,用于当成功接收到所述第一视频帧的视频数据时,向所述视频编码设备发送数据接收响应,所述数据接收响应中包含所述第一视频帧的视频帧标识。
可选的,所述响应发送模块,包括:
响应发送子模块,用于通过复用传输所述视频数据的传输通道,向所述视频编码设备发送数据接收响应。
可选的,所述数据接收模块,包括:
数据接收子模块,用于接收所述视频编码设备通过网页即时通信WebRTC发送的所述第一视频帧的视频数据。
还一方面,本申请实施例提供了一种视频帧传输装置,所述装置用于视频编码设备中,所述装置包括:
参考帧确定模块,用于在对第一视频帧进行编码时,根据视频接收设备最近一次反馈的视频帧标识确定所述第一视频帧的参考帧;
信息生成模块,用于生成所述用于指示所述第一视频帧的参考帧的参考帧指示信息;
数据生成模块,用于生成所述第一视频帧的视频数据,所述视频数据中包含所述参考帧指示信息;
数据发送模块,用于向所述视频接收设备发送所述第一视频帧的视频数据。
可选的,所述装置还包括:
响应接收模块,用于接收所述视频接收设备发送的数据接收响应,所述数据接收响应中包含所述第一视频帧的视频帧标识;
标识更新模块,用于将所述视频接收设备最近一次反馈的视频帧标识更新为所述第一视频帧的视频帧标识。
再一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的视频帧传输方法。
再一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方面所述的视频帧传输方法。
还一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品被处理器执行时,用于实现上述视频帧传输方法。
本申请实施例提供的技术方案可以包括如下有益效果:
本申请实施例提供的视频帧传输方案,视频接收设备成功接收到第一视频帧的视频数据时,解析视频数据中包含的参考帧指示信息,其中,第一视频帧的参考帧是由视频接收设备根据视频播放设备最近一次反馈的视频帧标识确定的,根据参考帧指示信息所指示的第一视频帧的参考帧,对视频数据进行解码获得第一视频帧。通过上述方案,编码端可以根据接收端最近一次反馈的视频帧标识,将参考帧指示信息直接添加在视频数据中传输给接收端,从而在不支持额外的帧信息传输的场景下,使得编码端和接收端能够交互视频数据的接收情况,使得接收端可以根据参考帧指示信息精确地选择之前已经成功接收到的视频帧作为参考帧,从而跳过发生未成功接收到的视频帧进行视频解码播放,降低了发生卡顿的时长,提高实时音视频传输的效果。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请一个实施例提供的通信系统的简化框图;
图2是本申请示例性示出的视频编码器和视频解码器在流式传输环境中的放置方式的示意图;
图3是本申请一个实施例提供的视频帧传输方法的流程图;
图4是本申请另一个实施例提供的视频帧传输方法的流程图;
图5是图4所示实施例涉及的一种视频编码序列的示意图;
图6是图4所示实施例涉及的一种视频编解码信息传递的示意图;
图7是图4所示实施例涉及的一种添加SEI的帧信息格式的示意图;
图8是图4所示实施例涉及的一种数据接收响应格式的示意图;
图9是图4所示实施例涉及的一种视频数据传输流程图;
图10是本申请一个实施例提供的视频帧传输装置的框图;
图11是本申请另一个实施例提供的视频帧传输装置的框图;
图12是本申请一个实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
如图1所示,其示出了本申请一个实施例提供的通信系统的简化框图。通信系统100包括多个设备,所述设备可通过例如网络150彼此通信。举例来说,通信系统100包括通过网络150互连的第一设备110和第二设备120。在图1的实施例中,第一设备110和第二设备120执行单向数据传输。举例来说,第一设备110可对视频数据例如由第一设备110采集的视频图片流进行编码以通过网络150传输到第二设备120。已编码的视频数据以一个或多个已编码视频码流形式传输。第二设备120可从网络150接收已编码视频数据,对已编码视频数据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图片。
在另一实施例中,通信系统100包括执行已编码视频数据的双向传输的第三设备130和第四设备140,所述双向传输可例如在视频会议期间发生。对于双向数据传输,第三设备130和第四设备140中的每个设备可对视频数据(例如由设备采集的视频图片流)进行编码,以通过网络150传输到第三设备130和第四设备140中的另一设备。第三设备130和第四设备140中的每个设备还可接收由第三设备130和第四设备140中的另一设备传输的已编码视频数据,且可对所述已编码视频数据进行解码以恢复视频数据,且可根据恢复的视频数据在可访问的显示装置上显示视频图片。
在图1的实施例中,第一设备110、第二设备120、第三设备130和第四设备140可为服务器、个人计算机和智能电话等计算机设备,但本申请公开的原理可不限于此。本申请实施例适用于PC(Personal Computer,个人计算机)、手机、平板电脑、媒体播放器和/或专用视频会议设备。网络150表示在第一设备110、第二设备120、第三设备130和第四设备140之间传送已编码视频数据的任何数目的网络,包括例如有线连线的和/或无线通信网络。通信网络150可在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本申请的目的,除非在下文中有所解释,否则网络150的架构和拓扑对于本申请公开的操作来说可能是无关紧要的。
作为实施例,图2示出视频编码器和视频解码器在流式传输环境中的放置方式。本申请所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字TV、在包括CD、DVD、存储棒等的数字介质上存储压缩视频等等。
流式传输系统可包括采集子系统213,所述采集子系统可包括数码相机等视频源201,所述视频源创建未压缩的视频图片流202。在实施例中,视频图片流202包括由数码相机拍摄的样本。相较于已编码的视频数据204(或已编码的视频码流),视频图片流202被描绘为粗线以强调高数据量的视频图片流,视频图片流202可由电子装置220处理,所述电子装置220包括耦接到视频源201的视频编码器203。视频编码器203可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于视频图片流202,已编码的视频数据204(或已编码的视频码流204)被描绘为细线以强调较低数据量的已编码的视频数据204(或已编码的视频码流204),其可存储在流式传输服务器205上以供将来使用。一个或多个流式传输客户端子系统,例如图2中的客户端子系统206和客户端子系统208,可访问流式传输服务器205以检索已编码的视频数据204的副本207和副本209。客户端子系统206可包括例如电子装置230中的视频解码器210。视频解码器210对已编码的视频数据的传入副本207进行解码,且产生可在显示器212(例如显示屏)或另一呈现装置(未描绘)上呈现的输出视频图片流211。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码的视频数据204、视频数据207和视频数据209(例如视频码流)进行编码。在实施例中,正在开发的视频编码标准非正式地称为VVC(Versatile Video Coding,下一代视频编码),
应注意,电子装置220和电子装置230可包括其它组件(未示出)。举例来说,电子装置220可包括视频解码器(未示出),且电子装置230还可包括视频编码器(未示出)。其中,视频解码器用于对接收到的已编码视频数据进行解码;视频编码器用于对视频数据进行编码。
需要说明的一点是,本申请实施例可以应用于H264等基于GOP进行编码的标准中。
还需要说明的一点是,本申请实施例提供的视频帧传输方法,各步骤的执行主体为视频编码设备或者视频接收设备,视频编码设备和视频接收设备均可以是计算机设备,该计算机设备是指具备数据计算、处理和存储能力的电子设备,如PC、手机、平板电脑、媒体播放器、专用视频会议设备、服务器等等。
下面,通过几个实施例对本申请技术方案进行介绍说明。
请参考图3,其示出了本申请一个实施例提供的视频帧传输方法的流程图。在本实施例中,主要以该方法应用于上文介绍的视频编码设备和视频接收设备中来举例说明。该方法可以包括如下几个步骤(301~307):
步骤301,视频编码设备在对第一视频帧进行编码时,根据视频接收设备最近一次反馈的视频帧标识确定该第一视频帧的参考帧。
步骤302,视频编码设备生成该用于指示该第一视频帧的参考帧的参考帧指示信息。
步骤303,视频编码设备生成该第一视频帧的视频数据,该视频数据中包含该参考帧指示信息。
步骤304,视频编码设备向该视频接收设备发送该第一视频帧的视频数据。
步骤305,视频接收设备接收视频编码设备发送的第一视频帧的视频数据,该视频数据中包含参考帧指示信息,该参考帧指示信息用于指示该第一视频帧的参考帧;该第一视频帧的参考帧是由该视频接收设备根据该视频播放设备最近一次反馈的视频帧标识确定的。
步骤306,当视频接收设备成功接收到该第一视频帧的视频数据时,解析该视频数据中包含的该参考帧指示信息。
步骤307,视频接收设备根据该参考帧指示信息所指示的该第一视频帧的参考帧,对该视频数据进行解码获得该第一视频帧。
综上所述,视频接收设备通过接收视频编码设备发送的第一视频帧的视频数据,其中视频数据中包含参考帧指示信息,参考帧指示信息用于指示第一视频帧的参考帧,第一视频帧的参考帧是由视频接收设备根据视频播放设备最近一次反馈的视频帧标识确定的,然后,当成功接收到第一视频帧的视频数据时,解析视频数据中包含的参考帧指示信息,根据参考帧指示信息所指示的第一视频帧的参考帧,对视频数据进行解码获得第一视频帧。视频编码设备在对第一视频帧进行编码时,根据视频接收设备最近一次反馈的视频帧标识确定第一视频帧的参考帧,然后生成用于指示第一视频帧的参考帧的参考帧指示信息,接着生成第一视频帧的视频数据,视频数据中包含参考帧指示信息,最后向视频接收设备发送第一视频帧的视频数据。通过上述方案,编码端可以根据接收端最近一次反馈的视频帧标识,将参考帧指示信息直接添加在视频数据中传输给接收端,从而在不支持额外的帧信息传输的场景下,使得编码端和接收端能够交互视频数据的接收情况,使得接收端可以根据参考帧指示信息精确地选择之前已经成功接收到的视频帧作为参考帧,从而跳过发生未成功接收到的视频帧进行视频解码播放,降低了发生卡顿的时长,提高实时音视频传输的效果。
相关技术中,基于X264标准的编码方案中,推流端可以依靠播放端反馈的帧信息来选取合适的参考帧进行编码,该算法可以称为参考帧选择算法(reference frameselection,RPS),这样播放端只要能够收到完整的一帧,都可以对后续接收到的视频帧进行解码。为了实现上述RPS能力,在传输视频数据时,推流端需要对应视频数据,同时传输每帧的帧信息(其中,帧信息可以包括帧序号和参考帧偏移量)。播放端收到帧信息后,做参考关系判断,满足参考关系后进行解码播放,同时将当前帧的帧序号反馈回推流端。然而,在相关技术中,WebRTC支持各种平台(android、iOS、mac、windows等)。如果要jiangRPS应用在WebRTC中,需要改动源码(WebRTC本身开源)。但内嵌于浏览器中的WebRTC由于无法改动,因此,现有的网页端的WebRTC传输通道无法支持RPS功能,因此支持视频数据附带帧信息的能力。
其中,推流是指把采集阶段封包好的内容传输到服务器的过程,是将现场的视频信号传到网络的过程。推流端是用来执行推流动作的终端或者设备。
而通过本申请上述实施例所示的方案,视频编码设备(对应推流端)可以将参考帧指示信息直接携带在视频数据中进行传输,不需要数据传输通道支持视频数据附带帧信息的能力,也可以将参考帧指示信息传递给视频接收设备(对应播放端),从而在不支持视频数据附带帧信息的能力的场景(比如上述WebRTC场景)下实现RPS功能,进而提高播放端的视频解码成功率,减少卡顿现象。
请参考图4,其示出了本申请另一个实施例提供的视频帧传输方法的流程图。在本实施例中,主要以该方法应用于上文介绍的视频接收设备和视频编码设备中来举例说明。该方法可以包括如下几个步骤(401~408):
步骤401,视频编码设备在对第一视频帧进行编码时,根据视频接收设备最近一次反馈的视频帧标识确定该第一视频帧的参考帧。
在本申请实施例中,视频编码设备获取到第一视频帧,对第一视频帧进行编码时,需要根据第一视频帧对应的参考帧对第一视频帧进行编码。
其中,视频帧在进行编码时,可以形成按照时间顺序排列的视频编码序列,在视频编码序列中,主要有三种NALU(Network Abstraction Layer Unit,网络抽象层单元)类型的视频帧,分别是I帧(Intra-Coded Picture,帧内编码图像帧)、P帧(Predictive-CodedPicture,预测编码图像帧)以及B帧(BidirectionallypredictedPicture,双向预测编码图像帧),I帧在进行编码时,不参考其他图像帧,只利用本帧的信息进行编码,P帧在进行编码时,需要利用之前的I帧或P帧为参考帧,参考帧数最多为2,都是前向的,采用运动预测的方式进行帧间预测编码,B帧是用来记录本帧与其前向图像帧以及后向图像帧之间的差别的双向差别帧,B帧在进行编码时,既需要之前的图像帧(I帧或P帧),也需要后来的图像帧(P帧),参考帧为前后各一帧,或者只是前向或后向,参考帧数可能是2,采用运动预测的方式进行帧间双向预测编码。
可选的,第一视频帧可以是任意一个P帧。
示例性的,请参考图5,其示出了本申请实施例涉及的一种视频编码序列的示意图。在视频编码序列中可以存在一个GOP(Group of picture,图像组),GOP是指两个I帧之间的一段视频帧序列。如图5所示,该视频帧序列由10帧数据组成,其中的各个帧按照视频帧序列中的位置可以获得由1到10的数字序号,1号帧为I帧,在编码时不需要根据参考帧进行编码,2号帧到10号帧为P帧,在进行编码时需要获取其对应的参考帧,根据对应的参考帧对各个P帧进行编码,比如,按照P帧的参考帧数最多为2且都是前向的这一规则,2号帧的参考帧可以为1号帧,3号帧的参考帧可以为1号帧或者2号帧,10号帧的参考帧可以为8号帧或者9号帧。
上述用来判断第一视频帧的参考帧的最近一次反馈的视频帧标识,是最近一次视频接收设备发送的数据接收响应中的内容,该内容请参考后续步骤406。
其中,上述视频接收设备反馈的视频帧标识可以是视频接收设备成功接收到一个视频帧的视频帧数据之后返回的,该成功接收的视频帧的标识。比如,该视频帧标识可以是视频帧的帧序号。
在本申请实施例中,视频帧的帧序号可以按照视频帧流的顺序进行编号,也就是说从视频流的第1个帧开始顺序且不间断的编号。
在另一种可能的实现方式中,上述视频帧的帧序号也可以按照各个GOP分别编号,也就是说,视频流中的每个GOP中的各个视频帧,从第一个视频帧开始顺序编号,下一个GOP中,再从第一个视频帧开始重新进行顺序编号。
步骤402,视频编码设备生成用于指示该第一视频帧的参考帧的参考帧指示信息。
可选的,该参考帧指示信息中包含参考帧偏移量,该参考帧偏移量是该第一视频帧的参考帧相对于该第一视频帧的偏移量。
比如,请参考图6,其示出了本申请实施例涉及的一种视频编解码信息传递的示意图。如图6所示,若第一视频帧为5号帧,最近一次反馈的视频帧标识为视频接收设备将接收到4号帧的数据接收响应发送给视频编码设备,视频编码设备可以从数据接收响应中获得视频帧标识为4号帧的视频帧可以作为参考帧,并在发送5号帧时,确定5号帧的参考帧为4号帧,视频编码设备生成对应的参考帧指示信息,其中参考帧偏移量为5号帧和4号帧之间的距离,即参考帧偏移量为1。
若视频编码设备在发送7号帧的视频数据时出现的数据丢失等情况导致视频接收设备获取帧信息出现异常时,可以确认最近一次反馈的视频帧标识为6号帧,则可以确认6号帧作为8号帧的参考帧,其中参考帧偏移量为6号帧和8号帧之间的距离,即参考帧偏移量为2。
可选的,该参考帧指示信息中还可以包含帧序号,该帧序号是该第一视频帧在视频编码序列中的序列号。
比如,如图6所示,为了确认5号帧的参考帧,在视频编码设备中生成的对应的参考帧指示信息可以包括帧序号为5的信息。
步骤403,视频编码设备生成该第一视频帧的视频数据,该视频数据中包含该参考帧指示信息。
可选的,上述视频数据中还可以包含第一视频帧的视频帧标识,比如帧序号,该帧序号是该第一视频帧在视频编码序列中的序列号。
比如,对于视频编码设备发送的5号帧的视频数据,该5号帧的视频数据中包含自己的帧序号(例如,帧序号为5)。
在本申请实施例中,第一视频帧的视频数据是将视频帧进行编码后得到的数据,参考帧指示信息可以通过补充增强信息(Supplemental Enhancement Information,SEI)的形式增加在视频帧的每一帧中。
例如,请参考图7,其示出了本申请实施例涉及的一种添加SEI的帧信息格式的示意图。一个视频帧中一般包含有起始码以及当前帧数据,如图7所示,在视频帧中添加SEI,SEI包括1比特禁止位(F)、2比特的优先级(NRI)、5比特的NALU类型、8比特的负载类型、8比特的负载长度、32比特的当前帧序号、8比特的参考帧偏移以及8比特的结束码。
其中,若编码序列为06f1 05 00 00 00 10 01 80,即表示禁止位为0×00,优先级为0×00,NULU类型为0×06,负载类型为0×f1,负载长度为0×05,当前帧的序列号为0×00000010=16,序列号为16,参考帧偏移为0×01,参考帧序号为当前帧序号16减去参考帧偏移1,参考帧的帧序号为15,结束码为0×80。
可选的,参考帧指示信息也可以通过其它方式携带在视频数据中,比如,当上述视频数据是通过实时传输协议(Real-time Transport Protocol,RTP)传输的视频数据时,该参考帧指示信息也可以携带在RTP包的填充(padding)参数中。
步骤404,视频编码设备向该视频接收设备发送该第一视频帧的视频数据。
在本申请实施例中,携带有参考帧指示信息的视频数据通过数据传输通道,由视频编码设备传输给视频接收设备。
可选的,该数据传输通道可以是UDP(User Datagram Protocol,用户数据报协议)传输通道,或者,该数据传输通道也可以是基于实时传输协议(Real-time TransportProtocol,RTP)的数据传输通道;或者,也可以是TCP(Transmission Control Protocol传输控制协议)传输通道。
其中,视频接收设备接收视频编码设备发送的第一视频帧的视频数据。比如,接收该视频编码设备通过网页即时通信WebRTC发送的该第一视频帧的视频数据。
其中,由于浏览器本身不能直接进行数据传输,浏览器需要分别与各自的服务器建立信道进行连接然后通过服务器进行相互之间的数据传输,WebRTC可以使浏览器为实时通信提供简单的JavaScript接口,通过一系列的信令,可以建立浏览器和浏览器之间的信道,通过浏览器调用设备的摄像头、话筒,使得浏览器之间可以传递音频和视频。
可选的,视频编码设备可以通过JavaScript接口经过一系列信令建立的信道向视频接收设备发送视频数据。
步骤405,当视频接收设备成功接收到该第一视频帧的视频数据时,解析该视频数据中包含的该参考帧指示信息。
可选的,当视频接收设备成功接收到该第一视频帧的视频数据时,可以解析该视频数据中的自定义字段,该自定义字段是该视频数据的数据格式中预留的字段。然后视频接收设备从该自定义字段中提取该参考帧指示信息。
其中,根据视频数据的编码格式不同,解析视频数据获取参考帧指示信息的方式可以包括以下两种情况。
1)当视频数据是基于画面组GOP按照H264格式编码的视频数据时,该视频数据中的自定义字段为添加的补充增强信息,解析该视频数据中的SEI。从SEI中可以提取到该视频数据中包含的参考帧指示信息。
还是以SEI的编码序列为06f1 05 00 00 00 10 01 80为例,视频接收设备可以根据该序列得到禁止位为0×00,优先级为0×00,NULU类型为0×06,负载类型为0×f1,负载长度为0×05,当前帧的序列号为0×00000010=16,序列号为16,参考帧偏移为0×01,参考帧序号为当前帧序号16减去参考帧偏移1,参考帧的帧序号为15,结束码为0×80。
2)当该视频数据是基于实时传输协议RTP传输的数据时,该视频数据中的自定义字段为用于携带该视频数据的RTP包的填充(padding)参数字段,通过解析该视频数据的RTP包的padding参数字段可以从中提取出该视频数据中包含的参考帧指示信息。
其中,当视频数据通过RTP协议传输时,视频帧基于画面组GOP按照H264格式生成的H264数据包,在通过RTP传输时需要通过RTP分片发送,在视频数据生成RTP包的过程中,可以将自定义字段即参考帧指示信息放到RTP包的填充部分,当视频接收设备接收到RTP包后,对RTP包进行解析,将填充部分的参考帧指示信息提取出来。
步骤406,向该视频编码设备发送数据接收响应,该数据接收响应中包含该第一视频帧的视频帧标识。
在本申请实施例中,视频接收设备当成功接收到视频数据时,视频接收设备根据解析出的参考帧指示信息,生成数据接收响应,通过传输通道将数据接收响应发送给视频编码设备。
其中,数据接收响应为固定格式的一种确认字符(Acknowledgement,ACK)。
比如,以上述视频则标识是帧序号为例,请参考图8,其示出了本申请实施例涉及的一种数据接收响应格式的示意图。如图8所示,数据接收响应格式的确认字符包括1个字节的起始符,其固定长度为0×28,4个字节的标头长度,4个字节的实体长度,还包括头部信息、实体以及固定值为0×29的结束符,其中实体中包括帧序号。
可选的,视频接收设备可以通过复用传输该视频数据的传输通道,向该视频编码设备发送数据接收响应。
可选的,视频编码设备可以通过JavaScript接口经过一系列信令建立的信道接收该视频接收设备发送的数据接收响应,该数据接收响应中包含该第一视频帧的视频帧标识。其中数据接收响应可以包装成UDP包的形式进行传输。
步骤407,视频编码设备将该视频接收设备最近一次反馈的视频帧标识更新为该第一视频帧的视频帧标识。
在本申请实施例中,视频编码设备接收到由视频接收设备发送的数据接收响应,对数据接收响应进行解析提取ACK的实体中包含的帧序号,将帧序号对应的视频帧更新为第一视频帧的参考帧。
可选的,上述视频编码设备接收到一个数据包时,可以首先确定该数据包是否为承载数据接收响应的数据包。例如,以上述数据传输同到是UDP通道为例,当视频编码设备接收到一个UDP数据包时,解析该UDP数据包,当满足条件起始符长度等于0×28,结束符长度等于0×29,标头长度与实体长度之和加上10等于包长度时,可以判定该UDP数据包为ACK数据包(即上述承载数据接收响应的数据包),视频编码设备可以解析该ACK数据包获得实体信息中的帧序号,通过视频编码设备的编码器根据获取到的帧序号选取对应的帧作为参考帧。
步骤408,视频接收设备根据该参考帧指示信息所指示的该第一视频帧的参考帧,对该视频数据进行解码获得该第一视频帧。
在本申请实施例中,视频接收设备通过解析参考帧指示信息可以获得该第一视频帧对应的参考帧,根据参考帧的编码格式对第一视频帧对应的视频数据进行解码,获得该第一视频帧。
例如,当接收到一组视频数据时,如图6所示,在1号帧到7号帧中,视频接收设备可以按照前一帧解码当前帧的编码格式,8号帧的参考帧为6号帧,于是8号帧接着6号进行解码,在视频的实际播放时,可以由6号帧画面直接播放8号帧的画面,从而减少了发生的卡顿。
请参考图9,其示出了本申请实施例涉及的一种视频数据传输流程图。以视频数据基于画面组GOP按照H264标准进行编码为例,如图9所示,推流端(即上述视频编码设备)采集视频帧(S901),并按照播放端(即上述视频接收设备)最近反馈的视频帧序号确定参考帧,并按照参考帧对采集到的视频帧进行H264编码(S902),并且,推流段为每一帧进行编号,并为视频数据生成SEI信息(S903),该SEI信息中除了包含当前视频帧的帧序号之外,还包含参考帧偏移量。推流端将包含SEI信息的视频数据进行分包(S904)后,通过网络层中的UDP数据传输通道传输给播放端。由于SEI信息本身也属于视频数据的一部分,所以在传输过程中无需做任何的特殊改动。
播放端成功对接收到上述UDP包进行组帧(S905),当播放端成功接收到一个视频帧的完整的视频数据后,可以解析视频数据中的SEI信息(S906),获得参考帧偏移量以及当前帧的帧序号,一方面,播放端生成包含当前帧的帧序号的ACK包(S907),并将ACK包发送给推流端,由推流端解析ACK得到播放端反馈的帧序号(S908),以便通过该帧序号对下一帧视频帧进行H264编码;另一方面,播放端将视频数据存入缓冲区(S909),并对缓冲区中的视频数据,按照对应的参考帧偏移量进行解码播放(S910)。
综上所述,视频接收设备通过接收视频编码设备发送的第一视频帧的视频数据,其中视频数据中包含参考帧指示信息,参考帧指示信息用于指示第一视频帧的参考帧,第一视频帧的参考帧是由视频接收设备根据视频播放设备最近一次反馈的视频帧标识确定的,然后,当成功接收到第一视频帧的视频数据时,解析视频数据中包含的参考帧指示信息,根据参考帧指示信息所指示的第一视频帧的参考帧,对视频数据进行解码获得第一视频帧。视频编码设备在对第一视频帧进行编码时,根据视频接收设备最近一次反馈的视频帧标识确定第一视频帧的参考帧,然后生成用于指示第一视频帧的参考帧的参考帧指示信息,接着生成第一视频帧的视频数据,视频数据中包含参考帧指示信息,最后向视频接收设备发送第一视频帧的视频数据。通过上述方案,编码端可以根据接收端最近一次反馈的视频帧标识,将参考帧指示信息直接添加在视频数据中传输给接收端,从而在不支持额外的帧信息传输的场景下,使得编码端和接收端能够交互视频数据的接收情况,使得接收端可以根据参考帧指示信息精确地选择之前已经成功接收到的视频帧作为参考帧,从而跳过发生未成功接收到的视频帧进行视频解码播放,降低了发生卡顿的时长,提高实时音视频传输的效果。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图10,其示出了本申请一个实施例提供的视频帧传输装置的框图。该装置具有实现上述视频帧传输方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的视频接收设备,也可以设置在视频接收设备上。该装置可以包括:数据接收模块1010、信息解析模块1020以及视频帧获取模块1030。
数据接收模块1010,用于接收视频编码设备发送的第一视频帧的视频数据,所述视频数据中包含参考帧指示信息,所述参考帧指示信息用于指示所述第一视频帧的参考帧;所述第一视频帧的参考帧是由所述视频接收设备根据所述视频播放设备最近一次反馈的视频帧标识确定的;
信息解析模块1020,用于当成功接收到所述第一视频帧的视频数据时,解析所述视频数据中包含的所述参考帧指示信息;
视频帧获取模块1030,用于根据所述参考帧指示信息所指示的所述第一视频帧的参考帧,对所述视频数据进行解码获得所述第一视频帧。
在一种可能的实现方式中,所述信息解析模块1020,包括:
字段解析子模块,用于当成功接收到所述第一视频帧的视频数据时,解析所述视频数据中的自定义字段,所述自定义字段是所述视频数据的数据格式中预留的字段;
信息提取子模块,用于从所述自定义字段中提取所述参考帧指示信息。
在一种可能的实现方式中,视频数据是基于画面组GOP的视频数据;
所述自定义解析子模块,用于,
解析所述视频数据中的补充增强信息单元SEI。
在一种可能的实现方式中,所述视频数据是基于实时传输协议RTP传输的数据;
所述自定义解析子模块,用于,
解析用于携带所述视频数据的RTP包的padding参数字段。
在一种可能的实现方式中,所述参考帧指示信息中包含参考帧偏移量,所述参考帧偏移量是所述第一视频帧的参考帧相对于所述第一视频帧的偏移量。
在一种可能的实现方式中,所述装置还包括:
响应发送模块,用于当成功接收到所述第一视频帧的视频数据时,向所述视频编码设备发送数据接收响应,所述数据接收响应中包含所述第一视频帧的视频帧标识。
在一种可能的实现方式中,所述响应发送模块,包括:
响应发送子模块,用于通过复用传输所述视频数据的传输通道,向所述视频编码设备发送数据接收响应。
在一种可能的实现方式中,所述数据接收模块1010,包括:
数据接收子模块,用于接收所述视频编码设备通过网页即时通信WebRTC发送的所述第一视频帧的视频数据。
综上所述,本申请实施例提供的技术方案,视频接收设备通过接收视频编码设备发送的第一视频帧的视频数据,其中视频数据中包含参考帧指示信息,参考帧指示信息用于指示第一视频帧的参考帧,第一视频帧的参考帧是由视频接收设备根据视频播放设备最近一次反馈的视频帧标识确定的,然后,当成功接收到第一视频帧的视频数据时,解析视频数据中包含的参考帧指示信息,根据参考帧指示信息所指示的第一视频帧的参考帧,对视频数据进行解码获得第一视频帧。通过上述方案,编码端可以根据接收端最近一次反馈的视频帧标识,将参考帧指示信息直接添加在视频数据中传输给接收端,从而在不支持额外的帧信息传输的场景下,使得编码端和接收端能够交互视频数据的接收情况,使得接收端可以根据参考帧指示信息精确地选择之前已经成功接收到的视频帧作为参考帧,从而跳过发生未成功接收到的视频帧进行视频解码播放,降低了发生卡顿的时长,提高实时音视频传输的效果。
请参考图11,其示出了本申请一个实施例提供的视频帧传输装置的框图。该装置具有实现上述视频帧传输方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的视频编码设备,也可以设置在视频编码设备上。该装置可以包括:参考帧确定模块1110、信息生成模块1120、数据生成模块1130和数据发送模块1140。
参考帧确定模块1110,用于在对第一视频帧进行编码时,根据视频接收设备最近一次反馈的视频帧标识确定所述第一视频帧的参考帧;
信息生成模块1120,用于生成所述用于指示所述第一视频帧的参考帧的参考帧指示信息;
数据生成模块1130,用于生成所述第一视频帧的视频数据,所述视频数据中包含所述参考帧指示信息;
数据发送模块1140,用于向所述视频接收设备发送所述第一视频帧的视频数据。
在一种可能的实现方式中,所述装置还包括:
响应接收模块,用于接收所述视频接收设备发送的数据接收响应,所述数据接收响应中包含所述第一视频帧的视频帧标识;
标识更新模块,用于将所述视频接收设备最近一次反馈的视频帧标识更新为所述第一视频帧的视频帧标识。
综上所述,本申请实施例提供的技术方案,视频编码设备在对第一视频帧进行编码时,根据视频接收设备最近一次反馈的视频帧标识确定第一视频帧的参考帧,然后生成用于指示第一视频帧的参考帧的参考帧指示信息,接着生成第一视频帧的视频数据,视频数据中包含参考帧指示信息,最后向视频接收设备发送第一视频帧的视频数据。通过上述方案,编码端可以根据接收端最近一次反馈的视频帧标识,将参考帧指示信息直接添加在视频数据中传输给接收端,从而在不支持额外的帧信息传输的场景下,使得编码端和接收端能够交互视频数据的接收情况,使得接收端可以根据参考帧指示信息精确地选择之前已经成功接收到的视频帧作为参考帧,从而跳过发生未成功接收到的视频帧进行视频解码播放,降低了发生卡顿的时长,提高实时音视频传输的效果。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图12示出了本申请一个示例性实施例提供的计算机设备1200的结构框图。该计算机设备1200可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts GroupAudio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture ExpertsGroup Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。计算机设备1200还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。其中,上述计算机设备可以实现为上述各个方法实施例中的视频编码设备或者视频接收设备。
通常,计算机设备1200包括有:处理器1201和存储器1202。
处理器1201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1201可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1201也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1201可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1201还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1201所执行以实现本申请中方法实施例提供的视频帧传输方法的全部或者部分步骤。
在一些实施例中,计算机设备1200还可选包括有:外围设备接口1203和至少一个外围设备。处理器1201、存储器1202和外围设备接口1203之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1203相连。具体地,外围设备包括:射频电路1204、触摸显示屏1205、摄像头1206、音频电路1207、定位组件1208和电源1209中的至少一种。
外围设备接口1203可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1201和存储器1202。在一些实施例中,处理器1201、存储器1202和外围设备接口1203被集成在同一芯片或电路板上;在一些其他实施例中,处理器1201、存储器1202和外围设备接口1203中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1204用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1204通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1204将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1204包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1204可以通过至少一种无线通信协议来与其它计算机设备进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1204还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1205用于显示UI(UserInterface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1205是触摸显示屏时,显示屏1205还具有采集在显示屏1205的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1201进行处理。此时,显示屏1205还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1205可以为一个,设置计算机设备1200的前面板;在另一些实施例中,显示屏1205可以为至少两个,分别设置在计算机设备1200的不同表面或呈折叠设计;在再一些实施例中,显示屏1205可以是柔性显示屏,设置在计算机设备1200的弯曲表面上或折叠面上。甚至,显示屏1205还可以设置成非矩形的不规则图形,也即异形屏。显示屏1205可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(OrganicLight-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1206用于采集图像或视频。可选地,摄像头组件1206包括前置摄像头和后置摄像头。通常,前置摄像头设置在计算机设备的前面板,后置摄像头设置在计算机设备的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1206还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1207可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1201进行处理,或者输入至射频电路1204以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在计算机设备1200的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1201或射频电路1204的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1207还可以包括耳机插孔。
定位组件1208用于定位计算机设备1200的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件1208可以是基于美国的GPS(Global Positioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源1209用于为计算机设备1200中的各个组件进行供电。电源1209可以是交流电、直流电、一次性电池或可充电电池。
在一些实施例中,计算机设备1200还包括有一个或多个传感器1210。该一个或多个传感器1210包括但不限于:加速度传感器1211、陀螺仪传感器1212、压力传感器1213、指纹传感器1214、光学传感器1215以及接近传感器1216。
本领域技术人员可以理解,图12中示出的结构并不构成对计算机设备1200的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入计算机设备中的计算机可读存储介质。该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如图3或图4所述的视频帧传输方法中的全部或者部分步骤。
可选地,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被处理器执行时实现上述视频帧传输方法。

Claims (15)

1.一种视频帧传输方法,其特征在于,所述方法由视频接收设备执行,所述方法包括:
接收视频编码设备发送的第一视频帧的视频数据,所述视频数据中包含参考帧指示信息,所述参考帧指示信息用于指示所述第一视频帧的参考帧;
当成功接收到所述第一视频帧的视频数据时,解析所述视频数据中包含的所述参考帧指示信息;
根据所述参考帧指示信息所指示的所述第一视频帧的参考帧,对所述视频数据进行解码获得所述第一视频帧。
2.根据权利要求1所述的方法,其特征在于,所述当成功接收到所述第一视频帧的视频数据时,解析所述视频数据中包含的所述参考帧指示信息,包括:
当成功接收到所述第一视频帧的视频数据时,解析所述视频数据中的自定义字段,所述自定义字段是所述视频数据的数据格式中预留的字段;
从所述自定义字段中提取所述参考帧指示信息。
3.根据权利要求2所述的方法,其特征在于,视频数据是基于画面组GOP的视频数据;
所述解析所述视频数据中的自定义字段,包括:
解析所述视频数据中的补充增强信息单元SEI。
4.根据权利要求2所述的方法,其特征在于,所述视频数据是基于实时传输协议RTP传输的数据;
所述解析所述视频数据中的自定义字段,包括:
解析用于携带所述视频数据的RTP包的padding参数字段。
5.根据权利要求1所述的方法,其特征在于,所述参考帧指示信息中包含参考帧偏移量,所述参考帧偏移量是所述第一视频帧的参考帧相对于所述第一视频帧的偏移量。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当成功接收到所述第一视频帧的视频数据时,向所述视频编码设备发送数据接收响应,所述数据接收响应中包含所述第一视频帧的视频帧标识。
7.根据权利要求6所述的方法,其特征在于,所述向所述视频编码设备发送数据接收响应,包括:
通过复用传输所述视频数据的传输通道,向所述视频编码设备发送数据接收响应。
8.根据权利要求1至7任一所述的方法,其特征在于,所述接收视频编码设备发送的第一视频帧的视频数据,包括:
接收所述视频编码设备通过网页即时通信WebRTC发送的所述第一视频帧的视频数据。
9.一种视频帧传输方法,其特征在于,所述方法由视频编码设备执行,所述方法包括:
在对第一视频帧进行编码时,根据视频接收设备最近一次反馈的视频帧标识确定所述第一视频帧的参考帧;
生成所述用于指示所述第一视频帧的参考帧的参考帧指示信息;
生成所述第一视频帧的视频数据,所述视频数据中包含所述参考帧指示信息;
向所述视频接收设备发送所述第一视频帧的视频数据。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
接收所述视频接收设备发送的数据接收响应,所述数据接收响应中包含所述第一视频帧的视频帧标识;
将所述视频接收设备最近一次反馈的视频帧标识更新为所述第一视频帧的视频帧标识。
11.一种视频帧传输装置,其特征在于,所述装置用于视频接收设备中,所述装置包括:
数据接收模块,用于接收视频编码设备发送的第一视频帧的视频数据,所述视频数据中包含参考帧指示信息,所述参考帧指示信息用于指示所述第一视频帧的参考帧;所述第一视频帧的参考帧是由所述视频接收设备根据所述视频播放设备最近一次反馈的视频帧标识确定的;
信息解析模块,用于当成功接收到所述第一视频帧的视频数据时,解析所述视频数据中包含的所述参考帧指示信息;
视频帧获取模块,用于根据所述参考帧指示信息所指示的所述第一视频帧的参考帧,对所述视频数据进行解码获得所述第一视频帧。
12.根据权利要求11所述的装置,其特征在于,所述信息解析模块,包括:
字段解析子模块,用于当成功接收到所述第一视频帧的视频数据时,解析所述视频数据中的自定义字段,所述自定义字段是所述视频数据的数据格式中预留的字段;
信息提取子模块,用于从所述自定义字段中提取所述参考帧指示信息。
13.一种视频帧传输装置,其特征在于,所述装置用于视频编码设备中,所述装置包括:
参考帧确定模块,用于在对第一视频帧进行编码时,根据视频接收设备最近一次反馈的视频帧标识确定所述第一视频帧的参考帧;
信息生成模块,用于生成所述用于指示所述第一视频帧的参考帧的参考帧指示信息;
数据生成模块,用于生成所述第一视频帧的视频数据,所述视频数据中包含所述参考帧指示信息;
数据发送模块,用于向所述视频接收设备发送所述第一视频帧的视频数据。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至8任一项所述的方法,或者实现如权利要求9或10所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至8任一项所述的方法,或者实现如权利要求9或10所述的方法。
CN201911276877.2A 2019-12-12 2019-12-12 视频帧传输方法、装置、计算机设备及存储介质 Active CN110996122B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911276877.2A CN110996122B (zh) 2019-12-12 2019-12-12 视频帧传输方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911276877.2A CN110996122B (zh) 2019-12-12 2019-12-12 视频帧传输方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN110996122A true CN110996122A (zh) 2020-04-10
CN110996122B CN110996122B (zh) 2022-11-15

Family

ID=70092871

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911276877.2A Active CN110996122B (zh) 2019-12-12 2019-12-12 视频帧传输方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN110996122B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112215898A (zh) * 2020-09-18 2021-01-12 深圳市瑞立视多媒体科技有限公司 多相机间帧数据均衡控制方法、装置和计算机设备
CN112995685A (zh) * 2021-02-05 2021-06-18 杭州朗和科技有限公司 数据发送方法及装置、数据接收方法及装置、介质、设备
WO2021227781A1 (zh) * 2020-05-13 2021-11-18 华为技术有限公司 数据帧的传输方法和通信装置
CN115473875A (zh) * 2022-08-12 2022-12-13 海能达通信股份有限公司 视频帧的处理方法、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101291434A (zh) * 2007-04-17 2008-10-22 华为技术有限公司 多视编解码方法及装置
CN101360243A (zh) * 2008-09-24 2009-02-04 腾讯科技(深圳)有限公司 基于反馈参考帧的视频通信系统及方法
US20120219067A1 (en) * 2011-02-24 2012-08-30 Andrei Jefremov Transmitting A Video Signal
CN110225338A (zh) * 2016-12-30 2019-09-10 深圳市大疆创新科技有限公司 图像处理方法、装置、无人飞行器和接收端

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101291434A (zh) * 2007-04-17 2008-10-22 华为技术有限公司 多视编解码方法及装置
CN101360243A (zh) * 2008-09-24 2009-02-04 腾讯科技(深圳)有限公司 基于反馈参考帧的视频通信系统及方法
US20120219067A1 (en) * 2011-02-24 2012-08-30 Andrei Jefremov Transmitting A Video Signal
CN110225338A (zh) * 2016-12-30 2019-09-10 深圳市大疆创新科技有限公司 图像处理方法、装置、无人飞行器和接收端

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021227781A1 (zh) * 2020-05-13 2021-11-18 华为技术有限公司 数据帧的传输方法和通信装置
CN113676736A (zh) * 2020-05-13 2021-11-19 华为技术有限公司 数据帧的传输方法和通信装置
CN113676736B (zh) * 2020-05-13 2024-05-07 华为技术有限公司 数据帧的传输方法和通信装置
CN112215898A (zh) * 2020-09-18 2021-01-12 深圳市瑞立视多媒体科技有限公司 多相机间帧数据均衡控制方法、装置和计算机设备
CN112215898B (zh) * 2020-09-18 2024-01-30 深圳市瑞立视多媒体科技有限公司 多相机间帧数据均衡控制方法、装置和计算机设备
CN112995685A (zh) * 2021-02-05 2021-06-18 杭州朗和科技有限公司 数据发送方法及装置、数据接收方法及装置、介质、设备
CN112995685B (zh) * 2021-02-05 2023-02-17 杭州网易智企科技有限公司 数据发送方法及装置、数据接收方法及装置、介质、设备
CN115473875A (zh) * 2022-08-12 2022-12-13 海能达通信股份有限公司 视频帧的处理方法、电子设备及存储介质

Also Published As

Publication number Publication date
CN110996122B (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
CN110996122B (zh) 视频帧传输方法、装置、计算机设备及存储介质
US11245939B2 (en) Generating and transmitting metadata for virtual reality
CN109981607B (zh) 媒体流处理方法及装置、电子设备和存储介质
TW200822758A (en) Scalable video coding and decoding
CN110784718B (zh) 视频数据编码方法、装置、设备和存储介质
KR101296059B1 (ko) 다중­소스 멀티미디어 프레젠테이션들을 저장하기 위한 방법 및 시스템
US11109012B2 (en) Carriage of PCC in ISOBMFF for flexible combination
EP2684294A1 (en) Render-orientation information in video bitstream
US12035020B2 (en) Split rendering of extended reality data over 5G networks
CN110996117B (zh) 视频转码方法、装置、电子设备和存储介质
CN110519640B (zh) 视频处理方法、编码器、cdn服务器、解码器、设备及介质
JP2019083555A (ja) 情報処理装置、コンテンツ要求方法およびコンピュータプログラム
CN113141523A (zh) 资源传输方法、装置、终端及存储介质
CN103081488A (zh) 发信号通知用于特技模式视频表示的视频样本
US20230353747A1 (en) Storage of evc decoder configuration information
WO2021057697A1 (zh) 视频编解码方法和装置、存储介质及电子装置
CN112533014A (zh) 视频直播中目标物品信息处理和显示方法、装置及设备
KR101701742B1 (ko) 이동통신 단말기 간 실시간 스트리밍을 위한 장치 및 방법
CN109587497B (zh) Flv流的音频数据传输方法、装置和系统
US9118803B2 (en) Video conferencing system
WO2022116822A1 (zh) 沉浸式媒体的数据处理方法、装置和计算机可读存储介质
CN116112476A (zh) 一种云桌面的多媒体播放方法、系统、设备及存储介质
WO2022241119A1 (en) Split rendering of extended reality data over 5g networks
CN116264619A (zh) 资源处理方法、装置、服务器、终端、系统及存储介质
CN115550688A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40021440

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant