作者vintw (阳光好青年)
看板EZsoft
标题Re: [请问] 有关远端连线
时间Sun Mar 22 02:07:44 2009
※ 引述《sinpei (ㄚ哈)》之铭言:
: 请问有没有哪一个远端连线的程式
: 是能够让我连到远端的电脑
: 然後利用远端的电脑看网路电视的呢?
其实在推文中就有人提过了,把DirectDraw的硬体加速关掉就可以了。
作法大概是这样(Windows XP w/DirectX 9):
在开始→执行中输入dxdiag後按确定,会出来DirectX诊断工具,
然後"显示"的分页中,DirectDraw用旁边的按钮设为"停用"即可。
不过这可能会导致播放影片的效能大大的降低,并影响到部分游戏 / 应用程式的效率。
如果你真的需要这麽做,请记得在用完之後开回来。
另外,这麽做也许可以让影片画面透过各种远端桌面传输到另一台电脑,
但是并不代表就可以很顺畅的播放,因为播放影片所需要的频宽是很可怕的。
简单的说,除非在区域网路或是你频宽超大,否则应该要顺畅不容易。
==============以下是一些技术性的讨论,没兴趣的可以跳过。===============
一般常见的影像档几乎都经过不等的压缩,才成为我们手上这些档案的大小,
但是远端桌面传输的是(据我所了解)最後的画面而不是压缩的内容;
随便一个数百MB的影片档,很可能输出画面的频宽就需要10MB/s以上,
否则就是牺牲每秒的张数,以流畅性为代价。而这些还没把声音的部分算进去。
这也是为什麽会需要串流格式的原因,
直接把资料分部份传给你,让你用自己的硬体解码播放,比传最後的画面好太多了。
影片播放会无法透过远端桌面传输的原因,
是因为很多的播放软体是透过DirectShow API来播放。
DirectShow在经过所有的filter / codec之後,会呼叫Direct Draw来显示画面,
而DirectDraw则会透过显示卡的支援,在显示卡的记忆体中划出一块空间,
然後所有影片的内容就会写在这个空间上面,而不是透过Windows的绘图系统,
这个动作叫做Overlay Surface。
以现在的产品来说,即使是内建的显示卡都可以轻松的做到这些事,
(题外话,现在很多内建显卡已经把以前的高阶卡巴假的了...)
高阶的显示卡甚至可以用GPU的运算能力来加速解码的过程,降低CPU使用率。
Overlay Surface无法透过PrtScr或是远端桌面看到,
因为这些动作都是抓Windows的绘图,而不会特别抓overlay的部份。
这也是为什麽把DirectDraw的硬体加速关闭可以达到原PO的目的,
但是,当初这麽做的原因就是为了效率,因此关闭它可能会造成效率上的问题。
即使是不经过DirectShow的拨放器,如VLC,
只要有透过DirectDraw /Overlay Surface加速,就会遇到同样的问题。
所以把硬体加速关掉就可以抓图,也可以远端看到了。
如果说有某种远端桌面的技术,会呼叫client端的硬体来加速使用server端的档案,
或许这个问题可以迎刃而解,但是我是没听过有这麽神奇的技术XD
(印象中是这样,有错请不吝指正。另外据说Dx9以後又有改了...)
--
Sincerely.
--VinTW
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.136.8.212
我好像把Overlay Surface记反了...希望没有修到推文
※ 编辑: vintw 来自: 220.136.8.212 (03/22 02:20)
1F:推 CHCOOBOO:我是直接把ftp做成网路硬碟来播... 03/22 07:25
2F:→ CHCOOBOO:不过光世代2M上传大概顶多只能应付700kbps的rmvb播放 03/22 07:25
3F:→ KinpleRadio:请问能 概要说明 FTP播放串流??? 需具备哪些软体呢?? 03/22 09:24
4F:推 CHCOOBOO:在要挂成硬碟的电脑安装NetDrive 设定好就会变成硬碟了 03/22 11:03