在过去的几个月里,我和一个开发者一直在研究一个屏幕分享小程序,这个小程序可以流到像Wowza或Red5这样的媒体服务器上,但不管我们做什么,我们都有大约5秒的延迟,这个时间太长了一个人们正在互相交流的实时应用程序。我们尝试过使用xuggle,不同的编码器,不同的播放器,不同的网络,不同的媒体服务器,甚至是本地流媒体播放,这都会造成很大的延迟。Java是否足以快速实现屏幕共享?

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

是Java的速度不够快,干的活萤幕?

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

这不是压缩问题。使用ScreenVideo,我们已经将一小时长的流压缩到大约100 MB,并且我们拥有足够的带宽。处理器在压缩过程中也不会过载,但似乎花费了太多时间。我们从BigBlueButton中抽出的一些代码获得了最好的结果,但延迟非常糟糕。

另一方面,流式传输Web摄像头很不错,而且速度很快。几乎没有延迟。所以,问题是小程序。

我能想到的唯一的另一个想法是用Java模拟WebCam。不知道这是否会更快。

想法?或者我应该放弃Java,并在C++中做到这一点?我讨厌这么做,因为那样我就不得不为不同的平台创建不同的版本,但如果它是唯一的方法,那就是唯一的方法。

+0

如果您降低屏幕分辨率,性能是否会提高? –

2012-03-10 03:14:08