繁体   English   中英

Java是否足够快以进行实时屏幕共享?

[英]Is Java fast enough to do live screensharing?

在过去的几个月里,开发人员和我一直在制作一个屏幕共享小程序,它可以流式传输到像Wowza或Red5这样的媒体服务器,但无论我们做什么,我们都有大约5秒的延迟,这对于现场来说太长了人们互相交流的应用程序。 我们尝试过xuggle,不同的编码器,不同的播放器,不同的网络,不同的媒体服务器,甚至本地流媒体,都有很长的延迟。

所以,我开始怀疑......

Java是否足够快以进行实时屏幕共享?

我见过很多用Java编写的屏幕录制小程序,但没有一个是直播的。 现在所做的一切,比如GoToMeeting,似乎都使用C ++。 我想也许是有原因的。

这不是压缩问题。 使用ScreenVideo,我们将一小时的流压缩到大约100 MB,我们有足够的带宽。 处理器也不会因压缩而过载,但似乎需要花费太多时间。 我们从BigBlueButton提取的一些代码中获得了最好的结果,但是,延迟仍然非常糟糕。

另一方面,流式传输WebCam非常好用。 几乎没有延迟。 所以,问题是小程序。

我能想到的另一个想法是以某种方式用Java模拟WebCam。 不确定这是否会更快。

想法? 或者我应该放弃Java并在C ++中执行此操作? 我不愿意这样做,因为那时我将不得不为不同的平台创建不同的版本,但如果这是唯一的方法,那是唯一的方法。

许多视频流子系统故意缓冲,以便连接中的光点不会影响视频,但这在录制的媒体场景中更有意义。

确保这些系统已关闭或关闭缓冲。

此外,虽然这不是完全科学的,但您可以在传出和传入的计算机上运行类似wireshark的应用程序,并尝试查看流量实际需要多长时间。 如果它非常快,那么我会更认真地考虑缓冲是个问题。

如果你在Windows上,也许只是运行任务管理器/网络选项卡就可以证明这一点(而不是安装像wireshark这样的东西,这并不困难......只是想建议一种快速的方法来检查)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM