CN115567661A - 视频数据的处理方法、系统、计算机设备和存储介质 - Google Patents

视频数据的处理方法、系统、计算机设备和存储介质 Download PDF

Info

Publication number
CN115567661A
CN115567661A CN202211161664.7A CN202211161664A CN115567661A CN 115567661 A CN115567661 A CN 115567661A CN 202211161664 A CN202211161664 A CN 202211161664A CN 115567661 A CN115567661 A CN 115567661A
Authority
CN
China
Prior art keywords
video
frame
spliced
frames
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.)
Pending
Application number
CN202211161664.7A
Other languages
English (en)
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.)
Shanghai Microport Medbot Group Co Ltd
Original Assignee
Shanghai Microport Medbot Group 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 Shanghai Microport Medbot Group Co Ltd filed Critical Shanghai Microport Medbot Group Co Ltd
Priority to CN202211161664.7A priority Critical patent/CN115567661A/zh
Publication of CN115567661A publication Critical patent/CN115567661A/zh
Priority to PCT/CN2023/120228 priority patent/WO2024061295A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • 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/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • 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/44016Processing 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 splicing one content stream with another content stream, e.g. for substituting a video clip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/181Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources

Landscapes

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

Abstract

本申请涉及一种视频数据的处理方法、系统、计算机设备和存储介质,所述方法包括:获取至少两个不同视频源的多路视频数据;将多路视频数据中的不同视频源在同一时刻的视频帧,拼接为一帧拼接视频帧,得到拼接视频数据,拼接视频数据包括拼接视频帧以及拼接视频帧的拼接信息;对拼接视频数据进行编码处理,得到多个编码帧;对多个编码帧进行封装处理,得到待传输的视频流,将视频流传输至目标解码端。不同视频源在同一时刻的视频帧拼接为一个拼接视频帧,使得不同视频源在同一时刻的视频帧能够在相同时间发送,实现不同视频源同一时间的视频帧发送时间的绝对一致,进而实现不同视频源同一时间的视频帧的同步传输。

Description

视频数据的处理方法、系统、计算机设备和存储介质
技术领域
本申请涉及图像数据远距离同步传输技术领域,特别是涉及一种视频数据的处理方法、系统、计算机设备和存储介质。
背景技术
目前,多通道视频源广泛应用在医疗、影视、导航等领域。多通道视频源的图像发送时通常面临多通道视频源的同步播放的问题。
目前对于多通道视频源的同步播放方式主要是缓存同步,通过提取数据流中的时间标记以及在视频帧加入关键帧信息以及时间戳等头信息进行同步控制。但该方式仍会造成多通道视频源的视频帧不同步,而对产品使用造成影响。以多通道视频源应用在医疗领域的医疗腹腔镜机器人为例,现有医疗腹腔镜机器人三维图像远程传输中,若多视频源不能做到同步,则会出现拖影现象,造成三维图像不清晰,且观看者甚至会出现晕眩的可能。
发明内容
基于此,有必要针对上述技术问题,提供一种能够实现不同视频源同一时间的视频帧的同步传输的视频数据的处理方法、系统、设备和存储介质。
第一方面,本申请提供了一种视频数据的处理方法,所述方法包括:
获取至少两个不同视频源的多路视频数据;
将多路视频数据中的不同视频源在同一时刻的视频帧,拼接为一帧拼接视频帧,得到拼接视频数据,拼接视频数据包括拼接视频帧以及拼接视频帧的拼接信息;
对拼接视频数据进行编码处理,得到多个编码帧;
对多个编码帧进行封装处理,得到待传输的视频流,将视频流传输至目标解码端。
在其中一个实施例中,在对多个编码帧进行封装处理的步骤前,所述方法还包括:
若编码帧为关键帧,则复制关键帧。
在其中一个实施例中,若编码帧为关键帧,则复制所述关键帧,包括:
若编码帧为关键帧,则至少复制一帧关键帧;
在各关键帧的数据包中标识关键帧信息,其中,相同关键帧的关键帧信息相同。
在其中一个实施例中,所述方法应用于解码端,包括:
接收编码端发送的视频流;
对视频流进行解封装处理,得到多个编码帧;
对编码帧进行解码处理,得到拼接视频数据;拼接视频数据包括拼接视频帧以及拼接视频帧的拼接信息;
根据各拼接视频帧的拼接信息,将各拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧;
对不同视频源在同一时刻的视频帧进行渲染后展示。
在其中一个实施例中,在对编码帧进行解码处理,得到拼接视频数据的步骤之前,所述方法还包括:
若编码帧为关键帧,且与已解码的关键帧重复,则丢弃编码帧。
在其中一个实施例中,在对编码帧进行解码处理,得到拼接视频数据的步骤之前,所述方法还包括:
若编码帧为关键帧,且不与已解码的关键帧重复,则执行对编码帧进行解码处理,得到拼接视频数据。
在其中一个实施例中,至少两个视频源为手术系统的至少两个视频源;
对不同视频源在同一时刻的视频帧进行渲染后展示,包括:
将手术系统的至少两个视频源在同一时刻的视频帧处理为三维图像;
渲染并展示三维图像。
在其中一个实施例中,接收编码端发送的视频流,包括:
接收至少一个编码端的广播消息,广播消息携带有编码端的IP地址;
若编码端的IP地址与解码端的IP地址匹配,则接收编码端发送的视频流。
在其中一个实施例中,所述方法还应用于中转服务器,包括:
获取编码端发送的视频流和编码端的设备编码;视频流包括对至少两个不同视频源在同一时刻的视频帧拼接得到的拼接视频帧;
为编码端的设备编码创建虚拟房间;
当接收到解码端的数据获取请求时,获取数据获取请求携带的目标设备编码;
若存在与目标设备编码对应的虚拟房间,则向解码端发送视频流,由解码端将拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧。
第二方面,本申请还提供了一种视频数据的处理系统,所述系统包括:
第一获取模块,用于获取至少两个不同视频源的多路视频数据;
帧拼接模块,用于将多路视频数据中的不同视频源在同一时刻的视频帧,拼接为一帧拼接视频帧,得到拼接视频数据,拼接视频数据包括拼接视频帧以及拼接视频帧的拼接信息;
编码模块,用于对拼接视频数据进行编码处理,得到多个编码帧;
封装模块,用于对多个编码帧进行封装处理,得到待传输的视频流,将视频流传输至目标解码端。
在其中一个实施例中,所述目标解码端包括:
接收模块,用于接收编码端发送的视频流;
解封装模块,用于对视频流进行解封装处理,得到多个编码帧;
解码模块,用于对编码帧进行解码处理,得到拼接视频数据;拼接视频数据包括拼接视频帧以及拼接视频帧的拼接信息;
帧拆分模块,用于根据各拼接视频帧的拼接信息,将各拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧;
渲染模块,用于对不同视频源在同一时刻的视频帧进行渲染后展示。
在其中一个实施例中,所述系统还包括中转服务器,其包括:
第二获取模块,用于获取编码端发送的视频流和编码端的设备编码;视频流包括对至少两个不同视频源在同一时刻的视频帧拼接得到的拼接视频帧;
创建模块,用于为编码端的设备编码创建虚拟房间。
接收模块,用于接收到解码端的数据获取请求,获取数据获取请求携带的目标设备编码;分发模块,用于在存在与所述目标设备编码对应的虚拟房间时,向所述解码端发送所述视频流,由所述解码端将所述拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
上述视频数据的处理方法、系统、计算机设备和存储介质,获取至少两个不同视频源的多路视频数据,根据不同视频源在同一时刻的视频帧拼接为一帧拼接视频帧,进行编码和封装后发送至目标解码端,由于不同视频源在同一时刻的视频帧拼接为一个拼接视频帧,使得不同视频源在同一时刻的视频帧能够在相同时间发送,实现不同视频源在同一时间的视频帧发送时间的绝对一致,进而实现不同视频源同一时间的视频帧的同步传输。
附图说明
图1为一个实施例中视频数据的处理方法的应用环境图;
图2为一个实施例中视频数据的处理方法的流程示意图;
图3为一个实施例中基于中转服务器、编码端和解码端构建的多路分发网络连接图;
图4为另一个实施例中不同视频源在同一时刻的视频帧拼接为一帧拼接视频帧的流程示意图;
图5为一个实施例中数据封装发送示意图;
图6为一个实施例中实现帧拼接和帧拆分的硬件组合系统的结构图;
图7为一个实施例中编码端的普通帧处理流程图;
图8为一个实施例中编码端的关键帧处理流程图;
图9为一个实施例中编码端的关键帧处理实施例;
图10为一个实施例中编码端的视频流发送流程图;
图11为一个实施例中解码端的视频流接收流程图;
图12为一个实施例中解码端的帧还原示意图;
图13为一个实施例中解码端的帧拆分功能原理图;
图14为一个实施例中解码端的视频流接收流程图;
图15为一个实施例中本地多路分发网络连接图;
图16为一个实施例中中转服务器的视频流转发流程图;
图17为一个实施例中中转服务器的中转流程图;
图18为一个实施例中编码端和解码端的配对设置流程图;
图19为一个实施例中中转服务器的分发原理图;
图20为一个实施例中编码端和解码端的通信流程图;
图21为一个实施例中视频数据的处理系统的结构框图;
图22为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的视频数据的处理方法,可以应用于如图1所示的应用环境中。其中,编码端102获取至少两个不同视频源的多路视频数据;将多路视频数据中的不同视频源在同一时刻的视频帧,拼接为一帧拼接视频帧,得到多个拼接视频数据,每个拼接视频数据包括拼接视频帧以及拼接视频帧的拼接信息;对拼接视频数据进行编码处理,得到多个编码帧;对多个编码帧进行封装处理,得到待传输的视频流,将视频流传输至中转服务器104或目标解码端。
解码端106接收编码端102发送的视频流,或接收中转服务器104转发的视频流,解码端106对视频流进行解封装处理,得到多个编码帧;对编码帧进行解码处理,得到拼接视频数据;拼接视频数据包括拼接视频帧以及拼接视频帧的拼接信息;根据各拼接视频帧的拼接信息,将各拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧;对不同视频源在同一时刻的视频帧进行渲染后展示。
当编码端102与解码端106部署在不同的局域网内,编码端102通过中转服务器104与解码端106建立连接;当编码端102与解码端106部署在同一局域网内,编码端102通过局域网直接与解码端106建立连接。数据存储系统可以存储中转服务器104需要处理的数据。数据存储系统可以集成在中转服务器104上,也可以放在云上或其他网络服务器上。其中,编码端102和解码端106可以是计算机设备的处理器,计算机设备不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为腹腔镜机器人等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。中转服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种视频数据的处理方法,以该方法应用于图1中的编码端102为例进行说明,包括以下步骤:
S202,获取至少两个不同视频源的多路视频数据。
其中,获取目标业务场景下至少两个不同视频源的多路视频数据。以目标业务场景为腹腔镜机器人为例,视频源可以是腹腔镜机器人的左眼视频源和右眼视频源,左眼视频源和右眼视频源均输出双路视频数据,每路视频数据均包括视频帧以及视频帧的时间戳。
该业务场景下的系统架构如图3所示,基于中转服务器、编码端和解码端构建多路分发网络连接图,设备B3、B6、B7和B9可以根据实际场景可切换为编码端或者解码端;B1和B4均为腹腔镜机器人;B2、B5、B8和B10均为本地监视器,以本地操作室A为例,本地操作室A的腹腔镜机器人B1通过光纤b1将双路内窥镜图像传输至编码端B3,编码端B3对双路视频数据进行帧合并编码压缩后通过高速网络b5发送至中转服务器或目标解码端,同时,编码端B3对双路内窥镜图像进行环出并通过光纤b2传输至本地监视器B2上。
S204,将多路视频数据中的不同视频源在同一时刻的视频帧,拼接为一帧拼接视频帧,得到拼接视频数据,拼接视频数据包括拼接视频帧以及拼接视频帧的拼接信息。
其中,为实现编码端的相同时刻的两个视频源的发送时间绝对一致,编码端将不同视频源在同一时刻的视频帧,拼接为一帧拼接视频帧,拼接后再进行编码和压缩处理,得到待传输的视频流,最后将待传输的视频流传输至目标解码端。其中,可以采用帧图像拼接算法或全局迭代就近法等算法将多路视频数据中的不同视频源在同一时刻的视频帧,拼接为一帧拼接视频帧,拼接方向是可以水平拼接,也可以是垂直拼接,在此不限定拼接算法和拼接方向。
本实施例的编码端对多路视频数据中的不同视频源在同一时刻的视频帧,拼接为一帧拼接视频帧,得到多个拼接视频数据。其中,拼接视频帧的拼接信息是用于标识拼接视频数据中拼接前每张视频帧的像素点的范围。例如,不同视频源在同一时刻的视频帧分别记为第一视频帧和第二视频帧,拼接视频帧的拼接信息标识第一视频帧的原始像素点坐标和范围,以及第二视频帧的原始像素点坐标和范围。
例如,如图4所述,腹腔镜机器人的左眼视频源的双路视频数据记为内窥镜图像-L,右眼视频源的双路视频数据记为内窥镜图像-R,内窥镜图像-L和内窥镜图像-R的分辨率均为1920*1080P,在视频帧拼接的过程中,将腹腔镜机器人的左眼视频源和右眼视频源相同时刻的视频帧拼接为一帧拼接视频帧,拼接视频帧的分辨率为3840*1080P,拼接方向水平,拼接视频帧的拼接信息标识水平方向第1个像素点至第1920个像素点,以及垂直方向1080个像素点的范围为左眼视频源的双路视频数据的像素点范围;水平方向第1921个像素点至第3840个像素点,以及垂直方向1080个像素点的范围为右眼视频源的双路视频数据的像素点范围。
具体地,编码端对多路视频数据中的不同视频源在同一时刻的视频帧,拼接为一帧拼接视频帧,为每帧拼接视频帧配置用于标识拼接视频帧的拼接信息,得到多个拼接视频数据。
S206,对拼接视频数据进行编码处理,得到多个编码帧。
其中,编码的基本原理是将视频数据按照一定规则使用某种形式的码流表示与传输。对拼接视频数据进行编码的最主要目的是数据压缩,以解决存储空间和传输带宽完全无法满足保存和传输的需求的问题。编码可以采用H.261、H.262、H.263或H.264编码,本实施例采用H.264编码。
S208,对多个编码帧进行封装处理,得到待传输的视频流,将视频流传输至目标解码端。
其中,封装的作用在于保护或者防止编码帧被破坏或修改。最常用的封装协议有PPP/HDLC、LAPS、GFP。本实施例采用UDP协议传输视频流,如图5所示,除了DUP报文头,还会在UDP数据部分加入4个字节的数据长度、2个字节的帧编号和H.264帧数据进行封装后发送。
具体地,编码端在每个编码帧的数据包中加入DUP报文头,在UDP数据部分加入4个字节的数据长度、2个字节的帧编号和H.264帧数据进行封装后发送至目标解码端。
上述视频数据的处理方法中,获取将至少两个不同视频源的多路视频数据,根据不同视频源在同一时刻的视频帧拼接为一帧拼接视频帧,进而进行解码和封装后发送至目标解码端,由于不同视频源在同一时刻的视频帧拼接为一个拼接视频帧,使得不同视频源在同一时刻的视频帧能够在相同时间发送,实现不同视频源同一时间的视频帧发送时间的绝对一致,进而实现不同视频源同一时间的视频帧的同步传输。
在一个实施例中,目前对于图像帧拼接的方法一般是采用矩阵拼接器进行帧拼接,但是性能优异的矩阵拼接器基本也有着30ms左右的图像延时,若编码端和解码端都使用矩阵拼接器对图像进行帧拼接和帧拆分,则图像延时就增加了60ms左右。也就是说采用矩阵拼接器也无法实现编码端的发送时间绝对一致。因此,为解决上述问题,本实施例的编码端采用硬件组合的系统实现帧拼接和帧拆分。硬件组合的系统结构如图6所示,包括HDMI解码端、HDMI编码端、CPU芯片和FPGA处理模块,腹腔镜机器人的左眼视频源和右眼视频源的双路视频数据分别经过两路HDMI解码端进行解码处理,解码后再经过FPGA处理模块进行硬件加速处理后,再经过两路HDMI编码端进行编码处理,得到无损拼接的拼接视频帧。
本实施例使用FPGA硬件系统对两个不同视频源的多路视频数据进行无损拼接,得到拼接视频数据,相比传统的图像拼接器延迟高的特征,本实施例采用使用FPGA硬件系统完成拼接的方法具有效率高和延迟低的特点。
在一个实施例中,三维图像数据在远程同步传输中容易出现的丢帧现象,若一路视频源出现丢帧,则影响整体的三维图像视觉效果。因此,为解决上述问题,编码端在对多个编码帧进行封装处理的步骤前,判断当前的编码帧是否为关键帧,若当前的编码帧为关键帧,则复制关键帧。
若当前的编码帧不是关键帧,则判定当前的编码帧为普通帧,在普通帧的数据包中标识普通帧信息。普通帧信息用于标识当前的编码帧为普通帧,普通帧信息可以是常量帧编号或者特定字符,例如常量帧编号可以是000000000。
如图7所示,编码端对普通帧进行封装处理,在封装处理过程中,采用UDP协议,在UDP数据部分加入4个字节的数据长度、2个字节的帧编号和H264帧数据进行封装后发送,其中普通帧的UDP数据部分中2个字节的帧编号为常量帧编号000000000。本实施例中,在普通帧的UDP数据部分加入2个字节常量帧编号的目的,在于解码端对普通帧进行解封装处理后,去掉UDP报文头和数据长度后得到2个字节常量帧编号,根据2个字节常量帧编号判断当前封装数据包的编码帧是否为普通帧。
其中,关键帧是指角色或者物体运动变化中关键动作所对应帧,记为I帧。普通帧包括前向预测帧和双向内插帧,前向预测帧记为P帧,双向内插帧记为B帧。I帧是一个完整的画面,而P帧和B帧记录的是相对于I帧的变化,如果没有I帧,P帧和B帧就无法解码。
本实施例,通过对关键帧进行复制,一方面,可以提高视频帧传输率,有效降低三维图像数据在远程传输过程中视频帧的丢帧率,避免关键帧丢失影响三维图像的视觉效果的问题,另一方面,相较于对所有视频帧进行复制的方案,本实施例仅对关键帧进行复制,可以有效降低网络传输所需的带宽资源。
在一个实施例中,如图8所示,若编码帧为关键帧,则复制所述关键帧,包括以下步骤:
S802,若编码帧为关键帧,则至少复制一帧关键帧。
其中,关键帧复制的数量越多,视频帧的丢帧率就越低,对应地,所需的网络带宽越大。因此,为了保证网络带宽与视频帧的丢帧率之间的平衡,如图9所示,本实施例中关键帧复制2帧或者3帧,从而保证网络带宽与视频帧的丢帧率之间的平衡。
本实施例以复制3帧关键帧为例,将网络丢包率记为X,则通过复制关键帧可实现视频源的丢包率可以从X降低到X3,若X=10%,则可将视频源的关键帧丢包率降低到0.1%,若X=5%,则可将视频源的关键帧丢包率降低到0.0125%。在保证网络状况良好的情况下X一般小于1%,显然,本实施例可以极大的降低视频源的关键帧丢包率。
具体地,编码端得到多个编码帧后,判断当前的编码帧是否为关键帧,若当前的编码帧为关键帧,则复制2帧或者3帧关键帧。
S804,在各关键帧的数据包中标识关键帧信息,其中,相同关键帧的关键帧信息相同。
其中,关键帧信息用于标识当前的编码帧为关键帧,关键帧信息可以是帧编号或者特定字符,例如关键帧信息可以是帧编号000000001。
对复制后的关键帧进行封装处理,得到待传输的视频流,将视频流传输至目标解码端。目标解码端对视频流进行解封装处理,得到编码帧,解码端对编码帧进行解码处理,但是由于关键帧复制了2帧或者3帧,因此在解码过程中,需要对相同的关键帧进行多次解码,降低了解码端的解码效率,增大了解码端播放的视频与编码端的视频源之间的帧数差,导致解码端播放的视频效果低于编码端的视频质量。因此,为解决上述问题,如图9所示,本实施例的编码端在各关键帧的数据包中标识关键帧信息,其中,相同关键帧的关键帧信息相同。解码端根据关键帧信息判断当前的编码帧是否为关键帧,编码端在关键帧的数据包中标识关键帧信息,便于解码端识别当前的编码帧是否为关键帧,提高编码端的关键帧识别效率;编码端设置相同关键帧的关键帧信息相同,便于解码端根据关键帧信息判断当前的编码帧是否已解码,若当前的关键帧的关键帧信息与已解码的关键帧重复,则丢弃编码帧。
具体地,编码端复制2帧或者3帧关键帧后,将复制的关键帧一起进行封装处理,在封装处理过程中,在每个复制的关键帧的数据包中加入相同的关键帧信息,并按照UDP协议进行数据封装和发送。
本实施例中,通过在编码端复制2帧或者3帧关键帧,从而保证网络带宽与视频帧的丢帧率之间的平衡;在各关键帧的数据包中标识关键帧信息,便于解码端识别当前的编码帧是否为关键帧,提高编码端的关键帧识别效率;编码端设置相同关键帧的关键帧信息相同,便于解码端根据关键帧信息判断当前的编码帧是否已解码,若当前的关键帧的关键帧信息与已解码的关键帧重复,则丢弃编码帧,采用帧丢弃的方法,一方面,可以降低远程播放的视频与源视频之间的帧数差;另一方面,可以过滤多余的复制关键帧,以实现播放效果最大程度接近或等同于源视频的质量。
在一个实施例中,如图10所示,提供了一种视频数据的处理方法,以该方法应用于图1中的编码端102为例进行说明,包括以下步骤:
S1002,获取至少两个不同视频源的多路视频数据。
S1004,将多路视频数据中的不同视频源在同一时刻的视频帧,拼接为一帧拼接视频帧,得到拼接视频数据,拼接视频数据包括拼接视频帧以及拼接视频帧的拼接信息。
S1006,对拼接视频数据进行编码处理,得到多个编码帧。
S1008,判断当前的编码帧是否为关键帧,若当前的编码帧不是关键帧,则执行S1010;若当前的编码帧是关键帧,则执行S1012。
S1010,判定当前的编码帧为普通帧,在普通帧的数据包中标识普通帧信息,执行S1016。
S1012,至少复制一帧关键帧。
S1014,在各关键帧的数据包中标识关键帧信息,其中,相同关键帧的关键帧信息相同。
S1016,对编码帧进行封装处理,得到待传输的视频流,将视频流传输至目标解码端。
S1018,判断多路视频数据是否全部封装,若多路视频数据全部封装,则结束流程;若多路视频数据没有全部封装,则执行S1002。
本实施例中,不同视频源在同一时刻的视频帧拼接为一个拼接视频帧,使得不同视频源在同一时刻的视频帧能够在相同时间发送,实现不同视频源同一时刻的视频帧发送时间的绝对一致,进而实现不同视频源同一时间的视频帧的同步传输;通过对关键帧进行复制,一方面,可以提高视频帧传输率,有效降低三维图像数据在远程传输过程中视频帧的丢帧率,避免关键帧丢失影响三维图像的视觉效果的问题,另一方面,相较于对所有视频帧进行复制的方案,本实施例仅对关键帧进行复制,可以有效降低网络传输所需的带宽资源。
在一个实施例中,如图11所示,提供了一种视频数据的处理方法,以该方法应用于图1中的解码端106为例进行说明,包括以下步骤:
S1102,接收编码端发送的视频流。
其中,当编码端与解码端部署在不同的局域网内,解码端通过中转服务器获取编码端发送的视频流;当编码端与解码端部署在同一局域网内,解码端通过局域网直接获取编码端发送的视频流。
S1104,对视频流进行解封装处理,得到多个编码帧。
其中,解封装是封装的逆过程,主要实现数据从比特流还原为数据的过程。本实施例中,封装的协议采用UDP协议,对应的解封装的过程如图12所示,首先去掉UDP报文头,得到如图12a所示的数据结构,再去掉数据长度,得到如图12b的数据结构,最后去掉帧标号,得到如图12c的数据结构,经上述解封装处理后,得到解码端对应的编码帧。
具体地,如图12所示,解码端接收到编码端发送的视频流后,去掉UDP报文头,再去掉数据长度,最后去掉帧标号,得到解码端对应的编码帧,判断编码端发送的视频流是否全部解封装,若视频流全部解封装,则结束解封装的操作;若视频流还未完全解封装,则重复解封装的过程。
S1106,对编码帧进行解码处理,得到拼接视频数据;拼接视频数据包括拼接视频帧以及拼接视频帧的拼接信息。
其中,解码是将编码帧还原为拼接视频数据,与编码过程相对应。解码算法可以采用快速傅里叶变换算法、离散傅里叶变换算法、频域滤波算法,在此不限定解码的算法。由于编码是将拼接视频数据处理为编码帧,因此,对应的,解码是将编码帧还原为拼接视频数据。
S1108,根据各拼接视频帧的拼接信息,将各拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧。
其中,由上述实施例可知拼接视频帧的拼接信息用于标识拼接视频数据中属于拼接前每张视频帧的像素点的范围。因此,在帧拆分的过程中,按照拼接信息标识的视频帧的像素点的范围将拼接视频帧拆分为原始的两个相同时刻的视频帧。可以采用帧间差分法将各拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧。
例如,如图13所示,以视频源为内窥镜的视频源为例,编码端的拼接视频帧为分辨率为3840*1920P的图像数据,解码端获取到包括3840*1920P的图像数据的视频流后,解码端对视频流进行解封装和解码处理后,得到拼接视频数据,根据拼接视频帧的拼接信息,将分辨率为3840*1920P的图像数据按照水平方向第1个像素点至第1920个像素点,以及垂直方向1080个像素点的范围拆分,得到1920*1080P的左眼视频源的双路视频数据,按照水平方向第1921个像素点至第3840个像素点,以及垂直方向1080个像素点的范围拆分,得到1920*1080P的右眼视频源的双路视频数据,并将两张1920*1080P的双路视频数据输出至本地监视器中。
S1110,对不同视频源在同一时刻的视频帧进行渲染后展示。
其中,视频源的多路视频数据中的不同视频源在同一时刻的视频帧为二维图像,拼接后的拼接视频帧也是二维图像,在解码端通过解封装、解码和帧拆分后,获得了不同视频源在同一时刻的视频帧,为了展示三维效果,在解码端对不同视频源在同一时刻的视频帧处理为三维图像并进行渲染处理,得到同一时刻的三维图像。
本实施例中,通过接收编码端发送的视频流,对视频流进行解封装和解码后,由于在编码端将不同视频源在同一时刻的视频帧拼接为一个拼接视频帧,因此,解码端对视频流进行解封装和解码后,得到拼接视频数据,利用帧拆分技术将各拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧,使得不同视频源在同一时刻的视频帧能够在相同时间被解码端接收,实现不同视频源同一时间的视频帧接收时间的绝对一致,进而实现不同视频源同一时间的视频帧的同步传输。
可以理解的是,对于不用的目标业务场景,对不同视频源在同一时刻的视频帧进行渲染的方式不同,以应用于腹腔镜机器人为例,两个视频源分别为腹腔镜机器人的左眼视频源和右眼视频源为例,左眼视频源和右眼视频源均输出双路视频数据,对不同视频源在同一时刻的视频帧进行渲染后展示的步骤包括以下步骤:
S1,将腹腔镜机器人的至少两个视频源在同一时刻的视频帧处理为三维图像。
其中,左眼视频源和右眼视频源输出的双路视频数据为二维图像数据,左眼视频源和右眼视频源输出的双路视频数据经过拼接后也是二维图像,为了展示三维效果,在编码端将腹腔镜机器人的至少两个视频源在同一时刻的视频帧处理为三维图像。可以采用3D结构生成器将至少两个视频源在同一时刻的视频帧处理为三维图像。
S2,渲染并展示三维图像。
其中,渲染的目的是使三维图像符合3D场景。
本实施例中,通过将腹腔镜机器人的至少两个视频源在同一时刻的视频帧处理为三维图像,渲染并展示三维图像,可以保证解码端对拼接视频帧进行解封装、解码和帧拆分处理后,可以恢复出原始的三维图像,保证三维图像的无损同步传输和展示。
在一个实施例中,如图14所示,提供一种视频数据控制方法,应用在解码端,由于在编码端复制了2帧或者3帧关键帧,因此解码端在解码过程中,需要对相同的关键帧进行多次解码,降低了解码端的解码效率,增大了解码端播放的视频与编码端的视频源之间的帧数差,导致解码端播放的视频效果低于编码端的视频质量。因此,为了解决上述问题,具体包括以下步骤:
S1402,接收编码端发送的视频流。
S1404,对视频流进行解封装处理,得到多个编码帧。
S1406,根据编码帧的关键帧信息判断当前的编码帧是否是关键帧,若当前的编码帧不是关键帧,则执行S1412;若当前的编码帧是关键帧,则执行S1408。
S1408,判断当前的编码帧的关键帧信息是否与已解码的关键帧重复;若编码帧为关键帧,且与已解码的关键帧重复,则执行S1410;若编码帧为关键帧,且不与已解码的关键帧重复,则执行S1412。
S1410,丢弃关键帧,执行S1418。
S1412,对编码帧进行解码处理,得到拼接视频数据,拼接视频数据包括拼接视频帧以及拼接视频帧的拼接信息。
S1414,根据各拼接视频帧的拼接信息,将各拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧;
S1416,对不同视频源在同一时刻的视频帧进行渲染后展示。
S1418,判断视频流的编码帧是否全部解码,若视频流的编码帧全部解码,则结束流程;若视频流的编码帧未完全解码,则执行S1402。
本实施例中,在解码端根据关键帧信息判断当前的编码帧是否是关键帧,以及根据关键帧信息判断当前的编码帧的关键帧信息是否与已解码的关键帧重复,若编码帧为关键帧,且与已解码的关键帧重复,则丢弃编码帧,可提高解码端的解码效率;采用帧丢弃的方法,一方面,可以降低远程播放的视频与源视频之间的帧数差;另一方面,可以过滤多余的复制关键帧,以实现播放效果最大程度接近或等同于源视频的质量。
对于传输方式,可以采用中转服务器的方式,由中转服务器进行转发,也可以采用编码端和解码端直连的方式。
在一个实施例中,编码端与解码端存在无法联网的情况,在这种情况下,可以构建局域网使编码端和解码端直连,此时,接收编码端发送的视频流的步骤包括以下步骤:
S1,接收至少一个编码端的广播消息,广播消息携带有编码端的IP地址。
具体地,如图15所示,本地操作室内的编码端和解码端部署在同一个本地局域网,设备C3、C4和C6可以根据实际场景可切换为编码端或者解码端;C1为腹腔镜机器人;C2、C5和C7均为本地监视器。腹腔镜机器人C1通过光纤c1将双路内窥镜图像传输至编码端C3,编码端C3对双路视频数据进行帧合并编码压缩后通过高速网络c3发送至目标解码端,同时,编码端C3对双路内窥镜图像进行环出并通过光纤c2传输至本地监视器C2上。
具体地,编码端将拼接视频数据进行编码和封装后,通过广播发送的方式将编码端的IP地址发送给同一局域网的多个编码端,解码端接收编码端的广播消息,根据广播消息里的编码端的IP地址确定是否可以接收该IP地址对应的编码端发送的广播消息。
S2,若编码端的IP地址与解码端的IP地址匹配,则接收编码端发送的视频流。
具体地,在解码端上设置配对的编码端的IP地址,解码端接收到编码端发送的广播消息后,将编码端的IP地址与解码端的IP地址进行比对,若解码端上设置的编码端的IP地址与接收的编码端的IP地址相同,则认为编码端与解码端在同一个局域网,此时,解码端向编码端发送应答响应,编码端接收到应答响应后,将视频流发送给匹配的解码端,解码端接收编码端发送的视频流;若解码端上设置的编码端的IP地址与接收的编码端的IP地址不相同,则认为编码端与解码端不在同一个局域网,此时,解码端不响应编码端的广播消息。
本实施例中,将编码端和解码端设置在同一局域网,编码端发送广播消息,广播消息携带有编码端的IP地址,若编码端的IP地址与解码端的IP地址匹配,则解码端接收编码端发送的视频流,采用上述方式可以在编码端或解码端无法联网时将编码端的视频流传输给解码端。
在其中一个实施例中,提供了一种视频数据控制方法,应用于中转服务器,如图16所示,所述方法包括:
S1602,获取编码端发送的视频流和编码端的设备编码,视频流包括对至少两个不同视频源在同一时刻的视频帧拼接得到的拼接视频帧。
其中,如图3所示,基于中转服务器、编码端和解码端构建的多路分发网络连接图,设备B3、B6、B7和B9可以根据实际场景可切换为编码端或者解码端,设备B3通过b5网络连接至中转服务器,设备B6通过b10网络连接至中转服务器,设备B7通过b6网络连接至中转服务器,设备B9通过b7网络连接至中转服务器,进行数据推送或数据拉取。
其中,视频流为编码端将多路视频数据中不同视频源在同一时刻的视频帧,拼接为一帧拼接视频帧,对拼接视频数据进行编码和封装处理得到的视频流。
具体地,如图17所示,中转服务器实时监听编码端及解码端的端口,当监听到编码端上线后,中转服务器接收编码端发送的视频流和编码端的设备编码。
S1604,为编码端的设备编码创建虚拟房间。
其中,创建虚拟房间的目的在于保证解码端之间不会错误接收到非对应编码端发送的视频流,中转服务器根据每个编码端的设备编码创建一个虚拟房间。虚拟房间可以是中转服务器的存储单元。
S1606,当接收到解码端的数据获取请求时,获取数据获取请求携带的目标设备编码。
其中,如图17所示,当中转服务器监听到编码端和解码端均上线后,中转服务器接收编码端发送的视频流和编码端的设备编码,并根据数据获取请求将视频流转发给解码端。
具体地,当中转服务器监听到编码端和解码端均上线后,中转服务器接收编码端发送的视频流和编码端的设备编码,并接收解码端的数据获取请求,获取数据获取请求携带的目标设备编码。
S1608,若存在与目标设备编码对应的虚拟房间,则向解码端发送视频流,由解码端将拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧。
其中,编码端与解码端之间存在配对关系,一个编码端可以对应多个解码端。如图18所示,为编码端和解码端的配对设置流程图,编码端和解码端与中转服务器建立连接后,中转服务器分别采集编码端和解码端的上线信息,并对编码端和解码端进行配对设置,设置一个编码端对应多个解码端的一对多关系,按照一对多关系进行绑定,一次绑定后,后续无需再次绑定,编码端和解码端上线后,可自动完成配对。
具体地,如图19所示,当一个或多个解码端想要获取匹配的编码端发送的视频流时,解码端向中转服务器发送数据获取请求,中转服务器获取数据获取请求携带的目标设备编码,将目标设备编码与创建的虚拟房间进行匹配,若存在与目标设备编码对应的虚拟房间,则向解码端发送该虚拟房间对应的视频流,由解码端将拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧。
本实施例中,中转服务器获取编码端发送的视频流和编码端的设备编码,获取解码端的数据获取请求中携带的目标设备编码,将目标设备编码与编码端的设备编码进行匹配,若存在与目标设备编码匹配的编码端的设备编码,则向解码端发送视频流。相比传统的编码端将视频流分别发送给解码端的方式,编码端的视频流只需发送一次,多个解码端到中转服务器进行数据拉取的方式,可以有效降低带宽。
在其中一个实施例中,提供了一种视频数据控制方法,如图20所示,具体包括以下步骤:
S2002,中转服务器监听编码端及解码端的端口。
S2004,编码端将多路视频数据中的不同视频源在同一时刻的视频帧,拼接为一帧拼接视频帧,得到拼接视频数据,拼接视频数据包括拼接视频帧以及拼接视频帧的拼接信息。
S2006,编码端对拼接视频数据进行编码处理,得到多个编码帧。
S2008,判断当前的编码帧是否为关键帧,若当前的编码帧不是关键帧,则执行S2010;若当前的编码帧是关键帧,则执行S2012。
S2010,判定当前的编码帧为普通帧,在普通帧的数据包中标识普通帧信息,执行S2014。
S2012,至少复制一帧关键帧。
S2014,编码端在各关键帧的数据包中标识关键帧信息,其中,相同关键帧的关键帧信息相同。
S2016,编码端对编码帧进行封装处理,得到待传输的视频流。
S2018,中转服务器接收编码端发送的视频流和编码端的设备编码。
S2020,中转服务器为编码端的设备编码创建虚拟房间。
S2022,编码端向中转服务器发送数据获取请求,数据获取请求携带有目标设备编码。
S2024中转服务器接收解码端的数据获取请求,获取数据获取请求携带的目标设备编码。
S2026,中转服务器将目标设备编码与创建的虚拟房间进行匹配,若存在与目标设备编码对应的虚拟房间,则向解码端发送该虚拟房间对应的视频流;若不存在与目标设备编码对应的虚拟房间,则不响应数据获取请求。
S2028,解码端接收中转服务器发送的视频流。
S2030,解码端对视频流进行解封装处理,得到多个编码帧。
S2032,解码端根据编码帧的关键帧信息判断当前的编码帧是否是关键帧,若当前的编码帧不是关键帧,则执行S2038;若当前的编码帧是关键帧,则执行S2034。
S2034,解码端判断当前的编码帧的关键帧信息是否与已解码的关键帧重复;若编码帧为关键帧,且与已解码的关键帧重复,则执行S2036;若编码帧为关键帧,且不与已解码的关键帧重复,则执行S2038。
S2036,解码端丢弃关键帧,执行S2038。
S2038,解码端对编码帧进行解码处理,得到拼接视频数据,拼接视频数据包括拼接视频帧以及拼接视频帧的拼接信息。
S2040,解码端根据各拼接视频帧的拼接信息,将各拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧;
S2042,解码端对不同视频源在同一时刻的视频帧进行渲染后展示。
本实施例,获取编码端发送的视频流和编码端的设备编码,获取解码端的数据获取请求中携带的目标设备编码,将目标设备编码与编码端的设备编码进行匹配,若存在与目标设备编码匹配的编码端的设备编码,则向解码端发送视频流。相比传统的编码端将视频流分别发送给解码端的方式,编码端的视频流只需发送一次,多个解码端到中转服务器进行数据拉取的方式,可以有效降低带宽;为每个编码端的设备编码创建虚拟房间,可以保证解码端之间不会错误接收到非对应编码端发送的视频流;将编码端和解码端设置在同一局域网,编码端发送广播消息,广播消息携带有编码端的IP地址,若编码端的IP地址与解码端的IP地址匹配,则解码端接收编码端发送的视频流,采用上述方式可以在编码端或解码端无法联网时将编码端的视频流传输给解码端。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的视频数据的处理方法的视频数据的处理系统。该系统所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个视频数据的处理系统实施例中的具体限定可以参见上文中对于视频数据的处理方法的限定,在此不再赘述。
在一个实施例中,如图21所示,提供了一种视频数据的处理系统,应用于编码端,包括:
第一获取模块111,用于获取至少两个不同视频源的多路视频数据。
帧拼接模块112,用于将多路视频数据中的不同视频源在同一时刻的视频帧,拼接为一帧拼接视频帧,得到拼接视频数据,拼接视频数据包括拼接视频帧以及拼接视频帧的拼接信息。
编码模块113,用于对拼接视频数据进行编码处理,得到多个编码帧。
封装模块114,用于对多个编码帧进行封装处理,得到待传输的视频流,将视频流传输至目标解码端。
在一个实施例中,如图21所示,目标解码端包括:
接收模块115,用于接收编码端发送的视频流;
解封装模块116,用于对视频流进行解封装处理,得到多个编码帧;
解码模块117,用于对编码帧进行解码处理,得到拼接视频数据;拼接视频数据包括拼接视频帧以及拼接视频帧的拼接信息;
帧拆分模块118,用于根据各拼接视频帧的拼接信息,将各拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧;
渲染模块119,用于对不同视频源在同一时刻的视频帧进行渲染后展示。
在一个实施例中,如图21所示,提供了一种视频数据的处理系统,所述系统还包括中转服务器,其包括:
第二获取模块120,用于获取编码端发送的视频流和编码端的设备编码;视频流包括对至少两个不同视频源在同一时刻的视频帧拼接得到的拼接视频帧。
创建模块121,用于为编码端的设备编码创建虚拟房间。
接收模块122,用于接收到解码端的数据获取请求,获取数据获取请求携带的目标设备编码。
分发模块123,用于在存在与所述目标设备编码对应的虚拟房间时,向解码端发送视频流,由解码端将拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧。
上述视频数据的处理系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是腹腔机器人,其内部结构图可以如图22所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种视频数据的处理方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图22中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (14)

1.一种视频数据的处理方法,其特征在于,所述方法包括:
获取至少两个不同视频源的多路视频数据;
将所述多路视频数据中不同视频源在同一时刻的视频帧,拼接为一帧拼接视频帧,得到拼接视频数据,所述拼接视频数据包括拼接视频帧以及所述拼接视频帧的拼接信息;
对所述拼接视频数据进行编码处理,得到多个编码帧;
对所述多个编码帧进行封装处理,得到待传输的视频流,将所述视频流传输至目标解码端。
2.根据权利要求1所述的方法,其特征在于,在所述对所述多个编码帧进行封装处理的步骤前,所述方法还包括:
若所述编码帧为关键帧,则复制所述关键帧。
3.根据权利要求2所述的方法,其特征在于,若所述编码帧为关键帧,则复制所述关键帧,包括:
若所述编码帧为关键帧,则至少复制一帧所述关键帧;
在各所述关键帧的数据包中标识关键帧信息,其中,相同关键帧的所述关键帧信息相同。
4.根据权利要求1所述的方法,其特征在于,所述方法还应用于解码端,包括:
接收编码端发送的视频流;
对所述视频流进行解封装处理,得到多个编码帧;
对所述编码帧进行解码处理,得到拼接视频数据;所述拼接视频数据包括拼接视频帧以及所述拼接视频帧的拼接信息;
根据各所述拼接视频帧的拼接信息,将各所述拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧;
对所述不同视频源在同一时刻的视频帧进行渲染后展示。
5.根据权利要求4所述的方法,在所述对所述编码帧进行解码处理,得到拼接视频数据的步骤之前,所述方法还包括:
若所述编码帧为关键帧,且与已解码的关键帧重复,则丢弃所述编码帧。
6.根据权利要求4所述的方法,其特征在于,在所述对所述编码帧进行解码,得到拼接视频数据的步骤之前,所述方法还包括:
若所述编码帧为关键帧,且不与已解码的关键帧重复,则执行所述对所述编码帧进行解码处理,得到拼接视频数据。
7.根据权利要求4所述的方法,其特征在于,所述至少两个视频源为手术系统的至少两个视频源;
所述对所述不同视频源在同一时刻的视频帧进行渲染后展示,包括:
将所述手术系统的至少两个视频源在同一时刻的视频帧处理为三维图像;
渲染并展示所述三维图像。
8.根据权利要求4所述的方法,其特征在于,所述接收编码端发送的视频流,包括:
接收至少一个编码端的广播消息,所述广播消息携带有所述编码端的IP地址;
若所述编码端的IP地址与解码端的IP地址匹配,则接收所述编码端发送的视频流。
9.根据权利要求1所述的方法,其特征在于,所述方法还应用于中转服务器,包括:
获取编码端发送的视频流和所述编码端的设备编码;所述视频流包括对至少两个不同视频源在同一时刻的视频帧拼接得到的拼接视频帧;
为所述编码端的设备编码创建虚拟房间;
当接收到解码端的数据获取请求时,获取所述数据获取请求携带的目标设备编码;
若存在与所述目标设备编码对应的虚拟房间,则向所述解码端发送所述视频流,由所述解码端将所述拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧。
10.一种视频数据的处理系统,其特征在于,所述系统包括:
第一获取模块,用于获取至少两个不同视频源的多路视频数据;
帧拼接模块,用于将所述多路视频数据中的不同视频源在同一时刻的视频帧,拼接为一帧拼接视频帧,得到拼接视频数据,所述拼接视频数据包括拼接视频帧以及所述拼接视频帧的拼接信息;
编码模块,用于对所述拼接视频数据进行编码处理,得到多个编码帧;
封装模块,用于对所述多个编码帧进行封装处理,得到待传输的视频流,将所述视频流传输至目标解码端。
11.根据权利要求10所述的系统,其特征在于,所述目标解码端包括:
接收模块,用于接收编码端发送的视频流;
解封装模块,用于对所述视频流进行解封装处理,得到多个编码帧;
解码模块,用于对所述编码帧进行解码处理,得到拼接视频数据;所述拼接视频数据包括拼接视频帧以及所述拼接视频帧的拼接信息;
帧拆分模块,用于根据各所述拼接视频帧的拼接信息,将各所述拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧;
渲染模块,用于对所述不同视频源在同一时刻的视频帧进行渲染后展示。
12.根据权利要求10所述的系统,其特征在于,所述系统还包括中转服务器,其包括:
第二获取模块,用于获取编码端发送的视频流和所述编码端的设备编码;所述视频流包括对至少两个不同视频源在同一时刻的视频帧拼接得到的拼接视频帧;
创建模块,用于为所述编码端的设备编码创建虚拟房间;
接收模块,用于接收到解码端的数据获取请求,获取所述数据获取请求携带的目标设备编码;
分发模块,用于在存在与所述目标设备编码对应的虚拟房间时,向所述解码端发送所述视频流,由所述解码端将所述拼接视频帧拆分得到至少两个不同视频源在同一时刻的视频帧。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
CN202211161664.7A 2022-09-23 2022-09-23 视频数据的处理方法、系统、计算机设备和存储介质 Pending CN115567661A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211161664.7A CN115567661A (zh) 2022-09-23 2022-09-23 视频数据的处理方法、系统、计算机设备和存储介质
PCT/CN2023/120228 WO2024061295A1 (zh) 2022-09-23 2023-09-21 视频数据的处理方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211161664.7A CN115567661A (zh) 2022-09-23 2022-09-23 视频数据的处理方法、系统、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN115567661A true CN115567661A (zh) 2023-01-03

Family

ID=84741679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211161664.7A Pending CN115567661A (zh) 2022-09-23 2022-09-23 视频数据的处理方法、系统、计算机设备和存储介质

Country Status (2)

Country Link
CN (1) CN115567661A (zh)
WO (1) WO2024061295A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116916172A (zh) * 2023-09-11 2023-10-20 腾讯科技(深圳)有限公司 一种远程控制方法和相关装置
CN117119223A (zh) * 2023-10-23 2023-11-24 天津华来科技股份有限公司 基于多通道传输的视频流播放控制方法及系统
CN117596373A (zh) * 2024-01-17 2024-02-23 淘宝(中国)软件有限公司 基于动态数字人形象进行信息展示的方法及电子设备
WO2024061295A1 (zh) * 2022-09-23 2024-03-28 上海微创医疗机器人(集团)股份有限公司 视频数据的处理方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101409831A (zh) * 2008-07-10 2009-04-15 浙江师范大学 一种多媒体视频对象处理方法
US20170208220A1 (en) * 2016-01-14 2017-07-20 Disney Enterprises, Inc. Automatically synchronizing multiple real-time video sources
CN109963185A (zh) * 2017-12-26 2019-07-02 杭州海康威视数字技术股份有限公司 视频数据发送方法、视频显示方法、装置、系统及设备
CN110401820A (zh) * 2019-08-15 2019-11-01 北京迈格威科技有限公司 多路视频处理方法、装置、介质及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115567661A (zh) * 2022-09-23 2023-01-03 上海微创医疗机器人(集团)股份有限公司 视频数据的处理方法、系统、计算机设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101409831A (zh) * 2008-07-10 2009-04-15 浙江师范大学 一种多媒体视频对象处理方法
US20170208220A1 (en) * 2016-01-14 2017-07-20 Disney Enterprises, Inc. Automatically synchronizing multiple real-time video sources
CN109963185A (zh) * 2017-12-26 2019-07-02 杭州海康威视数字技术股份有限公司 视频数据发送方法、视频显示方法、装置、系统及设备
CN110401820A (zh) * 2019-08-15 2019-11-01 北京迈格威科技有限公司 多路视频处理方法、装置、介质及电子设备

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024061295A1 (zh) * 2022-09-23 2024-03-28 上海微创医疗机器人(集团)股份有限公司 视频数据的处理方法和系统
CN116916172A (zh) * 2023-09-11 2023-10-20 腾讯科技(深圳)有限公司 一种远程控制方法和相关装置
CN116916172B (zh) * 2023-09-11 2024-01-09 腾讯科技(深圳)有限公司 一种远程控制方法和相关装置
CN117119223A (zh) * 2023-10-23 2023-11-24 天津华来科技股份有限公司 基于多通道传输的视频流播放控制方法及系统
CN117119223B (zh) * 2023-10-23 2023-12-26 天津华来科技股份有限公司 基于多通道传输的视频流播放控制方法及系统
CN117596373A (zh) * 2024-01-17 2024-02-23 淘宝(中国)软件有限公司 基于动态数字人形象进行信息展示的方法及电子设备
CN117596373B (zh) * 2024-01-17 2024-04-12 淘宝(中国)软件有限公司 基于动态数字人形象进行信息展示的方法及电子设备

Also Published As

Publication number Publication date
WO2024061295A1 (zh) 2024-03-28

Similar Documents

Publication Publication Date Title
CN115567661A (zh) 视频数据的处理方法、系统、计算机设备和存储介质
CN109040786B (zh) 摄像头数据的传输方法、装置、系统及存储介质
WO2018068236A1 (zh) 一种视频流传输方法、相关设备及系统
KR20050014893A (ko) 화상데이터 전송시스템, 그의 화상데이터 송신장치, 및그의 화상데이터 수신장치
CN103369289A (zh) 一种视频模拟形象的通信方法和装置
JP2001245268A (ja) コンテンツ伝送システム及びコンテンツ処理装置
CN113891117B (zh) 沉浸媒体的数据处理方法、装置、设备及可读存储介质
KR100576544B1 (ko) 엠펙-4 객체기술자 정보 및 구조를 이용한 3차원 동영상처리 장치 및 그 방법
CN104243920A (zh) 一种基于基本流视频数据封装的图像拼接方法及装置
CN104253804B (zh) 一种传输图像数据的方法及装置
CN115103175B (zh) 图像传输方法、装置、设备及介质
KR101707663B1 (ko) Cctv 카메라를 이용한 영상 이미지 퍼즐 보안 전송 시스템 및 그 제어방법
CN110572673A (zh) 视频编解码方法和装置、存储介质及电子装置
CN114116617A (zh) 点云媒体的数据处理方法、装置、设备及可读存储介质
US20230025664A1 (en) Data processing method and apparatus for immersive media, and computer-readable storage medium
CN112565799B (zh) 视频数据处理方法和装置
CN114339282A (zh) 直播互动中主播形象图片的传输方法及装置
WO2020135527A1 (zh) 多媒体数据处理
CN115695441B (zh) 基于p2p技术的三维人体虚拟社交系统及方法
US11758108B2 (en) Image transmission method, image display device, image processing device, image transmission system, and image transmission system with high-transmission efficiency
WO2022190398A1 (ja) 3dオブジェクトのストリーミング方法、装置、及びプログラム
US20230403411A1 (en) File decapsulation method and apparatus for free viewpoint video, device, and storage medium
WO2023024841A1 (zh) 点云媒体文件的封装与解封装方法、装置及存储介质
CN110830760B (zh) 一种安全网络数据交互系统及方法
CN115695858A (zh) 基于sei加密的虚拟制片视频母片编解码系统、方法及平台

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