CN116896655A - 一种用于云桌面的视频重定向方法、系统及介质 - Google Patents
一种用于云桌面的视频重定向方法、系统及介质 Download PDFInfo
- Publication number
- CN116896655A CN116896655A CN202311135446.0A CN202311135446A CN116896655A CN 116896655 A CN116896655 A CN 116896655A CN 202311135446 A CN202311135446 A CN 202311135446A CN 116896655 A CN116896655 A CN 116896655A
- Authority
- CN
- China
- Prior art keywords
- video
- display area
- cloud desktop
- coordinates
- frame data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000004590 computer program Methods 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 11
- 238000012216 screening Methods 0.000 claims description 6
- 230000006399 behavior Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 10
- 238000009826 distribution Methods 0.000 description 8
- 238000005457 optimization Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
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 or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/08—Protocols specially adapted for terminal emulation, e.g. Telnet
-
- 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 or manipulating encoded video stream scene graphs
- H04N21/23406—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
-
- 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 or manipulating encoded video stream scene graphs
- H04N21/23418—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
-
- 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/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- 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/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4318—Generation of visual interfaces for content selection or interaction; Content or additional data rendering by altering the content in the rendering process, e.g. blanking, blurring or masking an image region
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开了一种用于云桌面的视频重定向方法、系统及介质,本发明包括云桌面服务端在用户使用播放器或浏览器播放视频调用解码库解码视频帧数据时,截获解码前的视频帧数据并通过网络发送到云桌面客户端,并生成定位图像作为解码后的替代视频画面返回给播放器或浏览器显示输出;桌面客户端接收视频帧数据,基于云桌面中的定位图像确定视频显示区域,并通过视频显示区域显示视频帧数据。本发明旨在提升视频重定向方案的通用性,避免需要逐个适配播放器和浏览器应用,并支持窗口遮挡、浮窗、弹幕等场景的需求。
Description
技术领域
本发明涉及云桌面技术领域,具体涉及一种用于云桌面的视频重定向方法、系统及介质。
背景技术
本地计算机播放视频时压力较小。因为只需要将视频文件或网络视频流数据解码显示即可,且通常还有GPU硬解码支持,效率更高。云桌面播放视频,压力就大很多。如图1所示,云桌面服务端系统解码视频文件或网络视频流数据,显示到虚拟显卡中,云桌面显示协议服务端(spice-server)对桌面的视频区域进行编码,经过云桌面显示协议通道或网络传输至客户端,云桌面客户端再解码桌面视频区域数据,进行显示。在流程上经过解码--编码--再解码过程,且服务端通常缺少GPU硬解编码支持。多次解编码需要消耗大量的CPU资源,导致要么消耗服务端大量CPU资源,要么造成视频卡顿、甚至撕裂。多次的有损编解码还会使视频画质失真。
在此基础上,很多云桌面厂商会采用“视频重定向”技术,如图2所示,该技术是在服务端虚拟机视频原始数据解码前截获,直接发送至云桌面客户端解码播放。但是这种技术也带来一个问题,视频与桌面交互的脱节,比如重定向的原始视频数据解码后显示在什么位置、宽高是多少,视频上是否有其它窗口或者浮窗、弹幕遮挡。因为桌面交互逻辑在服务端的虚拟机中。不同的云桌面厂商解决上述桌面交互问题主要采用两类方法。方法一:修改服务端虚拟机中视频播放器或浏览器代码,将视频播放位置和区域信息发送至客户端。方法二:使用占位符标记视频区域,在客户端找到包含特殊标记的视频显示区域。但是,上述方法一,需要逐个应用进行修改适配,工作量大,如果遇到无法获得源码的情况,就无法修改适配。上述方法二只标记了4个角点,当标记图案被其它窗口遮挡时,就无法完成定位,更无法处理遮挡显示、浮窗、弹幕等情况。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种用于云桌面的视频重定向方法、系统及介质,本发明旨在提升视频重定向方案的通用性,避免需要逐个适配播放器和浏览器应用,并支持窗口遮挡、浮窗、弹幕等场景的需求。
为了解决上述技术问题,本发明采用的技术方案为:
一种用于云桌面的视频重定向方法,包括:
云桌面服务端在用户使用播放器或浏览器播放视频调用解码库解码视频帧数据时,截获解码前的视频帧数据并通过网络发送到云桌面客户端,并生成包含视频显示区域的x坐标、y坐标以及视频帧数据的视频流ID的定位图像作为解码后的替代视频画面返回给播放器或浏览器显示输出;
云桌面客户端接收视频帧数据,基于云桌面中的定位图像确定视频显示区域,并通过视频显示区域显示视频帧数据。
可选地,所述定位图像采用不同的颜色通道的颜色值来分别存储视频显示区域的x坐标、y坐标以及视频帧数据的视频流ID,且采用冗余的行或者列的像素点某一颜色通道的颜色值的平均值来存储视频显示区域的x坐标、y坐标或者视频帧数据的视频流ID。
可选地,所述定位图像采用冗余的行或者列的像素点某一颜色通道的颜色值的平均值来存储视频显示区域的x坐标、y坐标或者视频帧数据的视频流ID时,用于存储视频显示区域的x坐标、y坐标或者视频帧数据的视频流ID的行或者列的像素点的颜色值规律分布。
可选地,所述定位图像的生成包括:
S101,创建大小为256×256的rgb图像缓冲区;
S102,以rgb图像缓冲区中图像左上角的坐标作为原点,分别为该图像中每一个像素点指定的第一个颜色通道中存储像素点的x坐标,第二个颜色通道中存储像素点的y坐标,第三个颜色通道中存储视频帧数据的视频流ID;
S103,将该图像拉伸至视频帧数据的原始视频尺寸作为得到的定位图像。
可选地,所述定位图像的生成包括:
S201,创建大小为视频帧数据的原始视频尺寸的rgb图像缓冲区;
S202,以rgb图像缓冲区中图像左上角的坐标作为原点,分别为该图像中左右边界的两列像素点的第一个颜色通道一个取值为0、另一个取值为255,中间任意一列的各个像素点均匀存储x"和x"+1使得该列平均值接近x',x"为对x'的取整,x'=x / (width -1) ×255,其中x为像素点的x坐标,width为原始视频尺寸的宽度;分别为该图像中上下边界的两行像素点指定的第二个颜色通道一个取值为0、另一个取值为255,中间任意一行的各个像素点均匀存储y"和y"+1使得该列平均值接近y',y"为对y'的取整,y'=y / (height -1) ×255,其中y为像素点的y坐标,height为原始视频尺寸的高度;分别为该图像中任意像素点指定的第三个颜色通道中存储视频帧数据的视频流ID,从而得到定位图像。
可选地,所述基于云桌面中的定位图像确定视频显示区域时,包括确定视频显示区域的左右边界的x坐标以及视频显示区域的宽度:
S301,在云桌面的图像中搜索定位图像的像素点,分别针对各列像素点的存储像素点的x坐标的颜色通道计算任意第y列的x坐标平均值ave_x[x]以及像素点数量num_x[x];
S302,针对所有的列,筛选出像素点数量num_x[x]大于预设阈值的列为有效的列;
S303,选择任意有效的列x,将x坐标平均值ave_x[x]作为变量Y,该列的x坐标作为变量X,拟合直线获得直线方程Y=kX+b,其中k为直线斜率,b为偏置量;
S304,将Y=0和Y=255分别代入直线方程得到两个变量X的值;
S305,将两个变量X的值分别作为视频显示区域的左右边界的x坐标,并将两个变量X的值之差作为视频显示区域的宽度。
可选地,所述基于云桌面中的定位图像确定视频显示区域时,包括确定视频显示区域的上下边界的y坐标以及视频显示区域的高度:
S301,在云桌面的图像中搜索定位图像的像素点,分别针对各列像素点的存储像素点的y坐标的颜色通道计算任意第y列的y坐标平均值ave_y[y]以及像素点数量num_y[y];
S302,针对所有的列,筛选出像素点数量大于预设阈值的列为有效的列;
S303,选择任意有效的列y,将y坐标平均值ave_y[y]作为变量Y,该列的x坐标作为变量X,拟合直线获得直线方程Y=kX+b,其中k为直线斜率,b为偏置量;
S304,将X=0和X=255分别代入直线方程得到两个变量Y的值;
S305,将两个变量Y的值分别作为视频显示区域的上下边界的y坐标,并将两个变量Y的值之差作为视频显示区域的高度。
可选地,所述基于云桌面中的定位图像确定视频显示区域时,包括确定视频显示区域需要透明处理的掩模区域:针对视频显示区域的宽度和高度范围内的每一个像素点,将该像素点的像素值与生成定位图像的理论值进行比较,若两者的差值小于设定值,则判定该像素点为视频显示区域中的正常视频显示像素,否则判定该像素点为需要透明处理的掩模区域以不被视频画面覆盖。
此外,本发明还提供一种用于云桌面的视频重定向系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述用于云桌面的视频重定向方法。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述用于云桌面的视频重定向方法。
和现有技术相比,本发明主要具有下述优点:
1、本发明包括云桌面服务端在用户使用播放器或浏览器播放视频调用解码库解码视频帧数据时,截获解码前的视频帧数据并通过网络发送到云桌面客户端,并生成定位图像作为解码后的替代视频画面返回给播放器或浏览器显示输出;桌面客户端接收视频帧数据,基于云桌面中的定位图像确定视频显示区域,并通过视频显示区域显示视频帧数据。本发明生成定位图像作为解码后的替代视频画面返回给播放器或浏览器显示输出,利用定位图像的识别,可以方便地获取视频显示区域的大小、位置以及遮挡等情况,能够提升视频重定向方案的通用性,避免需要逐个适配播放器和浏览器应用,并支持窗口遮挡、浮窗、弹幕等场景的需求。
2、现有技术一般是在应用程序层或网络、文件系统中截获数据。本发明采用了在解码库截获数据的方式,在解码库截获数据的优点是通用性较好,不需要逐个适配和修改应用程序,且很多情况难以获取应用程序的源码,而在解码库截获,只要应用程序使用的是通用的解码库,就可以直接实现截获。
附图说明
图1为现有技术中原始的云桌面视频输出原理示意图。
图2为现有技术中视频重定向的原理示意图。
图3为本发明实施例一方法的基本原理示意图。
图4为本发明实施例一的试验结果示意图。
具体实施方式
实施例一:
如图3所示,本实施例用于云桌面的视频重定向方法包括:
云桌面服务端在用户使用播放器或浏览器播放视频调用解码库解码视频帧数据时,截获解码前的视频帧数据并通过网络发送到云桌面客户端,并生成包含视频显示区域的x坐标、y坐标以及视频帧数据的视频流ID(以用于区分不同的播放视频)的定位图像作为解码后的替代视频画面返回给播放器或浏览器显示输出;
云桌面客户端接收视频帧数据,基于云桌面中的定位图像确定视频显示区域,并通过视频显示区域显示视频帧数据。由于定位图像是与视频帧数据对应的,因此可以实现与云桌面中视频显示区域的同步,一旦若云桌面发生变化,则就会在云桌面中的定位图像表达出来,进而在云桌面客户端即可实现同步更新。
本实施例用于云桌面的视频重定向方法生成定位图像作为解码后的替代视频画面返回给播放器或浏览器显示输出,利用定位图像的识别,可以方便地获取视频显示区域的大小、位置以及遮挡等情况,能够提升视频重定向方案的通用性,避免需要逐个适配播放器和浏览器应用,并支持窗口遮挡、浮窗、弹幕等场景的需求。
为了实现定位图像的识别以方便地获取视频显示区域的大小、位置以及遮挡等情况,本实施例中采用的定位图像包含视频显示区域的x坐标、y坐标以及视频帧数据的视频流ID(以用于区分不同的播放视频),从而可以准确获得视频显示区域以及区分不同视频。
考虑到定位图像在显示传输过程中会经过缩放、渲染、编码、解码过程使得图像失真,可能会被其它窗口、水印、浮窗、弹幕等遮挡,导致信息不全,本实施例中定位图像采用不同的颜色通道的颜色值来分别存储视频显示区域的x坐标、y坐标以及视频帧数据的视频流ID,且采用冗余的行或者列的像素点某一颜色通道的颜色值的平均值来存储视频显示区域的x坐标、y坐标或者视频帧数据的视频流ID。通过上述方式,一方面采用了颜色值的平均值,另一方面采用冗余的行或者列的像素点来存储信息,从而可实现定位图像中在垂直方向上的不同行/列之间重复或冗余,增加冗余信息,在接收方计算平均值,降低失真程度。而且,定位图像的这种颜色分布方式压缩率高,对网络带宽的占用非常小。
本实施例中,定位图像采用冗余的行或者列的像素点某一颜色通道的颜色值的平均值来存储视频显示区域的x坐标、y坐标或者视频帧数据的视频流ID时,用于存储视频显示区域的x坐标、y坐标或者视频帧数据的视频流ID的行或者列的像素点的颜色值规律分布,利用颜色值规律分布的方式,一方面可以进一步提升颜色分布的压缩率,另一方面也可以方便地用于对行或者列的像素点的颜色值的验证或者纠错。例如当读取某一行或者列的像素点的颜色值后,如果不满足规律分布的规则,则判定该行或者列的像素点的颜色值有误,读取下一行或者列的行或者列的像素点的颜色值再进行验证,直至获得行或者列的像素点的颜色值规律分布的行或者列为止,从而可以简单、有效地获得正确的存储信息。本实施例中,规律分布包括等差分布、等比分布以及其他各种可确定的分布规律等。
依据定位图像中的颜色分布方式,可根据需要采用所需的图像生成方式。例如本实施例中,定位图像的生成包括:
S101,创建大小为256×256的rgb图像缓冲区;
S102,以rgb图像缓冲区中图像左上角的坐标作为原点,分别为该图像中每一个像素点指定的第一个颜色通道中存储像素点的x坐标,第二个颜色通道中存储像素点的y坐标,第三个颜色通道中存储视频帧数据的视频流ID;例如,本实施例中为R通道存储x方向坐标信息(0-255)、G通道存储y方向坐标信息(0-255)、B通道存储视频流ID(例如本实施例中视频流ID为0);
S103,将该图像拉伸至视频帧数据的原始视频尺寸作为得到的定位图像。
本实施例中,基于云桌面中的定位图像确定视频显示区域时,包括确定视频显示区域的左右边界的x坐标以及视频显示区域的宽度:
S301,在云桌面的图像中搜索定位图像的像素点,分别针对各列像素点的存储像素点的x坐标的颜色通道计算任意第y列的x坐标平均值ave_x[x]以及像素点数量num_x[x];
S302,针对所有的列,筛选出像素点数量num_x[x]大于预设阈值的列为有效的列;
S303,选择任意有效的列x,将x坐标平均值ave_x[x]作为变量Y,该列的x坐标作为变量X,拟合直线获得直线方程Y=kX+b,其中k为直线斜率,b为偏置量;
S304,将Y=0和Y=255分别代入直线方程得到两个变量X的值;
S305,将两个变量X的值分别作为视频显示区域的左右边界的x坐标,并将两个变量X的值之差作为视频显示区域的宽度。
本实施例中,基于云桌面中的定位图像确定视频显示区域时,包括确定视频显示区域的上下边界的y坐标以及视频显示区域的高度:
S301,在云桌面的图像中搜索定位图像的像素点,分别针对各列像素点的存储像素点的y坐标的颜色通道计算任意第y列的y坐标平均值ave_y[y]以及像素点数量num_y[y];
S302,针对所有的列,筛选出像素点数量大于预设阈值的列为有效的列;
S303,选择任意有效的列y,将y坐标平均值ave_y[y]作为变量Y,该列的x坐标作为变量X,拟合直线获得直线方程Y=kX+b,其中k为直线斜率,b为偏置量;
S304,将X=0和X=255分别代入直线方程得到两个变量Y的值;
S305,将两个变量Y的值分别作为视频显示区域的上下边界的y坐标,并将两个变量Y的值之差作为视频显示区域的高度。
本实施例中,基于云桌面中的定位图像确定视频显示区域时,包括确定视频显示区域需要透明处理的掩模区域:针对视频显示区域的宽度和高度范围内的每一个像素点,将该像素点的像素值与生成定位图像的理论值进行比较,若两者的差值小于设定值,则判定该像素点为视频显示区域中的正常视频显示像素,否则判定该像素点为需要透明处理的掩模区域以不被视频画面覆盖。
以ARM架构环境为例,应用本实施例用于云桌面的视频重定向方法针云桌面在播放不同编码标准(H264、H265)的不同分辨率(480p、720p、1080p、4K)视频时,和现有方法的测试结果对比如表1以及图4所示。
表1:不同编码标准和不同分辨率下的测试结果对比。
表1中,“优化前CPU核心数”是指云桌面采用现有方法播放某一编码标准以及分辨率下的占用CPU核心数量,“优化后CPU核心数”是指云桌面采用本实施例方法播放某一编码标准以及分辨率下的占用CPU核心数量。每一个核心以100%作为完整占用比例,例如“H264,480p”表示播放H264编码标准以及480p分辨率时,“优化前CPU核心数”为0.84表示采用现有方法占用的CPU核心数为0.84,相当于单CPU核占用了84%;“优化后CPU核心数” 为0.1表示采用本实施例方法占用的CPU核心数为0.1,相当于单CPU核占用了10%;“H264,720p”表示播放H264编码标准以及720p分辨率时,“优化前CPU核心数”为1.82表示采用现有方法占用的CPU核心数为1.82,相当于两个CPU核各占91%;“优化后CPU核心数” 为0.08表示采用本实施例方法占用的CPU核心数为0.08,相当于单CPU核占用了8%;依次类推。参见表1和图4可知,采用本实施例方法后,服务端占用的CPU核心数消耗均有大幅降低,最高降幅达到97.90%。每1路1080p/24(1080p为分辨率、24为帧率)的视频播放减少约4个CPU核消耗,每1路4Kp/24(4Kp为分辨率、24为帧率)的视频播放可以减少8个CPU核的消耗,放开了视频播放的资源限制。另外,本实施例用于云桌面的视频重定向方法不需要逐个适配播放器和浏览器,且支持遮挡处理。
此外,本实施例还提供一种用于云桌面的视频重定向系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行该用于云桌面的视频重定向方法。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序用于被微处理器编程或配置以执行该用于云桌面的视频重定向方法。
实施例二:
本实施例与实施例一基本相同,其主要区别为生成定位图像的方式有所不同。
由于像素点的取值为0~255,因此实施例一中采用先生成0~255的值,然后再拉伸图像的方式来生成定位图像。而本实施例中,则直接生成原始视频尺寸的定位图像,并采用坐标映射的方式将其映射到取值区间0~255内。具体地,本实施例中定位图像的生成包括:
S201,创建大小为视频帧数据的原始视频尺寸的rgb图像缓冲区;
S202,以rgb图像缓冲区中图像左上角的坐标作为原点,分别为该图像中左右边界的两列像素点的第一个颜色通道一个取值为0、另一个取值为255,中间任意一列的各个像素点均匀存储x"和x"+1使得该列平均值接近x',x"为对x'的取整,x'=x / (width -1) ×255,其中x为像素点的x坐标,width为原始视频尺寸的宽度;分别为该图像中上下边界的两行像素点指定的第二个颜色通道一个取值为0、另一个取值为255,中间任意一行的各个像素点均匀存储y"和y"+1使得该列平均值接近y',y"为对y'的取整,y'=y / (height -1) ×255,其中y为像素点的y坐标,height为原始视频尺寸的高度;分别为该图像中任意像素点指定的第三个颜色通道中存储视频帧数据的视频流ID,从而得到定位图像。
此外,本实施例还提供一种用于云桌面的视频重定向系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行该用于云桌面的视频重定向方法。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序用于被微处理器编程或配置以执行该用于云桌面的视频重定向方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种用于云桌面的视频重定向方法,其特征在于,包括:
云桌面服务端在用户使用播放器或浏览器播放视频调用解码库解码视频帧数据时,截获解码前的视频帧数据并通过网络发送到云桌面客户端,并生成包含视频显示区域的x坐标、y坐标以及视频帧数据的视频流ID的定位图像作为解码后的替代视频画面返回给播放器或浏览器显示输出;
云桌面客户端接收视频帧数据,基于云桌面中的定位图像确定视频显示区域,并通过视频显示区域显示视频帧数据。
2.根据权利要求1所述的用于云桌面的视频重定向方法,其特征在于,所述定位图像采用不同的颜色通道的颜色值来分别存储视频显示区域的x坐标、y坐标以及视频帧数据的视频流ID,且采用冗余的行或者列的像素点某一颜色通道的颜色值的平均值来存储视频显示区域的x坐标、y坐标或者视频帧数据的视频流ID。
3.根据权利要求2所述的用于云桌面的视频重定向方法,其特征在于,所述定位图像采用冗余的行或者列的像素点某一颜色通道的颜色值的平均值来存储视频显示区域的x坐标、y坐标或者视频帧数据的视频流ID时,用于存储视频显示区域的x坐标、y坐标或者视频帧数据的视频流ID的行或者列的像素点的颜色值规律分布。
4.根据权利要求3所述的用于云桌面的视频重定向方法,其特征在于,所述定位图像的生成包括:
S101,创建大小为256×256的rgb图像缓冲区;
S102,以rgb图像缓冲区中图像左上角的坐标作为原点,分别为该图像中每一个像素点指定的第一个颜色通道中存储像素点的x坐标,第二个颜色通道中存储像素点的y坐标,第三个颜色通道中存储视频帧数据的视频流ID;
S103,将该图像拉伸至视频帧数据的原始视频尺寸作为得到的定位图像。
5.根据权利要求3所述的用于云桌面的视频重定向方法,其特征在于,所述定位图像的生成包括:
S201,创建大小为视频帧数据的原始视频尺寸的rgb图像缓冲区;
S202,以rgb图像缓冲区中图像左上角的坐标作为原点,分别为该图像中左右边界的两列像素点的第一个颜色通道一个取值为0、另一个取值为255,中间任意一列的各个像素点均匀存储x"和x"+1使得该列平均值接近x',x"为对x'的取整,x'=x / (width -1) × 255,其中x为像素点的x坐标,width为原始视频尺寸的宽度;分别为该图像中上下边界的两行像素点指定的第二个颜色通道一个取值为0、另一个取值为255,中间任意一行的各个像素点均匀存储y"和y"+1使得该列平均值接近y',y"为对y'的取整,y'=y / (height -1) ×255,其中y为像素点的y坐标,height为原始视频尺寸的高度;分别为该图像中任意像素点指定的第三个颜色通道中存储视频帧数据的视频流ID,从而得到定位图像。
6.根据权利要求4或5所述的用于云桌面的视频重定向方法,其特征在于,所述基于云桌面中的定位图像确定视频显示区域时,包括确定视频显示区域的左右边界的x坐标以及视频显示区域的宽度:
S301,在云桌面的图像中搜索定位图像的像素点,分别针对各列像素点的存储像素点的x坐标的颜色通道计算任意第y列的x坐标平均值ave_x[x]以及像素点数量num_x[x];
S302,针对所有的列,筛选出像素点数量num_x[x]大于预设阈值的列为有效的列;
S303,选择任意有效的列x,将x坐标平均值ave_x[x]作为变量Y,该列的x坐标作为变量X,拟合直线获得直线方程Y=kX+b,其中k为直线斜率,b为偏置量;
S304,将Y=0和Y=255分别代入直线方程得到两个变量X的值;
S305,将两个变量X的值分别作为视频显示区域的左右边界的x坐标,并将两个变量X的值之差作为视频显示区域的宽度。
7.根据权利要求4或5所述的用于云桌面的视频重定向方法,其特征在于,所述基于云桌面中的定位图像确定视频显示区域时,包括确定视频显示区域的上下边界的y坐标以及视频显示区域的高度:
S301,在云桌面的图像中搜索定位图像的像素点,分别针对各行像素点的存储像素点的y坐标的颜色通道计算任意第x行的y坐标平均值ave_y[y]以及像素点数量num_y[y];
S302,针对所有的行,筛选出像素点数量大于预设阈值的行为有效的行;
S303,选择任意有效的行y,将y坐标平均值ave_y[y]作为变量Y,该行的y坐标作为变量X,拟合直线获得直线方程Y=kX+b,其中k为直线斜率,b为偏置量;
S304,将X=0和X=255分别代入直线方程得到两个变量Y的值;
S305,将两个变量Y的值分别作为视频显示区域的上下边界的y坐标,并将两个变量Y的值之差作为视频显示区域的高度。
8.根据权利要求1所述的用于云桌面的视频重定向方法,其特征在于,所述基于云桌面中的定位图像确定视频显示区域时,包括确定视频显示区域需要透明处理的掩模区域:针对视频显示区域的宽度和高度范围内的每一个像素点,将该像素点的像素值与生成定位图像的理论值进行比较,若两者的差值小于设定值,则判定该像素点为视频显示区域中的正常视频显示像素,否则判定该像素点为需要透明处理的掩模区域以不被视频画面覆盖。
9.一种用于云桌面的视频重定向系统,包括相互连接的微处理器和存储器,其特征在于,所述微处理器被编程或配置以执行权利要求1~8中任意一项所述用于云桌面的视频重定向方法。
10.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序用于被微处理器编程或配置以执行权利要求1~8中任意一项所述用于云桌面的视频重定向方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311135446.0A CN116896655B (zh) | 2023-09-05 | 2023-09-05 | 一种用于云桌面的视频重定向方法、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311135446.0A CN116896655B (zh) | 2023-09-05 | 2023-09-05 | 一种用于云桌面的视频重定向方法、系统及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116896655A true CN116896655A (zh) | 2023-10-17 |
CN116896655B CN116896655B (zh) | 2023-12-26 |
Family
ID=88311059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311135446.0A Active CN116896655B (zh) | 2023-09-05 | 2023-09-05 | 一种用于云桌面的视频重定向方法、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116896655B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117319592A (zh) * | 2023-12-01 | 2023-12-29 | 银河麒麟软件(长沙)有限公司 | 一种云桌面摄像头重定向方法、系统及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9451197B1 (en) * | 2010-04-12 | 2016-09-20 | UV Networks, Inc. | Cloud-based system using video compression for interactive applications |
CN110324671A (zh) * | 2018-03-30 | 2019-10-11 | 中兴通讯股份有限公司 | 网页视频播放方法及装置、电子设备及存储介质 |
CN111683286A (zh) * | 2020-05-22 | 2020-09-18 | 湖南云之翼软件有限公司 | 一种新型的视频重定向方法 |
CN115834930A (zh) * | 2022-11-16 | 2023-03-21 | 百度在线网络技术(北京)有限公司 | 视频帧传输方法、装置、电子设备及存储介质 |
CN115883854A (zh) * | 2021-09-29 | 2023-03-31 | 中兴通讯股份有限公司 | 云桌面显示方法、终端、云桌面系统、设备及可读介质 |
-
2023
- 2023-09-05 CN CN202311135446.0A patent/CN116896655B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9451197B1 (en) * | 2010-04-12 | 2016-09-20 | UV Networks, Inc. | Cloud-based system using video compression for interactive applications |
CN110324671A (zh) * | 2018-03-30 | 2019-10-11 | 中兴通讯股份有限公司 | 网页视频播放方法及装置、电子设备及存储介质 |
CN111683286A (zh) * | 2020-05-22 | 2020-09-18 | 湖南云之翼软件有限公司 | 一种新型的视频重定向方法 |
CN115883854A (zh) * | 2021-09-29 | 2023-03-31 | 中兴通讯股份有限公司 | 云桌面显示方法、终端、云桌面系统、设备及可读介质 |
CN115834930A (zh) * | 2022-11-16 | 2023-03-21 | 百度在线网络技术(北京)有限公司 | 视频帧传输方法、装置、电子设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117319592A (zh) * | 2023-12-01 | 2023-12-29 | 银河麒麟软件(长沙)有限公司 | 一种云桌面摄像头重定向方法、系统及介质 |
CN117319592B (zh) * | 2023-12-01 | 2024-03-26 | 银河麒麟软件(长沙)有限公司 | 一种云桌面摄像头重定向方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116896655B (zh) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022110903A1 (zh) | 全景视频渲染方法及系统 | |
CN116896655B (zh) | 一种用于云桌面的视频重定向方法、系统及介质 | |
EP3557845A1 (en) | Method and device for transmitting panoramic videos, terminal, server and system | |
US20180336718A1 (en) | Piecewise linear irregular rasterization | |
TWI686082B (zh) | 視頻牆媒體播放系統、方法及控制伺服器 | |
CN108650460B (zh) | 服务器、全景视频的存储和传输方法和计算机存储介质 | |
CN112189219A (zh) | 低分辨率深度预过程 | |
US20210327122A1 (en) | Methods and apparatus for efficient multi-view rasterization | |
CN113994707B (zh) | 用于在显示器上渲染视频的方法和设备 | |
CN115225937A (zh) | 沉浸式媒体提供方法、获取方法、装置、设备及存储介质 | |
US20230245420A1 (en) | Image processing method and apparatus, computer device, and storage medium | |
CN110989949A (zh) | 一种异形拼接显示的方法及装置 | |
CN116888632A (zh) | 使用着色图谱的分割渲染中的错误隐藏 | |
CN115883882A (zh) | 图像处理方法、装置、系统、网络设备、终端及存储介质 | |
CN106951204B (zh) | 基于计算机集群可视化系统的图像同步方法 | |
US20190087981A1 (en) | System and method for coding and decoding of an asset having transparency | |
CN112565869B (zh) | 一种视频重定向的窗口融合方法、装置及设备 | |
CN110572713B (zh) | 一种自适应视频宽高比的转码方法及处理终端 | |
EA008749B1 (ru) | Способ кодирования координат перемещающегося на экране вычислительного устройства видеоизображения | |
EP4035386A1 (en) | Merging friendly file format | |
JP7289390B2 (ja) | ディスプレイウォールシステムに用いるイメージ処理デバイス、および、ディスプレイ制御方法 | |
US20200118244A1 (en) | Data processing systems | |
CN114979123A (zh) | 一种高清图片防复制且按需访问的系统及方法 | |
US11968374B2 (en) | Method and device for coding and decoding | |
CN112468820B (zh) | 图像显示方法及图像显示系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |