CN114513658B - 一种视频加载方法、装置、设备及介质 - Google Patents

一种视频加载方法、装置、设备及介质 Download PDF

Info

Publication number
CN114513658B
CN114513658B CN202210001296.3A CN202210001296A CN114513658B CN 114513658 B CN114513658 B CN 114513658B CN 202210001296 A CN202210001296 A CN 202210001296A CN 114513658 B CN114513658 B CN 114513658B
Authority
CN
China
Prior art keywords
frame
path
frames
encoded
video
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.)
Active
Application number
CN202210001296.3A
Other languages
English (en)
Other versions
CN114513658A (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.)
Juhaokan Technology Co Ltd
Original Assignee
Juhaokan Technology 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 Juhaokan Technology Co Ltd filed Critical Juhaokan Technology Co Ltd
Priority to CN202210001296.3A priority Critical patent/CN114513658B/zh
Publication of CN114513658A publication Critical patent/CN114513658A/zh
Application granted granted Critical
Publication of CN114513658B publication Critical patent/CN114513658B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities

Landscapes

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

Abstract

本公开涉及一种视频加载方法、装置、设备及介质,该方法包括:响应于终端的传输视频帧指令,确定在所述终端显示当前视场角;确定所述当前视场角中的第一视频分块和目标视频分块;当对应所述第一视频分块,在第一路编码帧中,选择预设时刻的对应所述第一视频分块的数据帧下发;当对应所述目标视频分块,在第一路编码帧中,确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧时,从所述第一路编码帧中,选择所述预设时刻的对应的第一关键帧下发;确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧时,从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发。本公开提高了视频加载的速度。

Description

一种视频加载方法、装置、设备及介质
技术领域
本公开涉及视频加载技术领域,尤其涉及一种视频加载方法、装置、设备及介质。
背景技术
在FOV(Field of View,视场角)视频播放中,每个视频分块进行独立的编码,可以采用帧内帧间编码,即I帧(Intra Frame,帧内编码帧)+P帧(Predictive Frame,前向预测编码帧)的方式进行编码,播放器通过对每个视频分块分别进行下载和解码实现视频播放。在使用基于FOV的播放器时,例如VR(Virtual Reality,虚拟现实)眼镜、手机等,每个FOV对应的可视区域是固定的,用户无法同时看到全景视频中的所有内容,所以采用基于FOV的视频播放方式。
编码采用不同码率对视频流进行编码,得到低清晰度的视频流及高清晰度的视频流,基于FOV的视频播放方式是:先传输给播放器低清晰度的视频流以通过解码器解码后显示全景视频;当用户观看时,确定当前FOV,从高清晰度视频流中,传输给播放器当前FOV的视频分块的视频帧,播放器对高清晰度和低清晰度的当前FOV的视频分块的视频帧进行解码和叠加,从而在播放器上播放所述视频分块的视频内容,而在用户可视区域外的视频仍只保留一个低清晰度的视频内容进行渲染全景视频。
当FOV发生改变,确定改变后FOV与改变前FOV内的视频分块相比新增加的视频分块,播放器需要从服务器下载这些视频分块的高清晰度视频帧,通过解码播放这些视频分块的视频内容。若在某一时刻FOV发生改变时,当前传输的视频帧是P帧,由于P帧仅保存当前帧跟之前的一个I帧(或P帧)的差别,因此需要依赖之前的一个I帧(或P帧)才可进行解码,而I帧不需要依赖前后帧信息,可独立进行解码,所以需要等到新增加的视频分块的I帧才能进行解码播放,导致新增加的视频分块加载时间变长。
为了解决上述问题,有些厂商在编码时,频繁的加入I帧,让I帧更加密集,减少GOP(Group of Picture,图像组),使解码速度更快,但带来的问题就是I帧的数据量较大,导致在非播放时,数据量过大,浪费了资源。
发明内容
本公开提供一种视频加载方法、装置、设备及介质,提高了清晰视频加载的速度。
根据本公开实施例的第一方面,提供一种视频加载方法,应用于服务器,该方法包括:
响应于终端的传输视频帧指令,确定在所述终端显示当前视场角;
确定所述当前视场角中的第一视频分块和目标视频分块,其中,所述第一视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角范围内的视频分块,所述目标视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角外的视频分块;
响应于所述当前视场角相对于所述上一视频帧的视场角发生变化时,对应所述第一视频分块,在第一路编码帧中,选择预设时刻的对应所述第一视频分块的数据帧下发,其中,所述预设时刻为所述终端显示所述当前视场角图像对应的时刻,所述第一路编码帧中的数据帧包括对应所述各视频分块的第一关键帧和第一非关键帧,所述第一关键帧采用帧内编码的方式编码而成,所述第一非关键帧采用帧间编码的方式编码而成,同一视频分块的所述第一关键帧和所述第一非关键帧对应的时刻不同;
响应于所述当前视场角相对于所述上一视频帧的视场角发生变化时,对应所述目标视频分块,在第一路编码帧中,确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧时,从所述第一路编码帧中,选择所述预设时刻的对应的第一关键帧下发;确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧时,从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发,其中,所述第二路编码帧中的数据帧包括对应所述各视频分块的第二关键帧和第二非关键帧,所述第二非关键帧采用帧内编码的方式编码而成,同一视频分块的所述第二关键帧和所述第二非关键帧对应的时刻不同。
根据本公开实施例的第二方面,提供一种视频加载方法,应用于服务器,该方法包括:
对每视频帧中的各视频分块进行第一路编码,得到各视频分块对应的第一路编码帧中的数据帧,其中,所述第一路编码帧中的数据帧包括对应所述各视频分块的第一关键帧和第一非关键帧,所述第一关键帧采用帧内编码的方式编码而成,所述第一非关键帧采用帧间编码的方式编码而成,同一视频分块的所述第一关键帧和所述第一非关键帧对应的时刻不同;
对每视频帧中的各视频分块进行第二路编码,得到各视频分块对应的第二路编码帧中的数据帧,其中,所述第二路编码帧中的数据帧包括对应所述各视频分块的第二关键帧和第二非关键帧,所述第二非关键帧采用帧内编码的方式编码而成,同一视频分块的所述第二关键帧和所述第二非关键帧对应的时刻不同。
根据本公开实施例的第三方面,提供一种视频加载方法,应用于终端,该方法包括:
确定当前视场角相对于上一视频帧的视场角发生变化,向服务器发送显示当前视场角的传输视频帧指令;
获取服务器对于第一视频分块,从第一路编码帧中选择并下发的预设时刻的对应所述第一视频分块的数据帧;
获取服务器对于目标视频分块,在确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧时,从所述第一路编码帧中选择并下发的预设时刻的对应的第一关键帧,或者,获取服务器确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧时,从所述第二路编码帧中选择并下发的预设时刻的对应的第二非关键帧;
对获取的视频帧进行解码后播放;
其中,所述第一视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角范围内的视频分块,所述目标视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角外的视频分块。
根据本公开实施例的第四方面,提供一种视频加载设备包括:
通信模块,用于与终端进行通信;
编码器,用于对每视频帧中的各视频分块进行第一路编码,得到各视频分块对应的第一路编码帧中的数据帧,及进行第二路编码,得到各视频分块对应的第二路编码帧中的数据帧,其中,所述第一路编码帧中的数据帧包括对应所述各视频分块的第一关键帧和第一非关键帧,所述第一关键帧采用帧内编码的方式编码而成,所述第一非关键帧采用帧间编码的方式编码而成,同一视频分块的所述第一关键帧和所述第一非关键帧对应的时刻不同,所述第二路编码帧中的数据帧包括对应所述各视频分块的第二关键帧和第二非关键帧,所述第二非关键帧采用帧内编码的方式编码而成,同一视频分块的所述第二关键帧和所述第二非关键帧对应的时刻不同;
存储器,用于存储编码得到的第一路编码帧中的数据帧和第二路编码帧中的数据帧;
处理器,用于通过通信模块接收终端的传输视频帧指令,确定在所述终端显示当前视场角,并确定所述当前视场角中的第一视频分块和目标视频分块,其中,所述第一视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角范围内的视频分块,所述目标视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角外的视频分块;响应于所述当前视场角相对于所述上一视频帧的视场角发生变化时,对应所述第一视频分块,在第一路编码帧中,选择预设时刻的对应所述第一视频分块的数据帧下发;响应于所述当前视场角相对于所述上一视频帧的视场角发生变化时,对应所述目标视频分块,在第一路编码帧中,确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧时,从所述第一路编码帧中,选择所述预设时刻的对应的第一关键帧下发;确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧时,从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开基于对每视频帧中的各视频分块进行两路编码,所得到的各视频分块对应的第一路编码帧中的数据帧和第二路编码帧中的数据帧,在当前FOV相对于上一视频帧的FOV发生变化时,区分出位于上一视频帧的视场角范围内的第一视频分块及位于上一视频帧的视场角外的目标视频分块,对于两类视频分块分别确定采用的传输方式,对于第一视频分块,从第一路编码帧中确定出预设时刻的数据帧并下发,可以保证终端对位于上一视频帧的视场角内的视频分块快速解码;对于目标视频分块,先判断预设时刻是否对应第一路编码帧中的关键帧,若是,从第一路编码帧中确定出预设时刻的数据帧并下发,否则,从第二路编码帧中确定预设时刻对应的非关键帧下发,由于第二路编码帧中的非关键帧采用的是帧内编码方式,因此,本申请的方案可以保证位于上一视频帧的视场角外的视频分块快速解码,同时可以减少因为需要全部下发第一视频文件所需要的下发数据量而造成的下发数据量较大的问题,相应的,也减少了下发所需要的时间,并且也可以使终端快速加载出当前视场角下的高清视频内容。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的应用场景示意图;
图2是根据一示例性实施例示出的一种应用于服务器的视频加载方法的流程图;
图3是根据一示例性实施例示出的对各视频分块进行两路编码及下发的示意图;
图4是根据一示例性实施例示出的另一种应用于服务器的视频加载方法的流程图;
图5是根据一示例性实施例示出的在FOV发生改变时确定目标视频分块和第一视频分块的示意图;
图6是根据一示例性实施例示出的当将第一路编码帧中的数据帧的位置保存在指定文本文件中时向终端下发视频帧的流程图;
图7是根据一示例性实施例示出的一种应用于终端的视频加载方法的流程图;
图8是根据一示例性实施例示出的第一路编码帧中的数据帧的位置信息保存在对应的第二路编码帧中的数据帧的头信息时,终端和服务器之间的交互的示意图;
图9是根据一示例性实施例示出的第一路编码帧中的数据帧的位置信息保存在指定文本文件时,终端和服务器之间的交互的示意图;
图10是根据一示例性实施例示出的第一路编码帧中的数据帧的位置信息保存在指定文本文件时,另一种终端和服务器之间的交互的示意图;
图11是根据一示例性实施例示出的一种视频加载装置的模块结构示意图;
图12是根据一示例性实施例示出的另一种视频加载装置的模块结构示意图;
图13是根据一示例性实施例示出的一种视频加载装置的模块结构示意图。
具体实施方式
为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
下面对文中出现的一些词语进行解释:
本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
本公开实施例描述的应用场景是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。
目前当FOV发生改变时,对于新增加的视频分块,播放器需要等待I帧后才可以进行解码和播放,而这导致新增加的视频分块播放速度变慢。现有技术中,通过在编码时频繁加入I帧,让I帧更加密集,减少GOP,使解码速度更快,但I帧的数据量较大,导致在非播放时,数据量过大,浪费了资源。
因此,为了解决上述问题,本公开提供了一种视频加载方法、装置、设备及介质,在解决因减少GOP到来的数据下载量大的问题的同时,提高了清晰视频加载的速度。
首先参考图1,其为本公开实施例的应用场景示意图,包括采集端11、云端12、渲染端13,采集端包括RGBD相机11_1、主机/工作站11_2。其中RGBD相机11_1用于采集二维图像;主机/工作站11_2用于对采集的二维图像进行相应的处理;云端12是本公开中的服务器,其用于数据的传输;渲染端13是本公开中的终端,其包括手机、电视、VR/AR(AugmentedReality,增强现实)眼镜等,用于对视频帧的解码和播放。
需要说明的是,图1示出的系统架构可根据不同的使用场景进行部署,比如在直播场景中,主播端设置本系统的采集端设备,用户可以通过VR/AR眼镜、手机、电视等进行重建模型的浏览;再比如在会议场景中,远程会议的两个会议室需要同时布置采集端设备与渲染端设备,进行两个会议室内的实时三维通讯。
服务器对每视频帧中的各视频分块进行第一路编码和第二路编码,分别得到各视频分块对应的第一路编码帧中的数据帧和第二路编码帧中的数据帧。终端确定当前视场角相对于上一视频帧的视场角发生变化,向服务器发送显示当前视场角的传输视频帧指令,服务器响应于终端的传输视频帧指令,向终端下发预设时刻的对应的数据帧。
本公开实施例中,服务器对每视频帧中的各视频分块进行第一路编码,得到各视频分块对应的第一路编码帧中的数据帧,其中,所述第一路编码帧中的数据帧包括对应所述各视频分块的第一关键帧和第一非关键帧,所述第一关键帧采用帧内编码的方式编码而成,所述第一非关键帧采用帧间编码的方式编码而成,同一视频分块的所述第一关键帧和所述第一非关键帧对应的时刻不同;对每视频帧中的各视频分块进行第二路编码,得到各视频分块对应的第二路编码帧中的数据帧,其中,所述第二路编码帧中的数据帧包括对应所述各视频分块的第二关键帧和第二非关键帧,所述第二非关键帧采用帧内编码的方式编码而成,同一视频分块的所述第二关键帧和所述第二非关键帧对应的时刻不同。服务器响应于终端的传输视频帧指令,确定在所述终端显示当前视场角;确定所述当前视场角中的第一视频分块和目标视频分块,其中,所述第一视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角范围内的视频分块,所述目标视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角外的视频分块;响应于所述当前视场角相对于所述上一视频帧的视场角发生变化时,对应所述第一视频分块,在第一路编码帧中,选择预设时刻的对应所述第一视频分块的数据帧下发,其中,所述预设时刻为所述终端显示所述当前视场角图像对应的时刻;响应于所述当前视场角相对于所述上一视频帧的视场角发生变化时,对应所述目标视频分块,在第一路编码帧中,确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧时,从所述第一路编码帧中,选择所述预设时刻的对应的第一关键帧下发;确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧时,从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发。
本公开实施例中,提供了一种视频加载方法,本公开基于同一构思,还提供了一种视频加载装置、一种电子设备以及一种计算机可读存储介质。
下面通过具体的实施例对本公开提供的一种视频加载方法进行说明,该方法应用于服务器,如图2所示,包括:
步骤201,对每视频帧中的各视频分块进行第一路编码,得到各视频分块对应的第一路编码帧中的数据帧,其中,所述第一路编码帧中的数据帧包括对应所述各视频分块的第一关键帧和第一非关键帧,所述第一关键帧采用帧内编码的方式编码而成,所述第一非关键帧采用帧间编码的方式编码而成,同一视频分块的所述第一关键帧和所述第一非关键帧对应的时刻不同;
上述第一路编码是采用I帧+P帧的方式,对于同一视频帧的各视频分块,采用帧间编码得到第一非关键帧,也就是P帧,也采用帧间编码得到第一关键帧,也就是I帧。其中第一关键帧是可以独立解码的视频帧,第一非关键帧是需要依赖于其他第一编码帧的视频帧。如图3所示,在进行第一路编码时,一个视频分块包括多个宏块,对该视频分块的所有宏块进行帧内编码时,得到第一路编码帧中的I-1-1数据帧,对部分宏块进行帧内编码,其他宏块进行帧间编码时,得到第一路编码帧中的P-1-1数据帧和P-1-2数据帧。在进行第一路编码时,将第一路编码帧中的各数据帧保存在第一视频文件,记录各数据帧在所述第一视频文件中的位置,得到第一路编码帧中各数据帧的位置信息。
步骤202,对每视频帧中的各视频分块进行第二路编码,得到各视频分块对应的第二路编码帧中的数据帧,其中,所述第二路编码帧中的数据帧包括对应所述各视频分块的第二关键帧和第二非关键帧,所述第二非关键帧采用帧内编码的方式编码而成,同一视频分块的所述第二关键帧和所述第二非关键帧对应的时刻不同。
上述第二路编码是帧内编码,在对每视频帧中的各视频分块进行第二路编码时,限制时域预测编码,在编码中限制当前帧对其时域中其他帧的参考,得到可以独立解码的第二路编码帧,而第二路编码帧中第二关键帧是I帧,第二非关键帧是P帧,即视频帧的类型与对应的第一路编码帧中的视频帧相同。如图3所示,在进行第二路编码时,一个视频分块包括多个宏块,对该视频分块的所有宏块进行帧内编码时,得到第二路编码帧中的I-2-1数据帧;由于编码过程被告知帧间编码不可用,因此对所有宏块进行帧内编码,得到第二路编码帧中的P-2-1数据帧和P-2-2数据帧。在进行第二路编码时,将第二路编码帧中的各数据帧按照时间顺序,分别保存在与该第二路编码帧中的数据帧对应的第二视频文件。
下面通过具体的实施例对本公开提供的一种视频加载方法进行说明,该方法应用于服务器,如图4所示,包括:
步骤401,响应于终端的传输视频帧指令,确定在所述终端显示当前视场角;
步骤402,确定所述当前视场角中的第一视频分块和目标视频分块,其中,所述第一视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角范围内的视频分块,所述目标视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角外的视频分块;
步骤403,响应于所述当前视场角相对于所述上一视频帧的视场角发生变化时,对应所述第一视频分块,在第一路编码帧中,选择预设时刻的对应所述第一视频分块的数据帧下发,其中,所述预设时刻为所述终端显示所述当前视场角图像对应的时刻,所述第一路编码帧中的数据帧包括对应所述各视频分块的第一关键帧和第一非关键帧,所述第一关键帧采用帧内编码的方式编码而成,所述第一非关键帧采用帧间编码的方式编码而成,同一视频分块的所述第一关键帧和所述第一非关键帧对应的时刻不同;
步骤404,响应于所述当前视场角相对于所述上一视频帧的视场角发生变化时,对应所述目标视频分块,在第一路编码帧中,确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧时,从所述第一路编码帧中,选择所述预设时刻的对应的第一关键帧下发;
上述过程中,在第一路编码帧中根据当前时间距离下发所述预设时刻的对应的第一路编码帧中的第一关键帧的时间等于设定阈值,确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧,所述设定阈值是根据实际经验设定的播放延迟时间。
步骤405,确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧时,从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发,其中,所述第二路编码帧中的数据帧包括对应所述各视频分块的第二关键帧和第二非关键帧,所述第二非关键帧采用帧内编码的方式编码而成,同一视频分块的所述第二关键帧和所述第二非关键帧对应的时刻不同。
上述过程中,在第一路编码帧中根据当前时间距离下发所述预设时刻的对应的第一路编码帧中的第一关键帧的时间不等于设定阈值,确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧。
本公开可以在FOV发生变化时,快速传输新出现在当前FOV下的视频分块的视频帧,从而使终端能够快速进行解码,并且节省了视频数据的传输的时间。
在进行视频播放时,需要对原始视频的每一视频帧进行切割和编码,即对每一个原始视频帧进行切块,然后根据每个视频切块中的内容分别进行独立编码。每个视频分块的信息都写入MPD(Media Presentation Description,媒体呈现描述)中进行传输,终端根据MPD中信息描述进行解析后播放。
对于采集端采集的视频流,采用不同码率对视频流进行编码,得到低清晰度的视频流及高清晰度的视频流,其中得到低清晰度的视频流及其传输过程为现有技术,此处不再一一赘述。本公开通过以下方法得到高清晰度的视频流:本公开对每帧视频中的各视频分块进行两路编码,即第一路编码和第二路编码,编码过程如图3所示。
在响应于终端的传输视频帧指令之前,可以对每视频帧中的各视频分块进行第一路编码,得到各视频分块对应的第一路编码帧中的数据帧;
对于采集端采集的视频流,如果采用第一路编码方式进行编码,则对于同一视频帧的不同视频块,既包括采用帧内编码方式得到的第一关键帧,也包括采用帧间编码方式得到的第一非关键帧,而同一视频分块的所述第一关键帧和所述第一非关键帧对应的时刻不同。上述第一路编码可以采用I帧+P帧的方式进行编码,具体的编码方式为现有技术,此处不再赘述。在进行第一路编码时,将各数据帧保存在第一视频文件,记录各数据帧在所述第一视频文件中的位置,得到第一路编码帧中各数据帧的位置信息,其中,第一视频文件中保存多个第一路编码帧中的数据帧。
可以对每视频帧中的各视频分块进行第二路编码,得到各视频分块对应的第二路编码帧中的数据帧;
对每视频帧中的各视频分块进行第二路编码时,限制时域预测编码,在编码中限制当前帧对其时域中其他帧的参考,使终端可以独立进行解码。本实施例中第二路编码帧中的数据帧均为可以独立解码的视频帧。本申请实施例第二路编码帧中的数据帧包括第二关键帧,也就是I帧,和第二非关键帧,也就是P帧,即对于同一视频分块对应的第二路编码帧中的数据帧和第一路编码帧中的数据帧的帧类型相同,即I帧和P帧。由于视频分块在终端进行显示时,一般的,都是需要终端先将多块视频分块进行融合后才进行解码播放,但由于终端的解码器进行每一视频帧解码时,需要每一个视频分块的帧类型相同,才可顺利进行解码,所以在服务器进行编码时,两路编码的同一视频分块对应的数据帧的帧类型相同,即在第一路视频帧中第一个数据帧为第一关键帧,其后29个数据帧为第一非关键帧,则在第二路视频帧中对应的第一个数据帧为第二关键帧,其后29个数据帧为第二非关键帧。在进行第二路编码时,将第二路编码帧中的各数据帧按照时间顺序,分别保存在与该第二路编码帧中的数据帧对应的第二视频文件,即一个第二路视频编码帧中的数据帧保存在一个第二视频文件中。
上述记录第一路编码帧中各数据帧在所述第一视频文件中的位置可有以下两种方式:
方式1,记录各数据帧在所述第一视频文件的起始位置及大小,并保存在指定文本文件;
例如,一个原始视频对应多个视频文件,每个第一视频文件对应一个index.txt文本文件,在进行第一路编码时,将编码后的数据帧在该index.txt文本文件的起始位置及大小写入index.txt文本文件中,最后在整个index.txt文本文件写完后,将整个文本文件的完整大小写在该index.txt文本文件的最后一行。
方式2,记录各数据帧在所述第一视频文件的起始位置及大小,并保存在同一视频分块进行第二路编码得到的第二路编码帧中的数据帧的头信息;
具体的,在编码过程中根据相同时刻的第一路编码帧中的位置信息写入所述第二非关键帧中的头信息中,即在进行第一路编码时,记录各数据帧在所述第一视频文件的起始位置及大小,在进行第二路编码时,将所述记录的各数据帧的位置保存在同一视频分块进行第二路编码得到的第二路编码帧中的数据帧的MP4(Moving Picture Experts Group4,动态图像专家组)文件的头中。
例如,在每个第二路编码帧中的数据帧的头中增加一个自定义表UUID(Universally Unique Identifier,全局唯一标识符),也可以定义为其他名字,先写入4个字节0作为开始,再写入4个字节的位置信息,最后定义4个字节0作为结尾。
在两路编码完成后,响应于终端的传输视频帧指令,确定在所述终端显示当前FOV。
根据当前视场角和上一视频帧的视场角,确定所述当前视场角中的第一视频分块和目标视频分块。如图5所示,若终端从视场角A转到视场角B,则当前视场角中的目标视频分块为视频分块H1、H2和H3,而第一视频分块为视频分块H4、H5、H6、H7、H8和H9。上述FOV发生变化可以根据以下方法确定:确定上一视频帧的FOV到当前FOV的角度和角速度,若所述角度和角速度都大于设定阈值时,则FOV发生变化,否则FOV未发生变化。
上述目标视频分块的确定方法如下:以终端所在位置为球心,在任一FOV下终端到显示的视频的距离为半径建立经纬度坐标;确定终端从上一视频帧的FOV到当前FOV的角度;根据所述经纬度坐标和角度,确定所述目标视频分块。第一视频分块的确定方法与目标视频分块的确定方法类似,此处不再赘述。
在确定当前视场角中的第一视频分块和目标视频分块之后,响应于所述当前视场角相对于所述上一视频帧的视场角发生变化时,对应所述第一视频分块,在第一路编码帧中,选择预设时刻的对应所述第一视频分块的数据帧下发,此为现有技术,此处不再详述。
响应于所述当前视场角相对于所述上一视频帧的视场角发生变化时,对应所述目标视频分块,在第一路编码帧中,确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧/第一非关键帧,包括以下两种情况:
第一种情况,确定当前时间距离下发所述预设时刻的对应的第一路编码帧中的第一关键帧的时间等于设定阈值,确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧,则从所述第一路编码帧中,选择所述预设时刻的对应的第一关键帧下发;
上述过程在选择所述预设时刻的对应的第一关键帧下发后,在第一路编码帧中,将所述预设时刻的对应的第一关键帧后的数据帧下发。如图3所示,先下发第一路编码帧中的I-1-1数据帧,然后继续下发第一路编码帧中的P-1-1数据帧和P-1-2数据帧。
第二种情况,确定当前时间距离下发所述预设时刻的对应的第一路编码帧中第一关键帧的时间不等于设定阈值,确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧,则从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发。
上述过程在选择预设时刻的对应的第二非关键帧下发后,在第一路编码帧中,将所述预设时刻的对应的第一非关键帧后的数据帧下发。如图3所示,先下发第二路编码帧中的P-2-1数据帧,然后继续下发第一路编码帧中对应的P-1-1数据帧后的P-1-2数据帧。
当采用上述方式1记录第一路编码帧中各数据帧在所述第一视频文件中的位置时,可以通过以下方法将第二非关键帧和第一路编码帧中的数据帧下发,如图6所示,其具体步骤为:
步骤601,接收终端发送的第二路编码帧请求;
步骤602,根据所述第二视频帧请求,确定所述指定文本文件,根据指定文本文件保存的第一路编码帧中各数据帧的位置信息确定所述第一路编码帧的数据帧的大小;
步骤603,确定所述第二路编码帧的第二非关键帧、用于分割第一路编码帧和第二路编码帧的分隔符、以及所述第一路编码帧的数据帧的大小总和;
例如,分隔符为64个字节长度的FF,第二非关键帧大小为100kb,第一路编码帧的数据帧的大小为800kb,则向终端返回数据的总大小为100kb+0.064kb+800kb=900.064kb。
步骤604,将所述计算的大小总和下发;
步骤605,从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发;
步骤606,将所述分隔符下发,以使终端知道服务器已经将第二视频帧传输完,并且接下来要传输的是第一视频帧;
步骤607,根据指定文本文件中第一路编码帧预设时刻的对应的数据帧的位置信息,在第一路编码帧中,将所述位置信息后的数据帧下发。
还可以通过以下方法向终端传输所述目标视频分块的第二视频帧和第一视频帧:
接收终端发送的第二路编码帧请求;
根据所述第二视频帧请求,从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发;
接收终端根据所述第二非关键帧发送的指定文本文件请求;
根据所述指定文本文件请求,将所述指定文本文件下发,接收终端根据所述指定文本文件中第一路编码帧相应时刻的数据帧的位置信息发送的第一路编码帧请求;
根据所述第一路编码帧请求,在第一路编码帧中,将所述位置信息后的数据帧下发。
当采用上述方式2记录第一路编码帧中各数据帧在所述第一视频文件中的位置时,可以通过以下方法将第二非关键帧和第一路编码帧中的数据帧下发:
接收终端发送的第二路编码帧请求;
根据所述第二视频帧请求,从所述第二路编码帧中选择预设时刻的对应的第二非关键帧下发;
接收终端根据所述第二非关键帧中的头信息中第一路编码帧中的数据帧的位置信息发送的第一路编码帧请求,其中,所述数据帧的位置信息是在编码过程中根据相同时刻的第一路编码帧中的位置信息写入所述第二非关键帧中的头信息中的;
根据所述第一路编码帧请求,在第一路编码帧中,将所述位置信息后的数据帧下发。
将第一路编码帧中的数据帧和第二路编码帧中的数据帧下发时,采用DASH(Dynamic Adaptive Streaming over Hypertext transfer protocol,超文本传输协议的动态自适应流传输)协议,也可以采用其他可用的视频传输协议,例如HLS(HTTP LiveStreaming,网络直播流)、Smooth Streaming(平滑流)等,扩展DASH协议的MPD文档,每个视频分块作为单独一个自适应集AdapatationSet,每个视频分块的AdapatationSet中,第一路编码帧记录在representation0中,第二路编码帧记录在representation1中。
下面通过具体的实施例对本公开提供的一种视频加载方法进行说明,该方法应用于终端,如图7所示,包括:
步骤701,确定当前视场角相对于上一视频帧的视场角发生变化,向服务器发送显示当前视场角的传输视频帧指令;
步骤702,获取服务器对于第一视频分块,从第一路编码帧中选择并下发的预设时刻的对应所述第一视频分块的数据帧;
步骤703,获取服务器对于目标视频分块,在确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧时,从所述第一路编码帧中选择并下发的预设时刻的对应的第一关键帧,或者,获取服务器确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧时,从所述第二路编码帧中选择并下发的预设时刻的对应的第二非关键帧;
步骤704,对获取的视频帧进行解码后播放。
其中,所述第一视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角范围内的视频分块,所述目标视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角外的视频分块。
在获得服务器下发的高清晰度的视频帧的同时,还会获得服务器传输的低清晰度视频帧,对获得的视频帧进行解码和叠加,从而显示当前FOV下的视频内容。
本公开实现了在FOV发生变化时,可以快速获得并解码新出现在当前FOV下的视频分块的视频帧,同时可以解决因减少GOP带来的数据量大的问题,并且可以快速加载出高清视频内容。
下面,将对终端和服务器之间的交互进行详细的描述:
示例1
当在编码过程中,将第一路编码帧中各数据帧在所述第一视频文件的起始位置及大小保存在同一视频分块进行第二路编码得到的第二路编码帧中的数据帧的头信息时,终端和服务器之间的交互过程如图8所示:
步骤1,服务器对每视频帧中的各视频分块进行第一路编码和第二路编码,得到对应的第一路编码帧的数据帧和第二路编码帧的数据帧;
步骤2,终端FOV发生改变;
步骤3,终端向服务器发送传输视频帧指令;
步骤4,服务器确定所述当前视场角中的第一视频分块和目标视频分块;
步骤5,服务器对应所述第一视频分块,在第一路编码帧中,选择预设时刻的对应所述第一视频分块的数据帧下发;
步骤6,服务器对应所述目标视频分块,在第一路编码帧中,确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧;
步骤7,终端向服务器发送第二路编码帧请求;
步骤8,服务器根据所述第二路编码帧请求,从所述第二路编码帧中选择预设时刻的对应的第二非关键帧下发;
步骤9,终端根据所述第二非关键帧中的头信息中第一路编码帧中的数据帧的位置信息发送的第一路编码帧请求;
步骤10,服务器根据所述第一路编码帧请求,在第一路编码帧中,将所述位置信息后的数据帧下发。
示例2
当在编码过程中,将第一路编码帧中各数据帧在所述第一视频文件的起始位置及大小保存在指定文本文件时,终端和服务器之间的交互过程如图9所示:
步骤1-6与示例1中的步骤1-6相同,在此不再赘述;
步骤7,终端向服务器发送第二路编码帧请求;
步骤8,服务器根据所述第二视频帧请求,确定所述指定文本文件,根据所述指定文本文件确定所述第一路编码帧的数据帧的大小;
步骤9,服务器确定所述第二路编码帧的第二非关键帧、分隔符、以及所述第一路编码帧的数据帧的大小总和;
步骤10,服务器将所述计算的大小总和下发;
步骤11,服务器从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发;
步骤12,服务器将所述分隔符下发;
步骤13,服务器根据指定文本文件中第一路编码帧预设时刻的对应的数据帧的位置信息,在第一路编码帧中,将所述位置信息后的数据帧下发。
示例3
当在编码过程中,将第一路编码帧中各数据帧在所述第一视频文件的起始位置及大小保存在指定文本文件时,终端和服务器之间的另一种交互过程如图10所示:
步骤1-6与示例1中的步骤1-6相同,在此不再赘述;
步骤7,终端向服务器发送第二路编码帧请求;
步骤8,服务器根据所述第二视频帧请求,从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发;
步骤9,终端根据所述第二非关键帧发送指定文本文件请求;
步骤10,服务器根据所述指定文本文件请求,将所述指定文本文件下发;
步骤11,终端根据所述指定文本文件中第一路编码帧相应时刻的数据帧的位置信息发送第一路编码帧请求;
步骤12,根据所述第一路编码帧请求,服务器在第一路编码帧中,将所述位置信息后的数据帧下发。
在一些实施例中,基于相同的发明构思,本公开实施例还提供一种视频加载装置,由于该装置即是本公开实施例中的方法中的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图11所示,上述装置包括以下模块:
视场角确定模块111,用于通过服务器响应于终端的传输视频帧指令,确定在所述终端显示当前视场角;
视频分块确定模块112,用于通过服务器确定所述当前视场角中的第一视频分块和目标视频分块,其中,所述第一视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角范围内的视频分块,所述目标视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角外的视频分块;
数据帧下发模块113,用于通过服务器响应于所述当前视场角相对于所述上一视频帧的视场角发生变化时,对应所述第一视频分块,在第一路编码帧中,选择预设时刻的对应所述第一视频分块的数据帧下发,其中,所述预设时刻为所述终端显示所述当前视场角图像对应的时刻,所述第一路编码帧中的数据帧包括对应所述各视频分块的第一关键帧和第一非关键帧,所述第一关键帧采用帧内编码的方式编码而成,所述第一非关键帧采用帧间编码的方式编码而成,同一视频分块的所述第一关键帧和所述第一非关键帧对应的时刻不同;
第一关键帧下发模块114,用于通过服务器响应于所述当前视场角相对于所述上一视频帧的视场角发生变化时,对应所述目标视频分块,在第一路编码帧中,确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧时,从所述第一路编码帧中,选择所述预设时刻的对应的第一关键帧下发;
第二非关键帧下发模块115,用于通过服务器确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧时,从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发,其中,所述第二路编码帧中的数据帧包括对应所述各视频分块的第二关键帧和第二非关键帧,所述第二非关键帧采用帧内编码的方式编码而成,同一视频分块的所述第二关键帧和所述第二非关键帧对应的时刻不同。
作为一种可选的实施方式,在所述第一关键帧下发模块用于通过服务器选择所述预设时刻的对应的第一关键帧下发后,所述装置还用于:
在第一路编码帧中,将所述预设时刻的对应的第一关键帧后的数据帧下发;或,
在所述第二非关键帧下发模块用于通过服务器选择预设时刻的对应的第二非关键帧下发后,所述装置还用于:
在第一路编码帧中,将所述预设时刻的对应的第一非关键帧后的数据帧下发。
作为一种可选的实施方式,所述第一关键帧下发模块用于通过服务器确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧/所述第二非关键帧下发模块用于通过服务器确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧,包括:
确定当前时间距离下发所述预设时刻的对应的第一路编码帧中的第一关键帧的时间等于设定阈值,确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧;
确定当前时间距离下发所述预设时刻的对应的第一路编码帧中第一关键帧的时间不等于设定阈值,确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧。
作为一种可选的实施方式,所述第二非关键帧下发模块,用于通过服务器从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发,包括:
从所述第二路编码帧中选择预设时刻的对应的第二非关键帧下发,其中,第二路编码帧中的数据帧的头信息保存同一视频分块进行第一路编码得到的第一路编码帧中的数据帧的位置信息;
所述在第一路编码帧中,将所述预设时刻的对应的第一非关键帧后的数据帧下发,包括:
接收终端根据所述第二非关键帧中的头信息中第一路编码帧中的数据帧的位置信息发送的第一路编码帧请求,其中,所述数据帧的位置信息是在编码过程中根据相同时刻的第一路编码帧中的位置信息写入所述第二非关键帧中的头信息中的;
根据所述第一路编码帧请求,在第一路编码帧中,将所述位置信息后的数据帧下发。
作为一种可选的实施方式,所述第二非关键帧下发模块,用于通过服务器从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发,包括:
根据指定文本文件保存的第一路编码帧中各数据帧的位置信息确定所述第一路编码帧的数据帧的大小;确定所述第二路编码帧的第二非关键帧、用于分割第一路编码帧和第二路编码帧的分隔符、以及所述第一路编码帧的数据帧的大小总和并下发;从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发,并将所述分隔符下发;
所述在第一路编码帧中,将所述预设时刻的对应的第一非关键帧后的数据帧下发,包括:
根据指定文本文件中第一路编码帧预设时刻的对应的数据帧的位置信息,在第一路编码帧中,将所述位置信息后的数据帧下发。
作为一种可选的实施方式,所述第二非关键帧下发模块,用于通过服务器从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发,包括:从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发;接收终端根据所述第二非关键帧发送的指定文本文件请求;根据所述指定文本文件请求,将所述指定文本文件下发,接收终端根据所述指定文本文件中第一路编码帧相应时刻的数据帧的位置信息发送的第一路编码帧请求;
所述在第一路编码帧中,将所述预设时刻的对应的第一非关键帧后的数据帧下发,包括:
根据所述第一路编码帧请求,在第一路编码帧中,将所述位置信息后的数据帧下发。
基于相同的发明构思,本公开实施例还提供一种视频加载装置,如图12所示,上述装置包括以下模块:
第一路编码模块121,用于通过服务器对每视频帧中的各视频分块进行第一路编码,得到各视频分块对应的第一路编码帧中的数据帧,其中,所述第一路编码帧中的数据帧包括对应所述各视频分块的第一关键帧和第一非关键帧,所述第一关键帧采用帧内编码的方式编码而成,所述第一非关键帧采用帧间编码的方式编码而成,同一视频分块的所述第一关键帧和所述第一非关键帧对应的时刻不同;
第二路编码模块122,用于通过服务器对每视频帧中的各视频分块进行第二路编码,得到各视频分块对应的第二路编码帧中的数据帧,其中,所述第二路编码帧中的数据帧包括对应所述各视频分块的第二关键帧和第二非关键帧,所述第二非关键帧采用帧内编码的方式编码而成,同一视频分块的所述第二关键帧和所述第二非关键帧对应的时刻不同。
作为一种可选的实施方式,在所述第二路编码模块,用于通过服务器得到各视频分块对应的第一路编码帧中的数据帧/第二路编码帧中的数据帧之后,还用于:
将第一路编码帧中的各数据帧保存在第一视频文件,记录各数据帧在所述第一视频文件中的位置,得到第一路编码帧中各数据帧的位置信息;
将第二路编码帧中的各数据帧按照时间顺序,分别保存在与该第二路编码帧中的数据帧对应的第二视频文件。
基于相同的发明构思,本公开实施例还提供一种视频加载装置,如图13所示,上述装置包括以下模块:
传输视频帧指令发送模块131,用于通过终端确定当前视场角相对于上一视频帧的视场角发生变化,向服务器发送显示当前视场角的传输视频帧指令;
第一数据帧获取模块132,用于通过终端获取服务器对于第一视频分块,从第一路编码帧中选择并下发的预设时刻的对应所述第一视频分块的数据帧;
第二数据帧获取模块133,用于通过终端获取服务器对于目标视频分块,在确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧时,从所述第一路编码帧中选择并下发的预设时刻的对应的第一关键帧,或者,获取服务器确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧时,从所述第二路编码帧中选择并下发的预设时刻的对应的第二非关键帧;
解码播放模块134,用于通过终端对获取的视频帧进行解码后播放;
其中,所述第一视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角范围内的视频分块,所述目标视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角外的视频分块。
在一些实施例中,基于相同的发明构思,本公开实施例中还提供了一种视频加载电子设备,由于该电子设备即是本公开实施例中的方法中的电子设备,并且该电子设备解决问题的原理与该方法相似,因此该电子设备的实施可以参见方法的实施,重复之处不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

Claims (10)

1.一种视频加载方法,其特征在于,应用于服务器,该方法包括:
响应于终端的传输视频帧指令,确定在所述终端显示当前视场角;
确定所述当前视场角中的第一视频分块和目标视频分块,其中,所述第一视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角范围内的视频分块,所述目标视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角外的视频分块;
响应于所述当前视场角相对于所述上一视频帧的视场角发生变化时,对应所述第一视频分块,在第一路编码帧中,选择预设时刻的对应所述第一视频分块的数据帧下发,其中,所述预设时刻为所述终端显示所述当前视场角图像对应的时刻,所述第一路编码帧中的数据帧包括对应所述各视频分块的第一关键帧和第一非关键帧,所述第一关键帧采用帧内编码的方式编码而成,所述第一非关键帧采用帧间编码的方式编码而成,同一视频分块的所述第一关键帧和所述第一非关键帧对应的时刻不同;
响应于所述当前视场角相对于所述上一视频帧的视场角发生变化时,对应所述目标视频分块,在第一路编码帧中,确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧时,从所述第一路编码帧中,选择所述预设时刻的对应的第一关键帧下发;确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧时,从第二路编码帧中,选择预设时刻的对应的第二非关键帧下发,其中,所述第二路编码帧中的数据帧包括对应所述各视频分块的第二关键帧和第二非关键帧,所述第二非关键帧采用帧内编码的方式编码而成,同一视频分块的所述第二关键帧和所述第二非关键帧对应的时刻不同。
2.根据权利要求1所述的方法,其特征在于,
在所述选择所述预设时刻的对应的第一关键帧下发后,所述方法还包括:
在第一路编码帧中,将所述预设时刻的对应的第一关键帧后的数据帧下发;或,
在所述选择预设时刻的对应的第二非关键帧下发后,所述方法还包括:
在第一路编码帧中,将所述预设时刻的对应的第一非关键帧后的数据帧下发。
3.根据权利要求1所述的方法,其特征在于,所述确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧/第一非关键帧,包括:
确定当前时间距离下发所述预设时刻的对应的第一路编码帧中的第一关键帧的时间等于设定阈值,确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧;
确定当前时间距离下发所述预设时刻的对应的第一路编码帧中第一关键帧的时间不等于设定阈值,确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧。
4.根据权利要求2所述的方法,其特征在于,所述从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发,包括:
从所述第二路编码帧中选择预设时刻的对应的第二非关键帧下发,其中,第二路编码帧中的数据帧的头信息保存同一视频分块进行第一路编码得到的第一路编码帧中的数据帧的位置信息;
所述在第一路编码帧中,将所述预设时刻的对应的第一非关键帧后的数据帧下发,包括:
接收终端根据所述第二非关键帧中的头信息中第一路编码帧中的数据帧的位置信息发送的第一路编码帧请求,其中,所述数据帧的位置信息是在编码过程中根据相同时刻的第一路编码帧中的位置信息写入所述第二非关键帧中的头信息中的;
根据所述第一路编码帧请求,在第一路编码帧中,将所述位置信息后的数据帧下发。
5.根据权利要求2所述的方法,其特征在于,所述从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发,包括:
根据指定文本文件保存的第一路编码帧中各数据帧的位置信息确定所述第一路编码帧的数据帧的大小;确定所述第二路编码帧的第二非关键帧、用于分割第一路编码帧和第二路编码帧的分隔符、以及所述第一路编码帧的数据帧的大小总和并下发;从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发,并将所述分隔符下发;
所述在第一路编码帧中,将所述预设时刻的对应的第一非关键帧后的数据帧下发,包括:
根据指定文本文件中第一路编码帧预设时刻的对应的数据帧的位置信息,在第一路编码帧中,将所述位置信息后的数据帧下发。
6.根据权利要求2所述的方法,其特征在于,所述从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发,包括:
从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发;接收终端根据所述第二非关键帧发送的指定文本文件请求;根据所述指定文本文件请求,将所述指定文本文件下发,接收终端根据所述指定文本文件中第一路编码帧相应时刻的数据帧的位置信息发送的第一路编码帧请求;
所述在第一路编码帧中,将所述预设时刻的对应的第一非关键帧后的数据帧下发,包括:
根据所述第一路编码帧请求,在第一路编码帧中,将所述位置信息后的数据帧下发。
7.一种视频加载方法,其特征在于,应用于服务器,该方法包括:
对每视频帧中的各视频分块进行第一路编码,得到各视频分块对应的第一路编码帧中的数据帧,其中,所述第一路编码帧中的数据帧包括对应所述各视频分块的第一关键帧和第一非关键帧,所述第一关键帧采用帧内编码的方式编码而成,所述第一非关键帧采用帧间编码的方式编码而成,同一视频分块的所述第一关键帧和所述第一非关键帧对应的时刻不同;
对所述每视频帧中的各视频分块进行第二路编码,得到各视频分块对应的第二路编码帧中的数据帧,其中,所述第二路编码帧中的数据帧包括对应所述各视频分块的第二关键帧和第二非关键帧,所述第二非关键帧采用帧内编码的方式编码而成,同一视频分块的所述第二关键帧和所述第二非关键帧对应的时刻不同。
8.根据权利要求7所述的方法,其特征在于,在所述得到各视频分块对应的第一路编码帧中的数据帧/第二路编码帧中的数据帧之后,还包括:
将第一路编码帧中的各数据帧保存在第一视频文件,记录各数据帧在所述第一视频文件中的位置,得到第一路编码帧中各数据帧的位置信息;
将第二路编码帧中的各数据帧按照时间顺序,分别保存在与该第二路编码帧中的数据帧对应的第二视频文件。
9.一种视频加载方法,其特征在于,应用于终端,该方法包括:
确定当前视场角相对于上一视频帧的视场角发生变化,向服务器发送显示当前视场角的传输视频帧指令;
获取服务器对于第一视频分块,从第一路编码帧中选择并下发的预设时刻的对应所述第一视频分块的数据帧;其中,所述第一视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角范围内的视频分块;所述预设时刻为显示所述当前视场角图像对应的时刻;所述第一路编码帧中的数据帧包括对应所述各视频分块的第一关键帧和第一非关键帧,所述第一关键帧为所述服务器采用帧内编码的方式编码而成的,所述第一非关键帧为所述服务器采用帧间编码的方式编码而成的,同一视频分块的所述第一关键帧和所述第一非关键帧对应的时刻不同;
获取服务器对于目标视频分块,在确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧时,从所述第一路编码帧中选择并下发的预设时刻的对应的第一关键帧,获取服务器确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧时,从第二路编码帧中选择并下发的预设时刻的对应的第二非关键帧;其中,所述目标视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角外的视频分块;所述第二路编码帧中的数据帧包括对应所述各视频分块的第二关键帧和第二非关键帧,所述第二非关键帧为所述服务器采用帧内编码的方式编码而成的,同一视频分块的所述第二关键帧和所述第二非关键帧对应的时刻不同;
对获取的视频帧进行解码后播放。
10.一种视频加载设备,其特征在于,包括:
通信模块,用于与终端进行通信;
编码器,用于对每视频帧中的各视频分块进行第一路编码,得到各视频分块对应的第一路编码帧中的数据帧,及进行第二路编码,得到各视频分块对应的第二路编码帧中的数据帧,其中,所述第一路编码帧中的数据帧包括对应所述各视频分块的第一关键帧和第一非关键帧,所述第一关键帧采用帧内编码的方式编码而成,所述第一非关键帧采用帧间编码的方式编码而成,同一视频分块的所述第一关键帧和所述第一非关键帧对应的时刻不同,所述第二路编码帧中的数据帧包括对应所述各视频分块的第二关键帧和第二非关键帧,所述第二非关键帧采用帧内编码的方式编码而成,同一视频分块的所述第二关键帧和所述第二非关键帧对应的时刻不同;
存储器,用于存储编码得到的第一路编码帧中的数据帧和第二路编码帧中的数据帧;
处理器,用于通过通信模块接收终端的传输视频帧指令,确定在所述终端显示当前视场角,并确定所述当前视场角中的第一视频分块和目标视频分块,其中,所述第一视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角范围内的视频分块,所述目标视频分块是所述当前视场角范围内的视场角位于上一视频帧的视场角外的视频分块;响应于所述当前视场角相对于所述上一视频帧的视场角发生变化时,对应所述第一视频分块,在第一路编码帧中,选择预设时刻的对应所述第一视频分块的数据帧下发;响应于所述当前视场角相对于所述上一视频帧的视场角发生变化时,对应所述目标视频分块,在第一路编码帧中,确定对应所述预设时刻数据帧为第一路编码帧中的第一关键帧时,从所述第一路编码帧中,选择所述预设时刻的对应的第一关键帧下发;确定对应所述预设时刻数据帧为第一路编码帧中的第一非关键帧时,从所述第二路编码帧中,选择预设时刻的对应的第二非关键帧下发。
CN202210001296.3A 2022-01-04 2022-01-04 一种视频加载方法、装置、设备及介质 Active CN114513658B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210001296.3A CN114513658B (zh) 2022-01-04 2022-01-04 一种视频加载方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210001296.3A CN114513658B (zh) 2022-01-04 2022-01-04 一种视频加载方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN114513658A CN114513658A (zh) 2022-05-17
CN114513658B true CN114513658B (zh) 2024-04-02

Family

ID=81549383

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210001296.3A Active CN114513658B (zh) 2022-01-04 2022-01-04 一种视频加载方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN114513658B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1926862A (zh) * 2004-02-23 2007-03-07 诺基亚公司 视频信息传输
CN111436004A (zh) * 2019-01-11 2020-07-21 腾讯科技(深圳)有限公司 视频播放方法、装置和设备、计算机可读存储介质
CN112040233A (zh) * 2020-11-04 2020-12-04 北京金山云网络技术有限公司 视频编码、视频解码方法和装置、电子设备及存储介质
WO2021164176A1 (zh) * 2020-02-20 2021-08-26 北京大学 基于深度学习的端到端视频压缩方法、系统及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7693220B2 (en) * 2002-01-03 2010-04-06 Nokia Corporation Transmission of video information

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1926862A (zh) * 2004-02-23 2007-03-07 诺基亚公司 视频信息传输
CN111436004A (zh) * 2019-01-11 2020-07-21 腾讯科技(深圳)有限公司 视频播放方法、装置和设备、计算机可读存储介质
WO2021164176A1 (zh) * 2020-02-20 2021-08-26 北京大学 基于深度学习的端到端视频压缩方法、系统及存储介质
CN112040233A (zh) * 2020-11-04 2020-12-04 北京金山云网络技术有限公司 视频编码、视频解码方法和装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN114513658A (zh) 2022-05-17

Similar Documents

Publication Publication Date Title
CN110036636A (zh) 用于360度视频的视口感知质量度量
WO2016131223A1 (zh) 一种视频帧丢帧方法及视频发送装置
TW201742444A (zh) 虛擬實境中之圓形魚眼視訊
CN109819272B (zh) 视频发送方法、装置、计算机可读存储介质及电子设备
CN110784740A (zh) 视频处理方法、装置、服务器及可读存储介质
WO2020228482A1 (zh) 视频处理方法、装置及系统
CN105791882A (zh) 视频编码方法及装置
CN101002471A (zh) 对图像编码的方法和设备及对图像数据解码的方法和设备
CN101686391A (zh) 视频编码/解码方法、装置与视频播放方法、装置及系统
CN112351285B (zh) 视频编码、解码方法和装置、电子设备和存储介质
JP2008199677A (ja) 映像配信システム
CN102196249B (zh) 监控数据回放方法及编码器、视频管理服务器
WO2024037137A1 (zh) 一种沉浸媒体的数据处理方法、装置、设备、介质和产品
CN111800653B (zh) 视频解码方法、系统、设备及计算机可读存储介质
CN110996122B (zh) 视频帧传输方法、装置、计算机设备及存储介质
CN113676404A (zh) 数据传输方法、装置、设备、存储介质及程序
CN110505441B (zh) 一种可视通信的方法、装置和系统
CN116567228A (zh) 编码方法、实时通信方法、装置、设备及存储介质
CN114513658B (zh) 一种视频加载方法、装置、设备及介质
WO2022116822A1 (zh) 沉浸式媒体的数据处理方法、装置和计算机可读存储介质
CN104796765A (zh) 一种h264帧中提取sps和pps的方法及装置
EP4305848A1 (en) Object collision data for virtual camera in virtual interactive scene defined by streamed media data
JP2013168941A (ja) 画像データを表示するためのビデオシステム及び方法及びコンピュータプログラムならびに符号化装置
CN117579843B (zh) 视频编码处理方法及电子设备
JP4406623B2 (ja) 動画受信装置

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