我想使用套接字流式传输桌面屏幕截图。 我不知道这样做的确切方法,所以我选择了AWT的机器人:)
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(screenRectangle);
问题是来自机器人的图像太大而无法制作流。 1440x900捕获大约 0.3MB ,我无法快速传输它以创建平滑的24fps流。
目前我正在使用TCP套接字,因为我在将图像切割成多个部分并使用UDP发送它时遇到了问题。
可能这不是正确的方法,但是什么呢?如何传输高清视频流?
提前致谢
答案 0 :(得分:1)
如何传输高清视频流?
通常作为视频流,“图像组”不是。视频编解码器通常具有进一步压缩图像组的聪明方法,例如,只显示与前一帧不同的下一帧的部分。
您可能还希望将图像编码为高压缩JPEG。
话虽如此,我怀疑你会以像素为单位获得非常好的传输速率。
答案 1 :(得分:1)
我认为您需要外部库来创建视频(可能与平台有关)。
使用图像的方法很简单,但您需要发送每个帧。当您使用视频时,编解码器的大小较小,因为它以完整大小发送一些帧,而其他帧仅包含已更改的图片部分 见这里:
http://en.wikipedia.org/wiki/Key_frame
http://en.wikipedia.org/wiki/I-frame
这里有一些我刚开始搜索的开源库:
https://code.google.com/p/java-screen-recorder/
http://www.xuggle.com/xuggler/
我想您也可以找到一些用于从图像创建视频流的库...