none
如何做到局域网内屏幕同步显示?(录制+广播) RRS feed

  • 问题

  • 我现在需要做一个程序, 需要在局域网中, 将一台计算机的屏幕内容同步显示到另一台(或一些)计算机, 由于可能涉及到Surface等无线设备, 所以使用软件的方式应该更加合适.

    我现在的思路是: 在设备中截图, 然后将图片压缩为Jpeg, 再转换为字节流通过Socket传输到另一台设备. 这样做有一些成效, 但似乎网络负载会比较大, 图片的编码解码等也是一个问题.

    我在考虑是否有一些库或工具能够实现我想要的功能, 需要能够用代码控制连接的执行.

    有没有人能够解答呢? 不胜感激.

    -------------------------------

    我在网上已经找到了一些解决方案, 但大多是采用远程桌面协议的, 但这样做视频流畅度实在不敢恭维.

    有没有什么解决方案, 能够使得画面能够流畅地广播道其他设备呢? 延迟越小越好


    • 已编辑 Lymim 2014年11月3日 7:35 补充
    2014年11月3日 3:24

答案

  • @Lymim,

    嗯,我理解问题的时候以为你做的是TeamViewer类似的软件。根据我对这个软件使用的理解,确实因为网络环境和画面变化的时候传输会变得模糊。我的建议是你可以专门针对这种传输图像的质量的问题去咨询网络相关的论坛或者是WCF论坛,这样效率会高一些,我对这方面还不是很熟悉。



    Barry
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 Lymim 2014年11月13日 10:01
    2014年11月5日 10:07
    版主

全部回复

  • 你好,

    MSDN文档里我查到了这样一个类库,或许可以满足这样的需求,请看这里:

    http://msdn.microsoft.com/en-us/library/bb968809.aspx

    关于这个类库,有一篇博客介绍了我们该怎么去用这样的API

    http://blogs.msdn.com/b/rds/archive/2007/03/23/writing-a-desktop-sharing-application.aspx?PageIndex=3

    另外从Win 8 开始API换成了Desktop Duplication API http://msdn.microsoft.com/en-us/library/hh404487(v=vs.85).aspx

    不过这些都是基于RDP的,但是他应该是可以实现你对远程机器的操作,具体的话可能你需要看下这个API的详细内容再来确定你需要不需要使用它。

    如果你只是去做录视频并且传输的话,建议还是用你的Socket的方式,

    不过如果你用的是.NETSocket http://msdn.microsoft.com/en-us/library/system.net.sockets.socket(v=vs.110).aspx  建议你咨询WCF forum

    https://social.msdn.microsoft.com/Forums/vstudio/en-US/home?forum=wcf

    三方库的话去三方库专门的论坛问。

    整个帖子的核心问题跟WPF感觉相关性并不是太大。



    Barry
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年11月4日 7:59
    版主
  • 感谢您的回答.

    我已经尝试过了多种方法, 您提到的API和其他方法也包括在内.

    我已经发现问题的关键并不在网络传输, 而是在于图像的编码和解码, 我的目标并不是纯粹的桌面共享和远程操控, 而是强调两个屏幕所显示的内容的绝对同步, 这就要求帧率和图像质量必须足够的高.

    目前我找到的并且能够测试的技术中, 最接近我的目标的就是AirPlay, 它能够将iPad的图像以可以忽略的延迟同步到PC上, 但即使如此, 它在遇到频繁的画面变化时, 画面也会比较模糊, 只有画面静止后, 才会慢慢变得清晰.

    可能是我没有正确的表达自己的意思, 至于放在WPF区也只是因为我做的程序是基于WPF的.

    再次感谢您的回答!

    2014年11月5日 4:07
  • @Lymim,

    嗯,我理解问题的时候以为你做的是TeamViewer类似的软件。根据我对这个软件使用的理解,确实因为网络环境和画面变化的时候传输会变得模糊。我的建议是你可以专门针对这种传输图像的质量的问题去咨询网络相关的论坛或者是WCF论坛,这样效率会高一些,我对这方面还不是很熟悉。



    Barry
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 Lymim 2014年11月13日 10:01
    2014年11月5日 10:07
    版主