我正在构建一个服务器端html渲染浏览器,它呈现html并将jpeg发送到移动客户端。我需要弄清楚如何构建一个服务器来抓取jpeg并将它们在会话中流式传输到我将在j2me中编写的客户端
答案 0 :(得分:0)
“live”的含义并不完全清楚,但我猜你正在谈论向服务器端进程发出请求,该进程呈现传入的URL并返回图像。我知道这样做的最简单方法之一是使用Java和SWT。您可以使用SWT browser widget并捕获画布,然后将其转换为您想要的任何图像类型。浏览器小部件使用firefox来呈现页面,因此它们应该看起来很不错。
答案 1 :(得分:0)
我会编写一个servlet,一次为一个jpeg服务,以及一个经常请求下一个jpeg的midlet。
答案 2 :(得分:0)
嗯,有比普通JPEG更好的解决方案。我已经实现了这样的系统,你最好使用MPEG-2,MPEG-4 ASP,H.264等视频编解码器而不是JPEG,并将更新发送为p帧(即前面的增量)图片),如果“太大”更改(或错过更新,或新客户端添加到现有流),请发送i帧。
即使不使用视频编解码器,发送差异通常也会更好。使用一些其他机制来编码差异。
就如何获取缓冲区而言,您可以使用多个帧缓冲区进行渲染,并设置帧缓冲区代码以在进行更改时启动计时器,并且在发生更改时发送周期性更改,自从上次更改(尚未发送)以来有足够的时间发送更新(可能比第一个值更短的时间),并且还可能包括某种强制更新可以在某些事件中调用的闪存(如果你例如,可以从浏览器中获取页面加载完成指示,您可以通过更改chrome等在Firefox中进行一些工作。
[加入]
有关其他解决方案的示例,请查看远程桌面协议和程序,如VNC,RDP(Windows远程桌面)等 - 这些都是他们正在做的事情,再次使用更高级的压缩和损坏区域跟踪。
对于帧缓冲区,您可以使用标准的linux / etc帧缓冲区代码(可能是最简单的),甚至可以使用类似XVFB的东西(这使您可以访问有关事情发生变化的原因和原因的更多信息而不是原始帧缓冲区。)