一种多视点视频的视点切换方法、服务器和系统

文档序号:1357283 发布日期:2020-07-24 浏览:26次 >En<

阅读说明:本技术 一种多视点视频的视点切换方法、服务器和系统 (Viewpoint switching method, server and system for multi-viewpoint video ) 是由 田路 夏洪升 于 2020-04-26 设计创作,主要内容包括:本发明公开了一种多视点视频的视点切换方法:接收终端发送的视点切换请求,所述视点切换请求中包含所请求新视点信息,所请求新视点信息由所述终端根据多视点视频的相机信息和用户的视点切换动作计算得出;根据所述所请求新视点信息,将所请求新视点的视频发送给终端。本发明可以实现终端与服务器间多视点视频视点切换的交互,实现视点切换的平滑过渡;基于应用广泛的HLS或RTMP流媒体协议实现多视点切换,改动小,适用范围广;可以支持多终端同时进行视点切换,终端之间独立,播放各自的视点切换视频;通过对现有HLS或RTMP流媒体协议扩展实现,不影响现有单视点的HLS或RTMP流媒体协议播放。本发明还提供了相应的多视点视频的视点切换服务器和系统。(The invention discloses a viewpoint switching method of a multi-viewpoint video, which comprises the steps of receiving a viewpoint switching request sent by a terminal, wherein the viewpoint switching request comprises requested new viewpoint information, the requested new viewpoint information is calculated by the terminal according to camera information of the multi-viewpoint video and viewpoint switching actions of a user, and sending the video of the requested new viewpoint to the terminal according to the requested new viewpoint information.)

一种多视点视频的视点切换方法、服务器和系统

技术领域

本发明属于多视点视频播放技术领域,更具体地,涉及一种多视点视频的视点切换方法、服务器和系统。

背景技术

多视点视频作为一种新型的视频技术,是一种满足人们多角度观看视频的方法,其指在录制视频时,由多个布置在不同视点的相机从不同视角对同一场景进行拍摄而得到的一组视频信号。多个相机以阵列形式排列,典型排列方式可分为一维(一字或半环形)、二维(十字交叉或面阵)、三维(球型)排列。采集的多视点视频数据经过编码后传入CDN服务器,由CDN服务器将视频进行流化处理,发送到用户终端。用户通过终端观看时,可以自由切换多视点视频中的视点来看到不同视角的内容,从而得到“环视”和“运动视差”的效果。

目前主流的HLS或者RTMP协议媒体播放协调,均服务于单路视点视频的承载播放,对多视点视频的播放应用以及视点切换并无具体设计。并且在视点切换时,由于多视点视频视点间存在相差,会导致切换不平滑,观感差的情况。

发明内容

针对现有技术的以上缺陷或改进需求,本发明提供了一种多视点视频的视点切换方法、服务器和系统,其目的在于实现终端与服务器间多视点视频视点切换的交互,实现视点切换的平滑过渡。

为实现上述目的,按照本发明的一个方面,提供了一种多视点视频的视点切换方法,包括:

接收终端发送的视点切换请求,所述视点切换请求中包含所请求新视点信息,所请求新视点信息由所述终端根据多视点视频的相机信息和用户的视点切换动作计算得出;

根据所述所请求新视点信息,将所请求新视点的视频发送给终端。

本发明的一个实施例中,所述多视点视频的相机信息包括:相机阵列中相机总个数,相机排列方式,相机阵列横向排列间距步长、相机阵列纵向排列间距步长,视点横向位置,视点纵向位置。

本发明的一个实施例中,所述多视点视频采用HLS协议播放,所述根据所请求新视点信息,将所请求新视点的视频发送给终端,包括:

将所请求新视点的二级m3u8索引文件发送给所述终端,以使所述终端根据所请求新视点的二级m3u8索引文件获取所请求新视点的视频。

本发明的一个实施例中,所述视点切换请求中还包含当前视点信息,所述服务器在将所请求新视点的视频发送给终端之前,还根据所述当前视点信息和所请求新视点信息,生成当前视点和所请求新视点之间的视点切换平滑过渡视频,并将所述视点切换平滑过渡视频发送给终端。

本发明的一个实施例中,将所述视点切换平滑过渡视频发送给终端,包括:

根据视点切换信息生成多视点视频视点切换的一级和二级m3u8索引文件,其中一级m3u8索引文件记录二级m3u8索引文件的地址,二级m3u8索引文件中记录视点切换平滑过渡视频的切片TS视频文件的地址;

将所述多视点视频视点切换的一级和二级m3u8索引文件发送给所述终端,以使所述终端根据所述一级和二级m3u8索引文件获取所述视点切换平滑过渡视频。

本发明的一个实施例中,将所述多视点视频视点切换的一级和二级m3u8索引文件发送给所述终端,以使所述终端根据所述一级和二级m3u8索引文件获取所述视点切换平滑过渡视频,具体为:

终端接收视点切换的一级m3u8索引文件,根据文件中记录的二级m3u8索引文件地址,向服务器发送GET消息,请求视点切换的二级m3u8索引文件;

服务器接收并解析GET消息,发送终端请求的视点切换二级m3u8索引文件;

终端接收视点切换的二级m3u8索引文件,根据文件中记录的视点切换平滑过渡视频的切片TS视频文件地址,向服务器发送GET消息,请求视点切换平滑过渡视频的切片TS视频文件;

服务器接收并解析GET消息,发送视点切换平滑过渡视频的切片TS视频文件。

本发明的一个实施例中,所述多视点视频采用RTMP协议播放,所述接收终端发送的视点切换请求具体为:

服务器接收终端发送的play消息,其中所述play消息携带当前视点信息和所请求新视点信息,以及视点切换方式,视点切换方式包括无平滑过渡的视点切换和有平滑过渡的视点切换。

本发明的一个实施例中,根据所述所请求新视点信息,将所请求新视点的视频发送给终端,包括:

服务器收到play消息后,获取play消息中携带的当前视点信息和所请求新视点信息,以及视点切换方式;

如果视点切换方式为无平滑过渡的视点切换,则将所请求新视点的视频加入playlist,停止当前视点视频的播放,播放所请求新视点的视频;

如果视点切换方式为有平滑过渡的视点切换,则根据所述当前视点信息和所请求新视点信息,生成当前视点和所请求新视点之间的视点切换平滑过渡视频,将视点切换平滑过渡视频与所请求新视点的视频加入playlist,停止当前视点视频的播放,顺序播放视点切换平滑过渡视频和所请求新视点的视频。

本发明的一个实施例中,根据所述当前视点信息和所请求新视点信息,生成当前视点和所请求新视点之间的视点切换平滑过渡视频,具体为:

根据切换的时间点,将切换前后所有视点的在切换时间点的GOP的视频内容取出,对视频内容进行解码操作,获取多路视点在该GOP的原始视频码流,然后根据切换时间点,将多个视点原始码流对应时间点的帧取出,根据视点切换顺序,拼接成基于原始视频码流的视点切换平滑过渡视频,然后再进行压缩编码,生成需要的视点切换平滑过渡视频。

按照本发明的另一方面,还提供了一种服务器,用于执行上述多视点视频的视点切换方法。

按照本发明的另一方面,还提供了一种多视点视频的视点切换系统,包括用于执行上述多视点视频的视点切换方法的服务器和终端。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:

(1)本发明可以实现终端与服务器间多视点视频视点切换的交互,实现视点切换的平滑过渡;

(2)本发明基于应用广泛的HLS或RTMP流媒体协议实现多视点切换,改动小,适用范围广;

(3)本发明可以支持多终端同时进行视点切换,终端之间独立,播放各自的视点切换视频;

(4)本发明通过对现有HLS或RTMP流媒体协议扩展实现,不影响现有单视点的HLS或RTMP流媒体协议播放。

附图说明

图1是本发明实施例中多视点视频端到端的系统架构示意图;

图2是本发明实施例中一种多视点视频的视点切换方法;

图3是苹果公司所公布的终端播放HLS视频流的逻辑示意图;

图4是HLS实现多视点视频播放的方法示意图;

图5是HLS实现多视点视频切换的方法示意图;

图6是RTMP实现多视点视频播放的方法示意图;

图7是RTMP实现多视点视频切换的方法示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

首先阐明本发明的实施架构,如图1所示,本发明多视点视频端到端的系统包括:

相机阵列与编码服务器(前置模块):相机阵列由多个相机组成,一般采用工业相机,通过同步设备同时采集对象的视频,生成未压缩的原始视频,注入到编码服务器中;编码服务器对多路原始视频码流进行压缩编码,形成多路压缩后的视频码流,注入CDN服务器。

CDN服务器:接收并存储多视点编码服务器生成的压缩后多视点视频内容,可使用流媒体协议将多视点视频内容流化打包,为多个不同终端提供流式播放服务,同时可根据各个终端的不同要求发送某个视点的视频到某个终端,并响应各个终端的视点切换请求,提供视点切换的服务。

终端:如电视机顶盒、手机、PC等。向CDN服务器发起多视点视频播放请求,接收CDN服务器发送的某个视点视频的流式码流并播放。在播放过程中,向CDN服务器发起切换视点播放的请求,接收CDN服务器视点切换平滑过渡视频播放,以及播放所请求新视点的视频。

实施例1

由于目前主流的HLS或者RTMP协议媒体播放协议,均服务于单路视点视频的承载播放,对多视点视频的播放应用以及视点切换并无具体设计。因此,如图2所示,本发明提供了一种多视点视频的视点切换方法,包括:

S1、接收终端发送的视点切换请求,所述视点切换请求中包含所请求新视点信息,所请求新视点信息由所述终端根据多视点视频的相机信息和用户的视点切换动作计算得出;

S2、服务器根据所述所请求新视点信息,将所请求新视点的视频发送给终端。

为了实现视点的切换,首先需要终端根据多视点视频的相机信息和用户的视点切换动作计算出所请求新视点信息。

因此在终端中需要有多视点视频的相机信息,一般包括:相机阵列中相机总个数,相机排列方式,相机阵列横向排列间距步长、相机阵列纵向排列间距步长,视点横向位置(X轴坐标百分比),视点纵向位置(Y轴坐标百分比)。该信息可以在播放多视点视频的时候从服务器得到并保存在终端中。

终端根据多视点视频的相机信息,包括视点总个数、当前所处视点和视点切换步长偏移,计算出所请求新视点的信息作为请求发送给服务器。例如相机(视点)总个数为5,按一维方式排列,用户通过遥控器按键,按了2次右键,终端判断需要从当前坐标为0,0的视点切换到坐标为50,0的视点;另外,如果当前处于坐标为75,0的视点,用户按2次右键,则只能切换到坐标为100,0的视点。需要说明的是,在本发明中,每个相机对应一个视点,各个视点是和坐标相对应的,因此,有本发明相关描述中说到视点或者坐标时,二者所指代的意思是相同的。另外,本发明实施例中视点横向位置和视点纵向位置是用百分比来表示,例如坐标为50,0的视点,即表示其位于横向50%,纵向0的位置的视点。当然,也可以使用其他方式来表示。

另外,在视点切换时,由于多视点视频视点间存在相差,会导致切换不平滑,观感差的情况。

因此本发明方案,还可以在所述视点切换请求中包含当前视点信息,所述服务器根据所述当前视点信息和所请求新视点信息,生成当前视点和所请求新视点之间的视点切换平滑过渡视频,并将所述视点切换平滑过渡视频发送给终端。

具体地,生成当前视点和所请求新视点之间的视点切换平滑过渡视频可以为:

根据切换的时间点,将切换前后所有视点的在切换时间点的GOP的视频内容取出,对视频内容进行解码操作,获取多路视点在该GOP的原始视频码流,然后根据切换时间点,将多个视点原始码流对应时间点的帧取出,根据视点切换顺序,拼接成基于原始视频码流的视点切换平滑过渡视频,然后再进行压缩编码,生成需要的视点切换平滑过渡视频。

另外需要说明的是,在本发明中进行视点切换时,可能需要做视点的平滑过渡或者无需做视点的平滑过渡;如果需要做视点的平滑过渡时,则当前视点的信息是必需的,无需做视点的平滑过渡时,只需要所请求新视点的信息即可,所以在视点切换请求中,当前视点的信息是可包含也可不包含的。

实施例2

首先阐述以HLS协议播放进行多视点视频的视点切换技术方案:

HLS(HTTP Live Streaming)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,被称为媒体分片,媒体的封装格式为TS。当媒体流正在播放时,终端可以选择从许多不同的备用源中以不同的速率下载同样的资源,同时允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,终端会下载一个包含元数据的extended M3U(m3u8)playlist文件,用于寻找可用的媒体流。m3u8文件实质是一个播放列表(playlist),其可能是一个媒体播放列表(MediaPlaylist),或者是一个主播放列表(Master Playlist),当m3u8文件作为媒体播放列表(Media Playlist)时,其记录的是一系列可播放的媒体片段资源文件的位置,当m3u8作为主播放列表(Master Playlist)时,其记录的是多个作为媒体播放列表(Media Playlist)的m3u8文件位置。

为简要描述,本发明将主播放列表(Master Playlist)称为一级m3u8索引文件,将媒体播放列表(Media Playlist)称为二级m3u8索引文件。

如图3所示,终端播放HLS视频流的逻辑其实非常简单,先下载一级m3u8索引文件,它里面记录了二级m3u8索引文件的地址,然后终端再去下载二级m3u8索引文件,二级m3u8索引文件中又记录了TS文件的下载地址,这样终端就可以按顺序下载TS视频文件并连续播放。

由于:(1)HLS是基于HTTP的流媒体视频承载协议,其使用m3u8索引文件,通过对TS媒体文件的分片,实现渐进式的自适应码率播放,但其设计是服务于单路视点视频的承载播放,对多视点视频的播放应用以及视点切换并无具体适配,不能直接在多视点视频播放中应用;(2)在视点切换的过程中,由于多视点视频各个视点间存在相差,会导致视点切换时播放视频不平滑,造成用户观感差的情况。

因此,本发明实施例提出了一种通过HLS实现多视点视频视点平滑切换的方法:通过扩展HLS协议中的一级/二级m3u8索引文件,增加适配于多个相机采集视点参数的描述,并通过m3u8索引文件在视点切换时播放视点切换平滑过渡视频,由CDN服务器提供给终端满足用户要求的视频内容,达到在多视点视频播放时,视点切换平滑播放的目的。

本发明实施例在CDN服务器模块的相关处理:

多视点视频播放时,接收终端播放请求,生成多视点视频的一级和二级m3u8索引文件,以对应相应多个视点不同码率的TS视频分片文件,提供给终端用于某个视点视频的播放;

多视点视频切换时,接收终端视点切换请求,根据终端播放视点切换平滑过渡视频的需要,生成多视点视频视点切换的一级和二级m3u8索引文件,并生成对应的视点切换平滑过渡视频的TS视频分片文件,用于在切换视点时播放,降低因前后视点视差造成的不连续感。

本发明实施例在终端模块的相关处理:

向CDN服务器发起播放多视点视频请求,获取多视点视频的一级/二级m3u8索引文件,存储m3u8索引文件中描述的相机排列方式及视点个数等信息,并根据一级/二级m3u8索引文件获取某个视点的TS视频文件分片进行播放

处理用户的视点切换操作(如用户通过电视机顶盒的遥控器方向键切换等方法),终端根据已存储的相机排列方式、视点个数及当前视点信息,计算出切换前后视点的坐标,作为多视点视频视点切换请求扩展字段发送给CDN服务器,接收平滑切换TS视频分片文件并播放。

HLS协议中m3u8索引文件新增扩展字段描述,相机阵列中每一个相机对应一个视点:

(1)m3u8文件中的新增扩展字段

一级m3u8索引文件用于记录二级m3u8索引文件位置,在一级m3u8索引文件中增加相机信息描述,针对所有视点不同带宽都生成二级m3u8索引文件,一级m3u8文件会记录所有视点的二级m3u8文件位置。

如下例所示为一种以十字交叉型二维阵列形式排列的相机信息描述,相机总个数为9个,X轴与Y轴的步长间距均为25%,步长增长方向为X轴从左向右,Y轴从下向上:

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=564000,ALL-CAM-NUM=9,CAM-ARR=2,XSTEP=25,YSTEP=25,XAXIS=0,YAXIS=0,DEFAULT=0

http://xxxxxx.cn/xxx/xx/Camera_0_0_500kbps.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=282000,ALL-CAM-NUM=9,CAM-ARR=2,XSTEP=25,YSTEP=25,XAXIS=50,YAXIS=50,DEFAULT=1

http://xxxxxx.cn/xxx/xx/Camera_50_50_250kbps.m3u8

新增扩展字段放置于EXT-X-STREAM-INF标签下,用来描述某个二级m3u8索引文件中的视点情况,包括:

ALL-CAM-NUM:相机阵列中相机总个数;

CAM-ARR:相机排列方式(0为传统单个相机,1为相机阵列一维排列,2为相机阵列二维排列),单个相机为非多视点视频情况,一维/二维排列的相机阵列为多视点视频情况;

XSTEP/YSTEP:相机横向/纵向排列间距步长(百分比),要求相机阵列中同一维度相机间距步长相同;

XAXIS/YAXIS:相机当前视点横向/纵向位置(百分比),表示所描述二级m3u8索引文件的所处视点,对应于二级m3u8索引文件名称;

DEFAULT:表示该视点是否为默认视点,默认视点为初始播放的视点,一般一个相机阵列只有一个默认视点。值为1时表示默认视点,值为0时表示非默认视点。

二级m3u8索引文件用于记录当前播放的文件分片位置,每个二级m3u8索引文件仅表示一个视点,新增字段定义如下例所示:

文件名:Camera_50_50_250kbps.m3u8

#EXTM3U

#EXT-X-MVS:9,2,25,25

#EXT-X-CVW:50,50

其中,新增扩展字段EXT-X-MVS表示多视点视频采集的相机信息,参数包括相机总个数、相机排列方式(0为传统单个相机,1为相机阵列一维排列,2为相机阵列二维排列)、相机阵列横向排列间距步长(百分比)、相机阵列纵向排列间距步长(百分比);新增扩展字段EXT-X-CVW表示当前视点的位置信息,包括视点横向位置(X轴百分比),视点纵向位置(Y轴百分比)。

需要说明的是,上述案例为二维阵列相机,如果是一维阵列,则横向/纵向排列间距步长、视点横向/纵向位置只有一维信息,或者将不存在的那一维的相应信息设置为0或其他预设值,以表明不存在相应维度。

(2)终端请求视点切换时,可选择是否需要CDN服务器提供视点切换平滑过渡视频,若不需要提供,则终端直接请求所请求新视点的二级m3u8文件,并根据所请求新视点的m3u8文件获取媒体文件播放;若需要提供,CDN服务器根据切换前后的视点情况生成视点切换平滑过渡视频,在m3u8索引文件中新增扩展字段标记该视点切换平滑过渡视频所对应的视点切换前后的视点信息;

一级m3u8索引文件对新增扩展字段的修改如下例所示,记录切换前后的视点位置信息(例如从视点0,0切换到视点25,0):

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=564000,ALL-CAM-NUM=9,CAM-ARR=2,XSTEP=25,YSTEP=25,XAXIS=0-25,YAXIS=0-0

http://xxxxxx.cn/xxx/xx/Camera_0-25_0-0_500kbps.m3u8

二级m3u8索引文件对新增扩展字段的修改如下例所示,记录切换前后的视点坐标:

#EXTM3U

#EXT-X-MVS:9,2,25,25

#EXT-X-CVW:0-25,0-0

上述信息表示,从视点0,0切换到视点25,0(XAXIS=0-25,YAXIS=0-0),视点横向位置从0-25(XAXIS=0-25),视点纵向位置不变(YAXIS=0-0),相机横向排列间距步长为25(XSTEP=25)。

本实施例中如果不需要做视点平滑切换,则直接GET所请求新视点的二级m3u8文件,例如:

GET http://xxxxxx.cn/xxx/xx/Camera_25_0_500kbps.m3u8 HTTP/1.1

终端基于HLS协议向CDN服务器请求视点切换时会使用HTTP协议中的GET命令。基于多视点视频应用场景,在GET命令中的URL中新增扩展字段XAXIS、YAXIS描述请求切换视点的坐标状态,如下例所示:

GET http://xxxxxx.cn/xxx/MultiView.m3u8?XAXIS=0-25&YAXIS=0-0HTTP/1.1

终端针对一级/二级m3u8索引文件中描述的多视点相关信息处理:

请求播放多视点视频的某个视点时:根据m3u8索引文件中的相机总个数和相机排列方式,选择某个坐标的视点播放;

多视点视频视点切换时:由用户通过终端发起,根据m3u8索引文件中相机排列方式,一维排列仅支持X轴维度的视点切换,二维排列支持X轴/Y轴双维度的视点切换。根据m3u8索引文件中当前视点的X轴/Y轴维度的位置信息,以及相机阵列X轴/Y轴排列间距步长,计算视点切换操作后视点的坐标,生成切换前后视点的视点切换平滑过渡视频,同时获取对应新视点的二级m3u8文件。计算切换视点时根据用户在终端(如机顶盒遥控器方向键)X轴/Y轴方向上移动范围的百分比,对应m3u8索引文件中记录的视点位置信息,获取所请求的新视点的坐标。

图4描述了通过HLS实现多视点视频播放的过程:

S101:终端(如电视机顶盒、手机、PC等)发起播放流程,通过发送http协议的GET消息向CDN服务器请求多视点视频的一级m3u8索引文件。

S102:CDN服务器接收并解析GET消息,发送多视点视频的一级m3u8索引文件到终端。

S103:终端接收多视点视频的一级m3u8索引文件,根据文件中记录的相机信息及视点对应的二级m3u8索引文件地址,选择多视点视频的某个视点,向CDN服务器发送GET消息,请求该视点的二级m3u8索引文件。

S104:CDN服务器接收并解析GET消息,发送终端请求视点的二级m3u8索引文件到终端。

S105:终端接收请求视点的二级m3u8索引文件,根据文件中记录的该视点的切片TS视频文件地址,向CDN服务器发送GET消息,请求该视点的切片TS视频文件。

S106:CDN服务器接收并解析GET消息,发送该视点的切片TS视频文件。

S107:终端接收并播放该视点的切片TS视频文件。

图5描述了通过HLS实现多视点视频视点切换的过程:

S201:用户通过终端(如电视机顶盒、手机、PC等)发起切换视点操作,终端解析用户的操作,计算出切换前后视点的信息,可选择是否播放视点切换平滑过渡视频,若需要播放,则将切换前后视点的信息通过GET消息发送到CDN服务器,请求视点切换的一级m3u8索引文件;若不需要播放,则请求所请求新视点的二级m3u8文件。下述处理介绍播放视点切换平滑过渡视频的处理流程。

S202:CDN服务器接收并解析GET消息,根据切换前后的视点信息,生成视点切换的一级和二级m3u8索引文件,同时生成切换时间点前后视点的视点切换平滑过渡视频,在二级m3u8索引文件中记录视点切换平滑过渡视频的切片TS视频文件的地址。发送视点切换的一级m3u8索引文件到终端。

S203:终端接收视点切换的一级m3u8索引文件,根据文件中记录的二级m3u8索引文件地址,向CDN服务器发送GET消息,请求视点切换的二级m3u8索引文件。

S204:CDN服务器接收并解析GET消息,发送终端请求的视点切换二级m3u8索引文件。

S205:终端接收视点切换的二级m3u8索引文件,根据文件中记录的视点切换平滑过渡视频的切片TS视频文件地址,向CDN服务器发送GET消息,请求视点切换平滑过渡视频的切片TS视频文件。

S206:CDN服务器接收并解析GET消息,发送视点切换平滑过渡视频的切片TS视频文件。

S207:终端接收并播放视点切换平滑过渡视频的切片TS视频文件。

S208:终端向CDN服务器发送GET消息,请求所请求新视点的二级m3u8索引文件。

S209:CDN服务器接收并解析GET消息,发送所请求新视点的二级m3u8索引文件。

S210:终端接收所请求新视点的二级m3u8索引文件,根据文件中记录的所请求新视点的切片TS视频文件地址,向CDN服务器发送GET消息,请求所请求新视点的切片TS视频文件。

S211:CDN服务器接收并解析GET消息,发送所请求新视点的切片TS视频文件。

S212:终端接收并播放所请求新视点的切片TS视频文件。

实施例3

RTMP协议(Real Time Messaging Protocol,实时消息传输协议)是将Flash用于对象、视频、音频的传输协议。这个协议建立在TCP协议或者轮询HTTP协议之上。RTMP协议就像一个用来装数据包的容器,这些数据既可以是AMF(Action Message Format,动作消息格式)格式的数据,也可以是FLV(Flash Video,Flash视频)中的视/音频数据。

由于(1)RTMP是流媒体视频传输控制承载协议,对多视点视频的播放应用以及视点切换并无具体适配,不能直接在多视点视频播放中应用;(2)在视点切换的过程中,存在将不同视点的流进行衔接的问题。

因此,本实施例提出了一种通过RTMP实现多视点视频视点平滑切换的方法:通过扩展RTMP协议中字段,增加适配于多个相机采集视点参数的描述,通过终端和服务器的交互,由CDN服务器提供给终端满足用户要求的视频内容,达到在多视点视频播放时,视点切换平滑播放的目的。

本发明实施例中终端针对服务器响应消息中多视点相关信息处理以及对视点切换的操作:

终端收到服务器的携带的多视点的信息,解析保存,根据视点的排列方式,可以播放相关视点。

多视点视频视点切换时:由用户通过终端发起,获取用户在界面或者键盘、遥控器输入的切换信息,然后根据之前获取的相机排列信息,计算出用户操作的切换的当前视点,通过请求字段发送给服务器,发送消息使用play消息。

具体地,终端向服务器发送play消息,其中所述play消息携带当前视点信息和所请求新视点信息,以及视点切换方式,视点切换方式包括无平滑过渡的视点切换和有平滑过渡的视点切换。

本发明实施例中CDN服务器模块的相关处理:

多视点视频播放时,接收终端播放请求,根据用户的请求信息播放对应的发布流的媒体。

多视点视频切换时,接收终端视点切换请求,根据切换视点的信息,获取当前视点和所请求新视点之间的发布流,根据发布流生成一个视点切换平滑过渡视频的流,用于平滑视点的切换,在视点切换过程中,则播放这个流。

具体地:

服务器收到play消息后,获取play消息中携带的当前视点信息和所请求新视点信息,以及视点切换方式;

如果视点切换方式为无平滑过渡的视点切换,则将所请求新视点的视频加入playlist,停止当前视点视频的播放,播放所请求新视点的视频;

如果视点切换方式为有平滑过渡的视点切换,则将视点切换平滑过渡视频与所请求新视点的视频加入playlist,停止当前视点视频的播放,顺序播放视点切换平滑过渡视频和所请求新视点的视频。

RTMP协议中协议扩展字段描述,相机阵列中每一个相机对应一个视点:

(1)终端和服务器进行交互时,RTMP协议有对应的请求和响应消息,通过对消息字段进行扩充携带相关的多视点的信息,利用RTMP协议的playlist功能进行多视点视频的播放;

终端和服务器通过connect的交互消息建立连接,在connect消息中的app字段携带频道号,例如live0000。

服务器通过result消息给终端返回结果,在result消息中的Information字段中携带多视点的描述信息,例如:ALL-CAM-NUM=9,CAM-ARR=2,XSTEP=25,YSTEP=25,XAXIS=50,YAXIS=50,DEFAULT=1。

其中:字段ALL-CAM-NUM表示相机总个数,CAM-ARR表示相机排列方式(0为单个相机,1为相机阵列一维排列,2为相机阵列二维排列),XSTEP/YSTEP表示相机横向/纵向排列间距步长,XAXIS/YAXIS表示视点横向/纵向位置(百分比),DEFAULT表示表示该视点是否为默认视点。

(2)终端根据获取的多视点信息,在play消息中的Stream Name字段携带视点信息给服务器,例如50_50_ori,表示坐标为50,50的视点。

视点切换时,在play消息中的Stream Name字段携带当前视点信息和所请求新视点信息以及是否播放视点切换平滑过渡视频的信息,例如0-25_0-0_ori?reset=1,表示从坐标0,0的视点切换到坐标25,0的视点,reset表示是否播放视点切换平滑过渡视频,1表示播放,0表示不播放。

服务器收到play消息后,抽取当前视点信息和所请求新视点信息,以及是否播放视点切换平滑过渡视频的信息,若不需播放视点切换平滑过渡视频,则直接将所请求的新视点的视频加入playlist;若需要播放视点切换平滑过渡视频,则生成视点切换平滑过渡视频,将视点切换平滑过渡视频与所请求新视点的视频加入playlist,停止当前视点视频的播放,顺序播放视点切换平滑过渡视频和所请求的新视点的视频。

图6描述了通过RTMP实现多视点视频播放的过程:

S301:终端和服务器正常握手和建链;

S302:终端发送命令消息中的connect命令到服务器端;

S303:服务器端接收到connect命令后,发送命令消息中的“结果”(result),通知多视点流的状态,利用自定义字段携带多视点信息,里面包含多视点的信息和当前视点的信息,比如视点的个数,控制步长,默认视点坐标(即默认视点信息);

S304:终端解析多视点的信息,获取多视点的播放信息;

S305:终端发送play消息,请求播放媒体,play消息的关键信息:Stream Name带上需要播放的视点信息;

S306:服务器收到播放请求,则将需要播放的视点的发布流加入到playlist中;

S307:服务器发送媒体数据。

图7描述了通过RTMP实现多视点视频视点切换的过程:

S401:终端和服务器建立连接,用户正常观看某个视点的视频;

S402:用户通过终端发起视点切换操作,终端解析用户的操作,根据前一阶段服务器返回的多视点信息,计算出用户本次操作的当前视点信息和所请求新视点信息;

S403:终端发送play请求到服务器,play消息中的Stream Name携带当前视点信息和所请求新视点信息,同时将reset字段置位1;

S404:服务器收到终端的请求,解析获取切换前后视点的坐标;

S405:服务器根据切换前后视点的坐标,生成视点切换的视点切换平滑过渡视频,并将其和所请求新视点的视频内容按顺序加入playlist中;

S406:服务器停止当前视点的播放,并根据playlist表单发送媒体,按playlist的条目逐步播放,实现视点的切换。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:三维视频的处理方法、装置、可读存储介质和电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类