redhat官网,还可以通过什么软件或命令进行远程控制服务器
远程桌面,本质就是将桌面进行连续截屏、编码压缩,经网络传输后,再解码还原成画面的过程。可见编解码技术在其中扮演了举足轻重的作用。
redhat官网,还可以通过什么软件或命令进行远程控制服务器?
远程桌面,本质就是将桌面进行连续截屏、编码压缩,经网络传输后,再解码还原成画面的过程。可见编解码技术在其中扮演了举足轻重的作用。
继上一篇介绍了远程桌面的五大核心指标后,本篇我们将揭秘ToDesk高质量远程桌面的三大核心技术之一——视频编解码技术。
什么是视频编解码?
视频编解码是对图像数据进行压缩或者解压缩的过程。远程桌面的画面传输好比是把一辆汽车在上海拆成零件,分装进箱子里运到北京,再重新组装起来。视频编码和解码就是这个过程中“拆”和“装”两个关键环节,可见其复杂和重要性。
编码包括采样、编码、压缩三个步骤。采样就是在视频流中截取画面数据,编码对这些画面数据进行处理,再压缩成更小的数据包以便传输。
解码则是编码的逆向过程:接收端把收到的数据包打开,重新还原成画面,再把画面根据顺序逐帧排列形成视频流。
为什么需要更强的视频编解码?
高效的视频编解码可以使编解码速度更快、把数据包压缩得更小。在更低的资源占用下,带来高清流畅的远程体验。
1. 编解码更快,端到端延时更低
影响用户真实体验的端到端延时,包括了网络传输延时和编解码延时。当端到端延时低至40ms时,网络传输延时通常不超过10ms,此时视频编解码就成了优化用户体验的关键。
相较于传统的编解码技术,ToDesk可以将处理延时降低至最低8ms以下,带来几乎无感的用户体验。
2. 压缩率更高,更省带宽
更好的编码算法能够提高压缩率,用更少的带宽资源传输更高分辨率和帧率的画面。
3. 鲁棒性更强,无惧网络波动
鲁棒性就是系统的韧性。优秀的视频编解码不但要快,还要稳,在遇到网络波动时,像汽车避震系统一样把冲击化解掉,维持画面的流畅稳定。
ToDesk在编解码中采用了灵活参考帧技术,网络丢包达到5%也能轻松化解。
十年编解码研发积累,打造ToDesk强劲核心
ToDesk核心团队有超过十年的视频编解码研发经验,算法和硬件优化双管齐下、深度优化,打造了专为远程桌面而生的高效编解码器。
高效算法消除冗余信息空间冗余指的是静态画面中像素间的相同性造成的冗余。ToDesk的视频编码器采用静态场景优化策略,用智能图像算法合并处理整片的同色像素点。
经合并之后,需处理的数据量大幅减少,从而缩短处理时间并降低带宽占用。
时间冗余指的是动态画面之间的相关性造成的冗余。一秒的60FPS视频包含60帧静态画面,相邻画面之间的变动其实非常微小。
只传输有变动的区域,可以大幅减少传输数据量。
我们将一系列画面分为独立帧(称作I帧)和预测帧(称作P帧)。I帧会传输所有信息,可以解码出完整画面;P帧只传输前后画面之间的差别,需要参考前一帧画面来拼出完整画面,但数据量只有I帧的几百分之一。
一个I帧和多个P帧就构成了一组连续画面。就像是火车,I帧是车头,P帧都是接在车头后面的多节车厢。ToDesk通过图像算法优化,可以让一个I帧拖更多P帧,进一步降低5ms编码延时。
灵活参考帧技术虽然这种环环相扣的传输方式可以大幅提升压缩率,但也需要预防网络抖动和丢包带来的数据丢失。否则如下图所示,序列中的某一帧丢失,后续的P帧就像脱节的车厢,无法解码。
ToDesk基于智能图像算法开发了“灵活参考帧”技术,通过AI算法推测图像之间的相关性,让P帧可以参考之前的多张画面进行解码。即使网络丢包率达到5%,也能维持画面连贯流畅。
桌面内容编码针对文字工作、图片显示、3D图形等不同桌面内容,ToDesk均采用了针对性的特殊编码,进一步降低输出码率,静止状态下低于50kbps,正常办公时低于200kbps。
桌面内容编码降低了ToDesk的带宽占用,在各种网络环境下都能提供流畅稳定的远程体验。
GPU硬件加速除了算法优化,ToDesk更进一步,深入计算架构挖掘硬件性能,用GPU提升编码效率,在提升速度的同时,还释放了CPU资源,让电脑运行更顺畅。
CPU计算单元较少,但每个单元的算力更强,适合处理步骤严密关联、逻辑复杂的任务。GPU则恰恰相反,适合处理大量的重复计算。视频编解码的算法独立、运算量大,就非常适合GPU。
知易行难,不同的计算架构就像是不同的语言,需要经过复杂的转换才能顺畅运行。
ToDesk 为GPU量身打造了并行编解码架构,充分发挥硬件潜力,把编码延时降低到8ms以下。并且运用了了采集直通技术——GPU直接从显存里获取图像信息,无需CPU介入,采集延时降低到5ms以下。
除了强大的视频编解码能力是远程桌面的核心基础外,影响实际体验的网络质量也同样举足轻重。下一篇我们将聚焦网络传输,揭秘Zuler OTT SD-WAN如何为您的远控体验保驾护航。敬请期待!
Redhat官网上是不是就查不到证书记录了?
可以查到,有效期三年指的是你想进一步考rhca或者别的在redhat需要rhce资格的,只有三年有效期,但证书过期在网站上也是能查到的。
linux的go?
Golang也就是Go语言,现在已经发行到1.4.1版本了,语言特性优越性和背后Google强大靠山什么的就不多说了。Golang的官方提供了多个平台上的二进制安装包,遗憾的是并非没有发布ARM平台的二进制安装包。ARM平台没办法直接从官网下载二进制安装包来安装,好在Golang是支持多平台并且开源的语言,因此可以通过直接在ARM平台上编译源代码来安装。整个过程主要包括编译工具配置、获取Golang源代码、设置Golang编译环境变量、编译、配置Golang行环境变量等步骤。
注:本文选用树莓派做测试,因为树莓派是基于ARM平台的。
1、编译工具配置
据说下个版本的golang编译工具要使用golang自己来写,但目前还是使用C编译工具的。因此,首先要配置好C编译工具:
1.1 在Ubuntu或Debian平台上可以使用sudo apt-get install gcc libc6-dev命令安装,树莓派的RaspBian系统是基于Debian修改的,所以可以使用这种方法安装。
1.2 在RedHat或CentOS 6平台上可以使用sudo yum install gcc libc-devel命令安装。
安装完成后可以输入 gcc --version命令验证是否成功安装。
2、获取golang源代码
2.1 直接从官网下载源代码压缩包。
golang官网提供golang的源代码压缩包,可以直接下载,最新的1.4.1版本源代码链接:https://storage.googleapis.com/golang/go1.4.1.src.tar.gz
2.2 使用git工具获取。
golang使用git版本管理工具,也可以使用git获取golang源代码。推荐使用这个方法,因为以后可以随时获取最新的golang源代码。
2.2.1 首先确认ARM平台上已经安装了git工具,可以使用git --version命令确认。一般linux平台都安装了git,没有的话可以自行安装,不同平台的安装方法可以参考:http://git-scm.com/download/linux
2.2.2 克隆远程golang的git仓库到本地
在终端cd到你想要安装golang的目录,确保该目录下没有名为go的目录。然后以下命令获取代码仓库:
git clone https://go.googlesource.com/go
大陆地区可能会获取失败,在不翻墙的情况下我试了几次都没成功,原因大家都懂的。好在google已经将golang也托管到github上面,所以也可以通过下面命令获取:
git clone https://github.com/golang/go.git
视网络情况,下载可能需要不少时间。我2M的带宽花了将近两个小时才下载完,虽然整个项目不过几十兆= =
下载完成后,可以看到目录下多了一个go目录,里面即为golang的源代码,在终端上执行cd go命令进入该目录。
执行下面命令检出go1.4.1版本的源代码,因为现在已经有新的代码提交上去了,最新的代码可能不是最稳定的:
git checkout go1.4.1
至此,最新1.4.1发行版的源代码获取完毕
3、设置golang的编译环境变量
主要有GOROOT、GOOS、GOARCH、GOARM四个环境变量需要设置,先解释四个环境变量的意义。
3.1 GOROOT
主要代表golang树结构目录的路径,也就是上面git检出的go目录。一般可以不用设置这个环境变量,因为编译的时候默认会以go目录下src子目录中的all.bash脚本运行时的父目录作为GOROOT的值。为了保险起见,可以直接设置为go目录的路径。
3.2 GOOS和GOARCH
分别代表编译的目标系统和平台,可选值如下:
GOOS GOARCH
darwin 386
darwin amd64
dragonfly 386
dragonfly amd64
freebsd 386
freebsd amd64
freebsd arm
linux 386
linux amd64
linux arm
netbsd 386
netbsd amd64
netbsd arm
openbsd 386
openbsd amd64
plan9 386
plan9 amd64
solaris amd64
windows 386
windows amd64
需要注意的是这两个值代表的是目标系统和平台,而不是编译源代码的系统和平台。树莓派的RaspBian是linux系统,所以这些GOOS设置为linux,GOARCH设置为arm。
3.3 GOARM
表示使用的浮点运算协处理器版本号,只对arm平台有用,可选值有5,6,7。如果是在目标平台上编译源代码,这个值可以不设置,它会自动判断需要使用哪一个版本。
总结下来,在树莓派上设置golang的编译环境变量,可编辑$HOME/.bashrc文件,在末尾添加下面内容:
export GOROOT=你的go目录路径
export GOOS=linux
export GOARCH=arm
编辑完后保存,执行source ~/.bashrc命令让修改生效。
4、编译源代码
环境变量配置完成自后就可以开始编译源代码。在go目录下的src子目录中,主要有all.bash和make.bash两个脚本(另外还有两个all.bat和make.bat脚本适用于window平台)。编译实际上就是执行其中一个脚本,两者的区别在于all.bash在编译完成后还会执行一些测试套件。如果希望只编译不测试,可以运行make.bash脚本。使用cd命令进入go下src目录,执行./all.bash或者./make.bash命令即可开始编译。由于硬件情况不同,编译耗费的时间不同。在我的B型树莓派编译过程花费了将近半个小时,编译完成后执行的测试套件又花费了差不多一个小时,总共花费了一个半小时左右。
5、配置golang运行环境变量
编译完成后,go目录下会生成bin目录,里面就是go的运行脚本。为了以后使用方法,可以将这个bin路径添加到PATH环境变量中。同样编辑~/.bashrc文件,因为前面设置过GOROOT环境变量指向go目录了,所以只需要在末尾加上
export PATH=$PATH:$GOROOT/bin
保存后同样执行source ~/.bashrc命令让环境变量生效。
至此,golang源代码编译安装成功。执行go version应该就能看到当前golang的版本信息,表示编译安装成功。
发布于 2023-05-16 05:00:01