求局域网屏幕广播完整方案(300分)

  • 主题发起人 主题发起人 心野
  • 开始时间 开始时间

心野

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,我现在的做法是截屏->转jpeg(CompressionQuality=50)->压缩->udp分包传送,然后客户端还原,鼠标另外传送,压缩后的图像大小约30~100k(视画面),程序能运行,可是客户端观看时不连续,有延迟(鼠标也不连续),曾试过传输时加上异或处理,可是会出现花屏,估计是丢包,不知哪位仁兄能帮帮小弟?肯定有办法的,我看过一个电子教室软件广播非常连续的,好像比vnc的还快。帮帮忙了,我现在在南京。
 
北京一家公司搞的不错

名字 是 世纪葵花数字传媒技术有限公司
www.kuihua.net
 
谢谢提供信息,可我现在征求的是解决方法。刚刚下了http://www.torry.net/displaying.htm上的代码,正在研究中。哪位大侠能点拨一下,不胜感激。
 
用VC做。
 
我不知道你这个和超级解霸里面的那种广播是不是一样的,如果是一样的,
我想应该没有多大的问题,我们能不能考虑使用stream的方法呢?我有一个
程序,有点象超级解霸的广播,但是这个家伙只是给了应用程序,没有源代码,
我只是随便找了两台电脑测试了一下,画面很流畅!
 
torry上有一个抓屏幕的控件 很好用
 
不会吧?抓屏幕?亏你想的出来啊,这样速度有限,这个不是好的做法,你要自己能程序处理那些视频文件才有好的速度。
 
谢谢各位的参与,其实问题我已经解决得差不多了,如楼上有位朋友所说,是用的http://www.torry.net/displaying.htm
里的screenspy这个控件,速度很快,我看了一下,他用的是分块传输加比较(UDP)的方法,第一次发送整屏,然后发送变化的块(先异或比较),过一段时间再发送完整的屏幕(防止花屏)。希望大家继续讨论,提些新思路。过段时间再散分。
to cqwty、JamesBond_L:我指的是截取电脑屏幕(桌面),不是播放的媒体文件
 
:心野
上面好多连接,
你下的是哪个?
 
截屏->传输->还原是最直接的想法,也是最笨的方法。我以前做的一个更夸张,大约1、2秒才传过去。如果实时性要求不高还可以这样弄,就是用你说的屏幕比较法,只传变化的和鼠标位置,pcanywhere就是这么做的。如果实时性要求高的化(比如同步播放电影)我想完善的解决方案应该靠比较底层的操作。比如把视频缓冲区的数据直接转发的网卡的数据缓冲区中。不过牵扯技术太多了,给你提供一点思路而已。
 
to 心野
其实截屏幕和播放媒体没有多大的区别,它们也有相通的地方,
如果我们能够做到播放媒体文件那么流畅的话,为什么不这么
做呢?只要能够达到目的,提高效果,何尝不是一种很好的方法?
媒体文件那么大,都能够流畅的传输,截屏为什么不能呢?
 
to 天真:我下的是Screen Spy这个控件,下载安装后有三个控件,用起来很简单,带有范例,具体下载地址为:
http://www.torry.net/vcl/graphics/displaying/screenspy.zip
to zjc:谢谢你的意见,不过真要这样像说的那样实现起来,牵扯的技术太多了,我时间有限实现困难太大了。其实torry上的控件已经差不多够用了,速度很快。那个控件怎么截屏(应该还是调win api,不是directx),我没仔细看,不过压缩解压缩好像用的汇编,有时间还要研究研究。
to cqwty:我觉得还是有区别的,普通的windows窗口用截屏函数就可以截下来,但有些媒体文件却不行,截取下来的是黑屏(dos下的全屏游戏也一样,截不下来,原因我也不明白,希望有高人给我们这些后辈指点一下),你可以在播放时按printscreen键然后粘贴到画图版里看一下。如果是流媒体格式的文件(asf,rm)等,我觉得应该可以照你的说法,把文件从前往后读stream然后广播出去,客户端再按顺序播放。不知道对不对,这方面我不懂,说得不对大家指正。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部