公务员期刊网 论文中心 正文

视频云制作下云桌面应用设计

视频云制作下云桌面应用设计

摘要:云桌面传输协议是云桌面的核心技术之一,其决定着云桌面的传输效率和使用效果,业界厂商的解决方案侧重点也各不相同。在桌面传输中,视频的流畅度与每一帧的画面质量之间是一对矛盾,而好的用户体验既要优秀的操作流畅度,也要高质量的传输画面。本设计方案主要针对视频云制作的场景,在服务端集成主流GPU的编码SDK,在客户端提供回传画面编码参数配置,从而灵活满足视频非编的场景需求。

关键词:云桌面传输协议云制作

1引言

在2006年8月9日的搜索引擎大会上,时任Google首席执行官的埃里克·施密特首次提出了云计算的概念。自此之后,“云计算”成为近年来计算机领域最热门的话题之一,越来越多的组织和个人加入云计算的研究,其价值不断被发掘,互联网产品和IT服务出现了新的模式。VDI,即虚拟桌面基础设施,也常被称为云桌面、虚拟桌面或桌面虚拟化,是云计算的主要产品形式之一。相对于传统PC,VDI中的虚拟桌面更加灵活便捷,也更加绿色环保。远程桌面协议种类颇多,业界厂商的解决方案侧重点也各不相同,很难说谁优谁劣。VDI中客户端与虚拟桌面分离的模式使得远程桌面协议必须依赖于实际网络环境,而好的用户体验既要流畅度也要画面质量,因此,对远程桌面协议来说,只能在有限的资源下做出适当的取舍以呈现出相对最好的用户体验[1]。传输协议是云桌面技术中重要的技术内容。传输协议的效率决定了云桌面的基本交付能力,而对传输协议中的承载协议、图形图像的处理方式则决定了云桌面的交互体验,不同协议有着自身的特色和适用空间[2]。

2应用方案

2.1传输编码设计

本方案的设计主要面向视频云制作领域,在满足延时性要求的前提下尽可能地提升传输画面质量,实现视频非编的远程制作。传输协议构建在WebSocket协议之上,使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocketAPI中,浏览器和服务器只需要完成一次握手,两者之间就可以直接创建持久性的连接,并进行双向数据传输。云桌面传输流程如图1所示。云桌面传输协议主要包含视频数据、音频数据、控制流数据(键鼠操作数据)等。其中,音视频的编解码参考了主流编码方式。音频采用的Opus格式是一种开放格式,使用上没有任何专利或限制,是在流媒体中一种比较常用的格式;采样率和码率可以按需进行配置,而云桌面非编场景对音频质量没有更为严苛的需求;视频编码采用H.264标准,结合协议的实际应用场景,在视频云制作的服务器上会配置GPU。因此,在传输协议中不采用集成libx264的软件编码方案,而选用集成市场主流的GPU厂家的硬件编码SDK,以提升编码效率。在客户端集成FFmpeg,实现H.264的协议解码。针对控制流数据进行编码设计,定义接口实现方式。其中,键盘编码参照了微软设计的虚拟键盘值,并增加定义Alt/Shift/Ctrl状态、小键盘以及大小写开关等键盘参数,满足对主流非编软件的远程操作使用。

2.2功能实现

2.2.1云桌面实现的主要流程。客户端向服务端发起建立连接的请求→服务端接收客户端的连接请求,验证请求参数→服务端通过验证后,完成与客户端的双向网络通道的建立→服务端不断对远程机器进行抓屏和音频采集,将桌面画面和音频数据编码压缩后的流数据通过网络通道发送给客户端→客户端将收到的音视频流数据进行解码、渲染播放→客户端通过网络通道发送键盘鼠标数据,服务端接收键盘鼠标数据进行响应→客户端主动断开连接退出程序,服务端断开连接等待下次请求。2.2.2具体实现步骤。(1)客户端携带各项参数向服务端发起建立连接的请求。云桌面连接请求参数如表1所示。(2)服务端接收请求之后,验证密码等参数。如果验证方式是用户名密码,服务端则会对客户端提交的用户名和密码进行验证;如果验证方式是随机码,服务端则会验证客户端提交的随机码;如果验证方式是无,服务端则不会进行验证直接继续后续流程。客户端登录界面如图2所示。至于客户端提交的视频和音频参数,服务端和客户端可在步骤(4)(5)中利用表1中的参数来处理音视频。(3)服务端与客户端建立双向网络通道。此步骤基于WebSocket协议建立起双向传输的网络通道,用于传输客户端和服务器的串流数据、鼠标键盘控制指令数据。客户端登录视频编码设置界面如图3所示。(4)服务端音视频处理。首先,远程机器进行画面采集(采集D3D的数据)、音频采集(采集出PCM格式的数据)。其次,进行编码压缩,视频编码通过GPU硬件编码器将D3D的数据转换成H.264的码流;音频编码通过Opus编码器将PCM的数据转换成Opus的码流。最后,通过WebSocket网络通道传输数据到客户端。(5)客户端音视频处理。首先,通过WebSocket网络通道接收服务端传过来的码流数据;其次,进行视频解码(将H.264的码流解码成YUV)和音频解码(通过Opus编码器将Opus的码流解码成PCM);最后,进行视频渲染播放(将解码后的YUV进行渲染展示)和音频渲染播放(将解码后的PCM进行渲染展示)。(6)客户端、服务端键盘鼠标处理。首先,客户端监听用户的本地键鼠操作事件;其次,将客户端监听到的用户本地键鼠操作事件数据通过Web-Socket网络通道传输给服务端;最后,服务端将接收到的事件传给远程机器上的操作系统。(7)断开连接。客户端发送断开的请求到服务端,退出程序;服务端停止采集、编码、传输,等待下次连接请求。

2.3传输性能

为满足视频非编的制作需求,经多方调研和反复测试,拟制定云桌面的视频传输配置,具体如表2所示。按照上文中音视频编解码设定的参数,在局域网中对传输协议进行可用性的性能测试,结果如表3所示。事实上,键鼠操作编码的上行数据量相较于下行的视频数据要小得多,键鼠操作的解码执行响应效率也相对较高。测试结果表明,在局域网环境下,低于100ms的操作体验可以满足日常工作要求。非编对于视频码率有硬性要求,同时为保证延时可控,对带宽要求较高。压力主要在于云端服务器下行网络带宽,尤其是传输超高清视频流时,实时码率会达到50~60Mb/s。为保证画面流畅和可用性,如果多人使用同一台云端非编服务器时,在服务器端应考虑配置万兆网卡,提高服务端出口的下行带宽。该云桌面传输方案主要应用场景是针对短视频及高清视频的轻量级非编设计,或在校师生的教学场景,该方案可使从业人员以及学校降低硬件投入成本和实验室建设费用。

3结语

目前,视频云制作行业的常规实现方式是通过远程桌面技术来实时远程操控云桌面中运行的设计制作应用。本文论述的应用方案的目的在于克服常见的VDI协议传输功能上的不足,尤其是在音视频和3D模型等远程制作场景之中,本方案设计的传输方式更为灵活方便。基于H.264视频压缩算法和英伟达、AMD显卡的编解码技术实现了远程制作场景的适配,在满足云桌面基本功能的情况下支持GPU硬件加速。同时,还提供了灵活调整视频回传参数的界面,方便用户根据需要对音视频参数做个性化设置,在视频云制作领域为使用者提供了一种可行的应用方案。

参考文献:

[1]李康,陈清华.分析对比VDI常用的几种远程桌面协议[J].信息系统工程,2020(1):111-113.

[2]李乘东.云桌面远程传输协议综述[J].现代电信科技,2014,44(8):23-26+32.

作者:牛泰龙 常琳 脱羚 单位:国家广播电视总局广播电视科学研究院

相关热门标签