CN115334337B - 一种vr视频传输方法、装置、终端及系统 - Google Patents
一种vr视频传输方法、装置、终端及系统 Download PDFInfo
- Publication number
- CN115334337B CN115334337B CN202211253672.4A CN202211253672A CN115334337B CN 115334337 B CN115334337 B CN 115334337B CN 202211253672 A CN202211253672 A CN 202211253672A CN 115334337 B CN115334337 B CN 115334337B
- Authority
- CN
- China
- Prior art keywords
- view field
- theta
- video
- terminal
- field
- 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
Links
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, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- 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/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/437—Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开提供了一种VR视频传输方法、装置、终端及系统,涉及VR视频传输技术领域,其中,该方法包括:接收VR终端发送的视频播放请求,视频播放请求携带VR终端的当前视场信息,判断当前视场是否存在对应的预测视场;若当前视场存在对应的预测视场,则将预测视场对应的视频流向VR终端发送;若当前视场不存在对应的预测视场,则将当前视场对应的视频流向VR终端发送,解决了现有技术中通过拼合各个摄像头的视频流以创建围绕用户的全景视图,现有网络带宽传输困难的问题。
Description
技术领域
本发明涉及VR视频传输技术领域,具体涉及一种VR视频传输方法、装置、终端及系统。
背景技术
近些年来,VR(Virtual Reality,虚拟现实)领域获得越来越多的关注和应用,出现了一些在线观看360度(全景)VR视频的应用,观看者可以通过一些操作(如:头显设备,鼠标操作等)来选择观看视频的不同区域获得身临其境的感觉。
在当前的网络带宽条件下,全景视频的传输面临挑战,VR视频通常需要采集多个摄像头的输入,相关技术中,拼合各个摄像头的视频流以创建围绕用户的全景视图,在这种情况下,VR视频码率会非常大,甚至可以达到百兆级,如果通过标准的网络进行传输,可能会出现播放卡顿,从而打破用户的沉浸感,降低了用户体验感。
发明内容
因此,本发明要解决的技术问题在于克服现有技术中通过拼合各个摄像头的视频流以创建围绕用户的全景视图,现有网络带宽传输困难的问题,从而提供一种VR视频传输方法、装置、终端及系统。
为解决上述技术问题,本发明公开实施例至少提供一种VR视频传输方法、装置、终端及系统。
第一方面,本发明公开实施例提供了一种VR视频传输方法,包括:
接收VR终端发送的视频播放请求,所述视频播放请求携带所述VR终端的当前视场信息,所述当前视场信息是所述VR终端通过播放请求模块获取的;
判断当前视场是否存在对应的预测视场;
若所述当前视场存在对应的预测视场,则将所述预测视场对应的视频流向所述VR终端发送;
若所述当前视场不存在对应的预测视场,则将所述当前视场对应的视频流向所述VR终端发送。
可选地,在所述判断当前视场是否存在对应的预测视场之前,所述方法还包括:根据第一视场信息和第二视场信息按照指定规则确定所述预测视场,所述第一视场信息和所述第二视场信息是所述VR终端通过数据上报模块获取的,所述第一视场信息是所述VR终端在发送所述视频播放请求的同时,采用异步的方式获取后发送来的,所述第二视场信息是所述VR终端在所述第一视场信息前发送的。
可选地,所述将所述预测视场对应的视频流向所述VR终端发送包括:根据所述预测视场从全景视频子流集内获取至少一个目标视频子流,所述全景视频子流集包括多个视频子流,所述多个视频子流由VR摄像机全景视频流按照预设切割角切割得到的;若所述至少一个目标视频子流包含两个或两个以上个目标视频子流,则将所述至少一个目标视频子流合成所述预测视场对应的视频流。
可选地,所述第一视场信息包括第一视场角θk,所述第二视场信息包括第二视场角θm,k>m,θm对应的视频子流为Smi,视频子流Smi左边界对应的视场角为θstart,视频子流Smj右边界对应的视场角为θend,Smj是与Smi相邻的视频子流,j>i且j-i=1,视频子流的切割角为θ,所述根据第一视场信息和第二视场信息按照指定规则确定所述预测视场包括以下方式:方式一,若θk>θm和θk-θstart<θ同时成立,或者,θk<θm和θend-θk<θ同时成立,则判定所述当前视场不存在对应的预测视场;方式二,若θk>θm、θk-θstart>θ和θk<θend同时成立,则将Smj和顺时针方向上与Smj相邻的下一个视频子流进行合成,合成后作为所述当前视场的预测视场,并更新θend=θend+θ;方式三,若θk<θm、θend-θk≧θ和θk>θstart同时成立,则将Smi、Smj以及顺时针方向上与Smi相邻的上一个视频子流进行合成,合成后作为所述当前视场的预测视场,并更新θstart=θstart-θ。
可选地,所述视频播放请求还包括流编号参数,所述将所述当前视场对应的视频流向所述VR终端发送包括:根据所述流编号参数和所述当前视场信息确定所述当前视场对应的视频流的目标存储地址;从所述目标存储地址获取所述当前视场对应的视频流向所述VR终端发送。
可选地,在所述判断当前视场是否存在对应的预测视场之前,所述方法还包括:生成所述预测视场对应的视频流的目标存储地址,所述目标存储地址包括可配置的根目录、流编号参数和标识字符串,所述标识字符串是由所述当前视场角信息经过MD5哈希映射后的字符串;将所述预测视场对应的视频流存入所述目标存储地址。
第二方面,本发明公开实施例还提供另一种VR视频传输方法,包括:
通过播放请求模块获取当前视场信息,通过播放请求模块向服务端发送视频播放请求,所述视频播放请求携带所述当前视场信息;
同时,通过数据上报模块异步获取第一视场信息,通过数据上报模块向服务端发送所述第一视场信息
第三方面,本发明公开实施例还提供一种VR视频传输装置,包括:
播放请求接收模块,用于接收VR终端发送的视频播放请求,所述视频播放请求携带所述VR终端的当前视场信息,所述当前视场信息是所述VR终端通过播放请求模块获取的;
预测视场判断模块,用于判断当前视场是否存在对应的预测视场;
第一视频流发送模块,用于若所述当前视场存在对应的预测视场,则将所述预测视场对应的视频流向所述VR终端发送;
第二视频流发送模块,用于若所述当前视场不存在对应的预测视场,则将所述当前视场对应的视频流向所述VR终端发送。
第四方面,本发明公开实施例还提供一种VR终端,包括:
播放请求模块,用于获取当前视场信息,向服务端发送视频播放请求,所述视频播放请求携带所述当前视场信息;
数据上报模块,用于在向服务端发送视频播放请求的同时,异步获取第一视场信息,向服务端发送所述第一视场信息。
第五方面,本发明公开实施例还提供一种VR视频传输系统,包括:
VR终端,向服务器发送视频播放请求,实时异步持续向服务器发送第一视场信息,所述视频播放请求携带所述VR终端的当前视场信息;
服务端,接收VR终端发送的所述视频播放请求,所述当前视场信息是所述VR终端通过播放请求模块获取的;判断当前视场是否存在对应的预测视场;若所述当前视场存在对应的预测视场,则将所述预测视场对应的视频流向所述VR终端发送;若所述当前视场不存在对应的预测视场,则将所述当前视场对应的视频流向所述VR终端发送。
本发明的实施例提供的技术方案可以具有以下有益效果:
接收VR终端发送的视频播放请求,若当前视场存在对应的预测视场,则将预测视场对应的视频流向VR终端发送;若当前视场不存在对应的预测视场,则将当前视场对应的视频流向VR终端发送,该方案基于VR终端的信息反馈,通过只给用户返回当前视场(FieldOf View, FOV)范围内的数据流,从而实现VR视频的按需传输,达到减少数据传输和降低带宽占用的目的。该方案极大降低带宽的消耗和占用,能够更快响应终端的请求,有效避免因带宽不足可能引起的卡顿现象,增强了用户的沉浸感和体验感。可以有效避免VR设备在进行全景视频数据解码时可能引起的设备发烫的现象以及设备电量消耗过快的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明公开实施例所提供的一种VR视频传输方法的流程图;
图2示出了本发明公开实施例所提供的另一种VR视频传输方法的流程图;
图3示出了本发明公开实施例所提供的又一种VR视频传输方法的流程图;
图4示出了本发明公开实施例所提供的一种VR视频传输装置的结构示意图;
图5示出了本发明公开实施例所提供的一种VR终端的结构示意图;
图6示出了本发明公开实施例所提供的一种VR视频传输系统的结构示意图;
图7示出了本发明公开实施例所提供的一种VR视频传输系统具体实现方式的结构示意图;
图8本发明公开实施例中全景视频流切割方式示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
实施例1
如图1所示,本发明公开实施例所提供的一种VR视频传输方法的流程图,所述方法包括:
S11:接收VR终端发送的视频播放请求,视频播放请求携带VR终端的当前视场信息,当前视场信息是VR终端通过播放请求模块获取的。
S12:判断当前视场是否存在对应的预测视场,若当前视场存在对应的预测视场,则执行S13,若当前视场不存在对应的预测视场,则执行S14。
S13:将预测视场对应的视频流向VR终端发送。
S14:将当前视场对应的视频流向VR终端发送。
可以理解的是,本实施例提供的技术方案,接收VR终端发送的视频播放请求,若当前视场存在对应的预测视场,则将预测视场对应的视频流向VR终端发送;若当前视场不存在对应的预测视场,则将当前视场对应的视频流向VR终端发送,该方案基于VR终端的信息反馈,通过只给用户返回当前视场范围内的数据流,从而实现VR视频的按需传输,达到减少数据传输和降低带宽占用的目的。
实施例2
如图2所示,本发明公开实施例所提供的另一种VR视频传输方法的流程图,方法包括:
S21:接收VR终端发送的视频播放请求,视频播放请求携带VR终端的当前视场信息,当前视场信息是VR终端通过播放请求模块获取的。
S22:根据第一视场信息和第二视场信息按照指定规则确定预测视场,第一视场信息和第二视场信息是VR终端通过数据上报模块获取的,第一视场信息是VR终端在发送视频播放请求的同时,采用异步的方式获取后发送来的,第二视场信息是VR终端在第一视场信息前发送的。
S23:生成预测视场对应的视频流的目标存储地址,目标存储地址包括可配置的根目录、流编号参数和标识字符串,标识字符串是由当前视场角信息经过MD5哈希映射后的字符串。
S24:将预测视场对应的视频流存入目标存储地址。
S25:判断当前视场是否存在对应的预测视场,若当前视场存在对应的预测视场,则执行S13,若当前视场不存在对应的预测视场,则执行S14;
S26:将预测视场对应的视频流向VR终端发送。
S27:将当前视场对应的视频流向VR终端发送。
在具体实践中,图中未示出,S26可以但不限于通过以下过程实现:
S261:根据预测视场从全景视频子流集内获取至少一个目标视频子流,全景视频子流集包括多个视频子流,多个视频子流由VR摄像机全景视频流按照预设切割角切割得到的。
S262:若至少一个目标视频子流包含两个或两个以上个目标视频子流,则将至少一个目标视频子流合成预测视场对应的视频流。
在具体实践中,第一视场信息包括第一视场角θk,第二视场信息包括第二视场角θm,k>m,θm对应的视频子流为Smi,视频子流Smi左边界对应的视场角为θstart,视频子流Smj右边界对应的视场角为θend,Smj是与Smi相邻的视频子流,j>i且j-i=1,视频子流的切割角为θ,S22包括以下方式:
方式一,若θk>θm和θk-θstart<θ同时成立,或者,θk<θm和θend-θk<θ同时成立,则判定当前视场不存在对应的预测视场;
方式二,若θk>θm、θk-θstart>θ和θk<θend同时成立,则将Smj和顺时针方向上与Smj相邻的下一个视频子流进行合成,合成后作为当前视场的预测视场,并更新θend=θend+θ;
方式三,若θk<θm、θend-θk≧θ和θk>θstart同时成立,则将Smi、Smj以及顺时针方向上与Smi相邻的上一个视频子流进行合成,合成后作为当前视场的预测视场,并更新θstart=θstart-θ。
在具体实践中,视频播放请求还包括流编号参数,图中未示出,S27可以但不限于通过以下过程实现:
S271:根据流编号参数和当前视场信息确定当前视场对应的视频流的目标存储地址。
S272:从目标存储地址获取当前视场对应的视频流向VR终端发送。
需要说明的是,本具体实施方式中记载的实施例只是对本发明构思下的具体实现方式进行示例性的描述,各个实施例中的步骤执行顺序不限于本文中提供的实施例,在具体工程实践中,可以由本领域技术人员根据实际情况对各个步骤的执行顺序进行调整。
可以理解的是,本实施例提供的技术方案,接收VR终端发送的视频播放请求,若当前视场存在对应的预测视场,则将预测视场对应的视频流向VR终端发送;若当前视场不存在对应的预测视场,则将当前视场对应的视频流向VR终端发送,该方案基于VR终端的信息反馈,通过只给用户返回当前视场范围内的数据流,从而实现VR视频的按需传输,达到减少数据传输和降低带宽占用的目的。该方案极大降低带宽的消耗和占用,能够更快响应终端的请求,有效避免因带宽不足可能引起的卡顿现象,增强了用户的沉浸感和体验感。可以有效避免VR设备在进行全景视频数据解码时可能引起的设备发烫的现象以及设备电量消耗过快的问题。
实施例3
如图3所示,本发明实施例还提供一种VR视频传输方法,包括:
S31:通过播放请求模块获取当前视场信息,通过播放请求模块向服务端发送视频播放请求,视频播放请求携带当前视场信息。
S32:同时,通过数据上报模块异步获取第一视场信息,通过数据上报模块向服务端发送第一视场信息。
可以理解的是,本实施例提供的技术方案,通过播放请求模块获取当前视场信息,通过播放请求模块向服务端发送视频播放请求,视频播放请求携带当前视场信息;同时,通过数据上报模块异步获取第一视场信息,通过数据上报模块向服务端发送第一视场信息,以便服务端接收VR终端发送的视频播放请求,若当前视场存在对应的预测视场,则将预测视场对应的视频流向VR终端发送;若当前视场不存在对应的预测视场,则将当前视场对应的视频流向VR终端发送,该方案基于VR终端的信息反馈,通过只给用户返回当前视场范围内的数据流,从而实现VR视频的按需传输,达到减少数据传输和降低带宽占用的目的。该方案极大降低带宽的消耗和占用,能够更快响应终端的请求,有效避免因带宽不足可能引起的卡顿现象,增强了用户的沉浸感和体验感。可以有效避免VR设备在进行全景视频数据解码时可能引起的设备发烫的现象以及设备电量消耗过快的问题。
实施例4
如图4所示,本发明实施例还提供一种VR视频传输装置,包括:
播放请求接收模块41,用于接收VR终端发送的视频播放请求,视频播放请求携带VR终端的当前视场信息,当前视场信息是VR终端通过播放请求模块获取的。
预测视场判断模块42,用于判断当前视场是否存在对应的预测视场。
第一视频流发送模块43,用于若当前视场存在对应的预测视场,则将预测视场对应的视频流向VR终端发送。
第二视频流发送模块44,用于若当前视场不存在对应的预测视场,则将当前视场对应的视频流向VR终端发送。
在具体实践中,如图4中虚线部分所示,该装置还包括:
预测视场确定模块45,用于根据第一视场信息和第二视场信息按照指定规则确定所述预测视场,所述第一视场信息和所述第二视场信息是所述VR终端通过数据上报模块获取的,所述第一视场信息是所述VR终端在发送所述视频播放请求的同时,采用异步的方式获取后发送来的,所述第二视场信息是所述VR终端在所述第一视场信息前发送的。
在具体实践中,如图4中虚线部分所示,第一视频流发送模块43可以包括:
目标视频子流获取子模块431,用于根据所述预测视场从全景视频子流集内获取至少一个目标视频子流,所述全景视频子流集包括多个视频子流,所述多个视频子流由VR摄像机全景视频流按照预设切割角切割得到的。
预测视场合成子模块432,用于若所述至少一个目标视频子流包含两个或两个以上个目标视频子流,则将所述至少一个目标视频子流合成所述预测视场对应的视频流。
在具体实践中,所述第一视场信息包括第一视场角θk,所述第二视场信息包括第二视场角θm,k>m,θm对应的视频子流为Smi,视频子流Smi左边界对应的视场角为θstart,视频子流Smj右边界对应的视场角为θend,Smj是与Smi相邻的视频子流,j>i且j-i=1,视频子流的切割角为θ,预测视场确定模块45确定预测视场的方式有以下几种情况:
方式一,若θk>θm和θk-θstart<θ同时成立,或者,θk<θm和θend-θk<θ同时成立,则判定所述当前视场不存在对应的预测视场;
方式二,若θk>θm、θk-θstart>θ和θk<θend同时成立,则将Smj和顺时针方向上与Smj相邻的下一个视频子流进行合成,合成后作为所述当前视场的预测视场,并更新θend=θend+θ;
方式三,若θk<θm、θend-θk≧θ和θk>θstart同时成立,则将Smi、Smj以及顺时针方向上与Smi相邻的上一个视频子流进行合成,合成后作为所述当前视场的预测视场,并更新θstart=θstart-θ。
在具体实践中,所述视频播放请求还包括流编号参数,第二视频流发送模块44包括:
存储地址确定子模块441,用于根据所述流编号参数和所述当前视场信息确定所述当前视场对应的视频流的目标存储地址。
视频流获取子模块442,用于从所述目标存储地址获取所述当前视场对应的视频流向所述VR终端发送。
在具体实践中,该装置还包括:
存储地址生成模块46,用于生成所述预测视场对应的视频流的目标存储地址,所述目标存储地址包括可配置的根目录、流编号参数和标识字符串,所述标识字符串是由所述当前视场角信息经过MD5哈希映射后的字符串;将所述预测视场对应的视频流存入所述目标存储地址。
可以理解的是,本实施例提供的技术方案,接收VR终端发送的视频播放请求,若当前视场存在对应的预测视场,则将预测视场对应的视频流向VR终端发送;若当前视场不存在对应的预测视场,则将当前视场对应的视频流向VR终端发送,该方案基于VR终端的信息反馈,通过只给用户返回当前视场范围内的数据流,从而实现VR视频的按需传输,达到减少数据传输和降低带宽占用的目的。该方案极大降低带宽的消耗和占用,能够更快响应终端的请求,有效避免因带宽不足可能引起的卡顿现象,增强了用户的沉浸感和体验感。可以有效避免VR设备在进行全景视频数据解码时可能引起的设备发烫的现象以及设备电量消耗过快的问题。
实施例5
如图5所示,本发明实施例还提供一种VR终端,包括:
播放请求模块51,用于获取当前视场信息,向服务端发送视频播放请求,视频播放请求携带当前视场信息。
数据上报模块52,用于在向服务端发送视频播放请求的同时,异步获取第一视场信息,向服务端发送第一视场信息。
可以理解的是,本实施例提供的技术方案,播放请求模块获取当前视场信息,向服务端发送视频播放请求;数据上报模块52在向服务端发送视频播放请求的同时,异步获取第一视场信息,向服务端发送第一视场信息,以便服务端接收VR终端发送的视频播放请求,若当前视场存在对应的预测视场,则将预测视场对应的视频流向VR终端发送;若当前视场不存在对应的预测视场,则将当前视场对应的视频流向VR终端发送,该方案基于VR终端的信息反馈,通过只给用户返回当前视场范围内的数据流,从而实现VR视频的按需传输,达到减少数据传输和降低带宽占用的目的。该方案极大降低带宽的消耗和占用,能够更快响应终端的请求,有效避免因带宽不足可能引起的卡顿现象,增强了用户的沉浸感和体验感。可以有效避免VR设备在进行全景视频数据解码时可能引起的设备发烫的现象以及设备电量消耗过快的问题。
实施例6
如图6所示,本发明实施例还提供一种VR视频传输系统,包括:
VR终端61,向服务器发送视频播放请求,实时异步持续向服务器发送第一视场信息,视频播放请求携带VR终端的当前视场信息。
服务端62,接收VR终端发送的视频播放请求,当前视场信息是VR终端通过播放请求模块获取的;判断当前视场是否存在对应的预测视场;若当前视场存在对应的预测视场,则将预测视场对应的视频流向VR终端发送;若当前视场不存在对应的预测视场,则将当前视场对应的视频流向VR终端发送。
为了便于读者理解,下面对上述示例的具体实现细节进行详细描述,本示例对于服务端在模块划分上,与前述实施例的方式在形式上略有不同,但方案流程与前述实施例相同。
参见图7,VR摄像机输出全景视频流,切割模块负责将全景视频流切割成若干份全景视频子流,作为合成模块的输入。合成模块合成初始视场(FOV)视频流,输出到打包分发模块,打包分发模块负责将视场视频流返回给VR设备终端。VR设备终端在视频播放过程中实时读取陀螺仪数据获取用户当前视场角度信息,并上报到服务端反馈控制模块,反馈控制模块对上报信息进行分析预测然后做出相应的决策,然后将决策结果通知合成模块,合成模块根据决策信息合成输出未来视场(FOV)视频流,当VR设备终端进入该视场范围时,打包分发模块将向VR设备终端返回当前视场视频流数据。
关于VR全景视频流的切割
切割模块负责将全景摄像机的全景视频流,按照一定角度θ将360°全景视频流切割为若干子视频流。一般而言,切割角度越小,输出合成流的可控灵活度越大,但是不能无限地小,因为角度越小,切割得到的子流越多,则流需要进行合成的频率就越高,从而对服务端的资源消耗越大,因此,我们需要从工程实践上取一个最优的角度值。假设我们取切割角θ=60°,则经过切割后将会输出6路全景视频的子流S1,S2,S3,S4,S5和S6,切割后的全景视频流平面剖图如图8所示。
关于合成模块输出初始主视场视频流
将图8中S1和S6子流包含的视场范围称为初始主视场,合成模块在最初收到切割模块输出的子流后,将会合成初始主视场视频流输出。在这里,合成模块将对S1和S6子流进行合成,得到初始的主视场视频流。合成模块完成初始主视场流的合成后,发送消息通知打包分发模块对流进行接收和处理,此时焦点偏移起始角为0。
关于打包分发模块打包输出视场流
打包分发模块收到合成模块发送的消息后,开始接收合成模块输出的视场流进行打包切片输出。合成模块给打包分发模块发送的消息通过JSON格式进行编码,包含焦点偏移起始角,输出流的地址,为:
{
“degree_offset_start_point”: 0,
“source_address”: “udp://239.0.0.1:5543”
}
打包切片输出的存储目录格式规范为:${ROOT_DIR}/${SID}/${MD5_STR},其中,${ROOT_DIR}是可配置的根目录,${SID}是对应的流ID,${MD5_STR}是对焦点偏移起始角进行MD5哈希映射后的字符串,其计算过程为:取焦点偏移起始角的值,对其进行MD5哈希映射,然后对映射后的结果进行16进制编码,得到的字符串即为输出存储目录格式规范中的${MD5_STR}。在这里,焦点偏移起始角值为0,对其进行MD5哈希映射并16进制编码后得到的字符串为:cfcd208495d565ef66e7dff9f98764da,如果配置的根目录为:/mnt/media,流编号为:test,则得到打包切片输出的存储目录为:/mnt/media/test/cfcd208495d565ef66e7dff9f98764da。
关于VR终端请求播放
VR终端第一次请求视频流时,在请求的URL参数中携带当前视场的角度偏移参数field_angle,此外,还需要携带流编号参数sid,得到的URL如下所示:https://front.cdn.net/index.m3u8field_angle=0&sid=test。/>
打包分发模块收到请求后,提取URL参数field_angle和sid,计算出流对应的存储目录,计算的过程如下:
S1. 根据sid查找数据库,查询切割角的值θ,此时,查询得到的结果θ=60°。
S2. 计算焦点偏移起始角度,计算公式如下:
其中,field_angle=0, 所以按照公式计算得到的结果如下:
S3. 将步骤S42中计算得到的结果,进行MD5哈希映射,并对哈希结果进行16进制编码,得到字符串S=cfcd208495d565ef66e7dff9f98764da。
S4. 根据规范${ROOT_DIR}/${SID}/${MD5_STR}以及sid参数和S43计算得到的结果字符串,拼接得到流的存储目录:
/mnt/media/test/cfcd208495d565ef66e7dff9f98764da;
根据拼接的存储目录读取对应流的索引文件,并返回客户端。
VR终端在请求视频流的同时,会实时异步地读取VR设备陀螺仪数据,获取当前视场的角度偏移量,并上报到服务端反馈控制模块。反馈控制模块决策算法为:假设在Tm时刻上报的视场角为θm,此时合成输出的两个相邻的子流为Smi,Smj,其中j>i,且j-i=1,左边界子流对应的视场偏移角为θstart,右边界子流对应的视场偏移角为θend,流的切割角为θ,则在Tk时刻,当上报的视场角为θk时,其中k>m,反馈控制模块的决策的模型如下:
1)如果θk大于θm;
a.若θk-θstart小于θ,则保持当前状态;
b.若θk-θstart大于等于θ且θk小于θend,则通知合成Smj下一个相邻的子流,并更新θend=θend+θ。
2)如果θk小于θm;
a.若θend-θk小于θ,则保持当前状态;
b.若θend-θk大于等于θ且θk大于θstart,则通知当前输出与Smi相邻的子流合成,并更新θstart=θstart-θ。
基于同一技术构思,本申请实施例还提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行所述计算机程序时实现上述任一项所述的VR视频传输方法。
其中,存储器至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器在一些实施例中可以是VR视频传输系统的内部存储单元,例如硬盘。存储器在另一些实施例中也可以是VR视频传输系统的外部存储设备,例如插接式硬盘,智能存储卡(Smart MediaCard, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,存储器还可以既包括VR视频传输系统的内部存储单元也包括外部存储设备。存储器不仅可以用于存储安装于VR视频传输系统的应用软件及各类数据,例如VR视频传输程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器在一些实施例中可以是一中央处理器(Central Processing Unit, CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器中存储的程序代码或处理数据,例如执行VR视频传输程序等。
可以理解的是,本实施例提供的技术方案,VR终端向服务器发送视频播放请求,实时异步持续向服务器发送第一视场信息,服务端接收VR终端发送的视频播放请求,判断当前视场是否存在对应的预测视场;若当前视场存在对应的预测视场,则将预测视场对应的视频流向VR终端发送;若当前视场不存在对应的预测视场,则将当前视场对应的视频流向VR终端发送,该方案基于VR终端的信息反馈,通过只给用户返回当前视场范围内的数据流,从而实现VR视频的按需传输,达到减少数据传输和降低带宽占用的目的。该方案极大降低带宽的消耗和占用,能够更快响应终端的请求,有效避免因带宽不足可能引起的卡顿现象,增强了用户的沉浸感和体验感。可以有效避免VR设备在进行全景视频数据解码时可能引起的设备发烫的现象以及设备电量消耗过快的问题。
本发明公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的VR视频传输方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本发明公开实施例所提供的VR视频传输方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的VR视频传输方法的步骤,具体可参见上述方法实施例,在此不再赘述。
本发明公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (6)
1.一种VR视频传输方法,其特征在于,包括:
接收VR终端发送的视频播放请求,所述视频播放请求携带所述VR终端的当前视场信息,所述当前视场信息是所述VR终端通过播放请求模块获取的;
判断当前视场是否存在对应的预测视场;
若所述当前视场存在对应的预测视场,则将所述预测视场对应的视频流向所述VR终端发送;
若所述当前视场不存在对应的预测视场,则将所述当前视场对应的视频流向所述VR终端发送;
在所述判断当前视场是否存在对应的预测视场之前,所述方法还包括:
根据第一视场信息和第二视场信息按照指定规则确定所述预测视场,所述第一视场信息和所述第二视场信息是所述VR终端通过数据上报模块获取的,所述第一视场信息是所述VR终端在发送所述视频播放请求的同时,采用异步的方式获取后发送来的,所述第二视场信息是所述VR终端在所述第一视场信息前发送的;
所述第一视场信息包括第一视场角θk,所述第二视场信息包括第二视场角θm,k>m,所述当前视场的视场角和所述第二视场角相等,θm对应的视频子流为Smi,视频子流Smi左边界对应的视场角为θstart,视频子流Smj右边界对应的视场角为θend,Smj是与Smi相邻的视频子流,j>i且j-i=1,视频子流的切割角为θ,所述根据第一视场信息和第二视场信息按照指定规则确定所述预测视场包括以下方式:
方式一,若θk>θm和θk-θstart<θ同时成立,或者,θk<θm和θend-θk<θ同时成立,则判定所述当前视场不存在对应的预测视场;
方式二,若θk>θm、θk-θstart>θ和θk<θend同时成立,则将Smj和顺时针方向上与Smj相邻的下一个视频子流进行合成,合成后作为所述当前视场的预测视场,并更新θend,将θend加θ;
方式三,若θk<θm、θend-θk≧θ和θk>θstart同时成立,则将Smi、Smj以及顺时针方向上与Smi相邻的上一个视频子流进行合成,合成后作为所述当前视场的预测视场,并更新θstart,将θstart减θ。
2.根据权利要求1所述的VR视频传输方法,其特征在于,所述将所述预测视场对应的视频流向所述VR终端发送包括:
根据所述预测视场从全景视频子流集内获取至少一个目标视频子流,所述全景视频子流集包括多个视频子流,所述多个视频子流由VR摄像机全景视频流按照预设切割角切割得到的;
若所述至少一个目标视频子流包含两个或两个以上个目标视频子流,则将所述至少一个目标视频子流合成所述预测视场对应的视频流。
3.根据权利要求2所述的VR视频传输方法,其特征在于,所述视频播放请求还包括流编号参数,所述将所述当前视场对应的视频流向所述VR终端发送包括:
根据所述流编号参数和所述当前视场信息确定所述当前视场对应的视频流的目标存储地址;
从所述目标存储地址获取所述当前视场对应的视频流向所述VR终端发送。
4.根据权利要求3所述的VR视频传输方法,其特征在于,在所述判断当前视场是否存在对应的预测视场之前,所述方法还包括:
生成所述预测视场对应的视频流的目标存储地址,所述目标存储地址包括可配置的根目录、流编号参数和标识字符串,所述标识字符串是由所述当前视场角信息经过MD5哈希映射后的字符串;
将所述预测视场对应的视频流存入所述目标存储地址。
5.一种VR视频传输装置,其特征在于,
播放请求接收模块,用于接收VR终端发送的视频播放请求,所述视频播放请求携带所述VR终端的当前视场信息,所述当前视场信息是所述VR终端通过播放请求模块获取的;
预测视场判断模块,用于判断当前视场是否存在对应的预测视场;
第一视频流发送模块,用于若所述当前视场存在对应的预测视场,则将所述预测视场对应的视频流向所述VR终端发送;
第二视频流发送模块,用于若所述当前视场不存在对应的预测视场,则将所述当前视场对应的视频流向所述VR终端发送;
预测视场确定模块,用于根据第一视场信息和第二视场信息按照指定规则确定所述预测视场,所述第一视场信息和所述第二视场信息是所述VR终端通过数据上报模块获取的,所述第一视场信息是所述VR终端在发送所述视频播放请求的同时,采用异步的方式获取后发送来的,所述第二视场信息是所述VR终端在所述第一视场信息前发送的;
所述第一视场信息包括第一视场角θk,所述第二视场信息包括第二视场角θm,k>m,θm对应的视频子流为Smi,视频子流Smi左边界对应的视场角为θstart,视频子流Smj右边界对应的视场角为θend,Smj是与Smi相邻的视频子流,j>i且j-i=1,视频子流的切割角为θ,所述根据第一视场信息和第二视场信息按照指定规则确定所述预测视场包括以下方式:
方式一,若θk>θm和θk-θstart<θ同时成立,或者,θk<θm和θend-θk<θ同时成立,则判定所述当前视场不存在对应的预测视场;
方式二,若θk>θm、θk-θstart>θ和θk<θend同时成立,则将Smj和顺时针方向上与Smj相邻的下一个视频子流进行合成,合成后作为所述当前视场的预测视场,并更新θend,将θend加θ;
方式三,若θk<θm、θend-θk≧θ和θk>θstart同时成立,则将Smi、Smj以及顺时针方向上与Smi相邻的上一个视频子流进行合成,合成后作为所述当前视场的预测视场,并更新θstart,将θstart减θ。
6.一种VR视频传输系统,其特征在于,包括:
VR终端,向服务器发送视频播放请求,实时异步持续向服务器发送第一视场信息,所述视频播放请求携带所述VR终端的当前视场信息;
服务端,接收VR终端发送的所述视频播放请求,所述当前视场信息是所述VR终端通过播放请求模块获取的;判断当前视场是否存在对应的预测视场;若所述当前视场存在对应的预测视场,则将所述预测视场对应的视频流向所述VR终端发送;若所述当前视场不存在对应的预测视场,则将所述当前视场对应的视频流向所述VR终端发送,在所述判断当前视场是否存在对应的预测视场之前,所述方法还包括:根据第一视场信息和第二视场信息按照指定规则确定所述预测视场,所述第一视场信息和所述第二视场信息是所述VR终端通过数据上报模块获取的,所述第一视场信息是所述VR终端在发送所述视频播放请求的同时,采用异步的方式获取后发送来的,所述第二视场信息是所述VR终端在所述第一视场信息前发送的;所述第一视场信息包括第一视场角θk,所述第二视场信息包括第二视场角θm,k>m,θm对应的视频子流为Smi,视频子流Smi左边界对应的视场角为θstart,视频子流Smj右边界对应的视场角为θend,Smj是与Smi相邻的视频子流,j>i且j-i=1,视频子流的切割角为θ,所述根据第一视场信息和第二视场信息按照指定规则确定所述预测视场包括以下方式:方式一,若θk>θm和θk-θstart<θ同时成立,或者,θk<θm和θend-θk<θ同时成立,则判定所述当前视场不存在对应的预测视场;方式二,若θk>θm、θk-θstart>θ和θk<θend同时成立,则将Smj和顺时针方向上与Smj相邻的下一个视频子流进行合成,合成后作为所述当前视场的预测视场,并更新θend,将θend加θ;方式三,若θk<θm、θend-θk≧θ和θk>θstart同时成立,则将Smi、Smj以及顺时针方向上与Smi相邻的上一个视频子流进行合成,合成后作为所述当前视场的预测视场,并更新θstart,将θstart减θ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211253672.4A CN115334337B (zh) | 2022-10-13 | 2022-10-13 | 一种vr视频传输方法、装置、终端及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211253672.4A CN115334337B (zh) | 2022-10-13 | 2022-10-13 | 一种vr视频传输方法、装置、终端及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115334337A CN115334337A (zh) | 2022-11-11 |
CN115334337B true CN115334337B (zh) | 2023-03-24 |
Family
ID=83914212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211253672.4A Active CN115334337B (zh) | 2022-10-13 | 2022-10-13 | 一种vr视频传输方法、装置、终端及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115334337B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9274597B1 (en) * | 2011-12-20 | 2016-03-01 | Amazon Technologies, Inc. | Tracking head position for rendering content |
EP2672694B1 (en) * | 2012-06-05 | 2014-01-15 | Axis AB | Improved control of an image capturing device |
CN106205273A (zh) * | 2016-09-20 | 2016-12-07 | 山西省交通科学研究院 | 一种基于vr模拟技术的汽车驾驶模拟系统及方法 |
CN108076355B (zh) * | 2017-12-26 | 2020-12-08 | 百度在线网络技术(北京)有限公司 | 视频播放控制方法和装置 |
US10657784B1 (en) * | 2018-05-14 | 2020-05-19 | Amazon Technologies, Inc. | Auxiliary motion detector for video capture |
CN116325769A (zh) * | 2020-10-01 | 2023-06-23 | 皇家Kpn公司 | 从多个视点流式传输场景的全景视频 |
-
2022
- 2022-10-13 CN CN202211253672.4A patent/CN115334337B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115334337A (zh) | 2022-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101467430B1 (ko) | 클라우드 컴퓨팅 기반 어플리케이션 제공 방법 및 시스템 | |
KR102246002B1 (ko) | 가상 현실 미디어 콘텐트의 스트리밍을 개선하는 방법, 디바이스, 및 컴퓨터 프로그램 | |
RU2711591C1 (ru) | Способ, устройство и компьютерная программа для адаптивной потоковой передачи мультимедийного контента виртуальной реальности | |
CN107743708B (zh) | 经由dash来参与abr流传送会话的方法、装置和节点 | |
Hamza et al. | Adaptive streaming of interactive free viewpoint videos to heterogeneous clients | |
US11356493B2 (en) | Systems and methods for cloud storage direct streaming | |
KR20130029121A (ko) | 복수의 콘텐츠 아이템으로부터 합성 뷰를 생성하는 방법, 서버 및 단말 | |
US11381885B2 (en) | Method and device for managing processing of media content, and computer-readable recording medium | |
CN108282449B (zh) | 一种应用于虚拟现实技术的流媒体的传输方法和客户端 | |
CN101300840A (zh) | 多视角视频传递 | |
CN111031400B (zh) | 弹幕呈现方法和系统 | |
US11348307B2 (en) | Method and device for processing content | |
CN109218755B (zh) | 一种媒体数据的处理方法和装置 | |
CN113453046B (zh) | 沉浸式媒体提供方法、获取方法、装置、设备及存储介质 | |
EP3721636A1 (en) | Method for adaptive streaming of media | |
CN109074678A (zh) | 一种信息的处理方法及装置 | |
CN109587514A (zh) | 一种视频播放方法、介质和相关装置 | |
CN113852829A (zh) | 点云媒体文件的封装与解封装方法、装置及存储介质 | |
KR20200020913A (ko) | 미디어 정보를 처리하는 방법 및 장치 | |
CN115334337B (zh) | 一种vr视频传输方法、装置、终端及系统 | |
US20210014547A1 (en) | System for distributing an audiovisual content | |
CN114116617A (zh) | 点云媒体的数据处理方法、装置、设备及可读存储介质 | |
CN112565606B (zh) | 全景视频智能传输方法、设备及计算机存储介质 | |
KR20220031560A (ko) | 정보 처리 장치, 정보 처리 방법, 재생 처리 장치 및 재생 처리 방법 | |
WO2022151370A1 (en) | Multi-track based immersive media playout |
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 |