【问题标题】:Display image as 'video'将图像显示为“视频”
【发布时间】:2011-12-13 22:47:13
【问题描述】:

我有一个图像文件(例如 img.png),它使用 java 程序每 20-30 毫秒更新(覆盖)一次。

现在,我希望客户端能够“观看”图像的变化(它看起来像一个视频流)。

我使用 Javascript 每 20-30 毫秒更新一次图像,但效率不高,因为它消耗了大量的处理能力。我也尝试过使用 Ajax 和 jQuery。

关于如何提高性能的任何建议?我可以使用像 jwPlayer 或 Flow Player 这样的播放器吗?我应该使用不同且更高效的方法吗?

谢谢。

PS。我已经使用 JApplet 实现了它,但我想避免这种解决方案。

【问题讨论】:

    标签: java javascript jquery html ajax


    【解决方案1】:

    您可以通过在末尾附加一个随机字符串来更新图像。

    function update(){
        $('#image').attr('src', $('#image').attr('src')+'?'+Math.random());
    }
    
        setTimeout("update()",150);
    

    【讨论】:

    • 这就是我正在做的。但它消耗了大量的处理能力。
    【解决方案2】:

    听起来你只是想要一个幻灯片; JavaScript 中有超快速高效的幻灯片,我很懒所以这里是 jQuery 版本:http://mathiasbynens.be/demo/slideshow 如果你在使用它时遇到性能问题,那不是因为幻灯片

    【讨论】:

    • 我可以使用这个并将更新时间设置为30-40ms没有任何问题吗?
    • 你看了吗?第一个代码块: $(function() { $('.slideshow').slideshow({ timeout: 2000, speed: 300 }); }); speed: 300 以毫秒为单位
    【解决方案3】:

    您可以使用javascript计时器(setTimeout)eg url更新图像

    【讨论】:

    • 这就是我正在做的。但它消耗了大量的处理能力。我正在寻找更高效的东西!
    • @salamis 这不会占用太多的处理能力。此事件仅在所需的时间间隔内触发。
    • 但问题是所需的间隔太低了。例如 100-200 毫秒。这就是问题所在。
    • @salamis 然后可以使用 ffmpeg ffmpeg.org> 等库创建视频。创建视频后,您可以在“任何视频”播放器中播放。 FFMPEG 支持多种格式
    【解决方案4】:

    ..它消耗大量的处理能力

    请注意,“处理能力”与“带宽”不同。

    为了节省带宽,在服务器端将图像组装成视频并将视频流式传输到客户端会更有意义。视频压缩格式通常比一系列图像节省大量字节,因为它们可以在压缩图像时考虑到不同帧的相似部分。

    【讨论】:

    • 你能推荐一个 java 库来将帧编码成视频并在不使用小程序的情况下进行直播吗?
    • Flash 可以显示流式视频(并且比小程序更好)。至于图书馆,我没有经验。
    猜你喜欢
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多