0

我有一个不断填充 jpg 图像的目录。我想在网页中像电影一样显示这些图像。

我试过的是:

function slideit() { 
 $.get("test.php", function(show) { if(show != "") { 
 document.getElementById("movie").innerHTML="<img src=\"data:image/jpg;base64," + show + "\" />", 
 setTimeout('slideit()', 0) } } ); };

PHP文件是

function getrunpic()
    {
    $file=trim(shell_exec('ls directory | sort -n | grep jpg | head -1'));
    $file="directory/".$file;
    $imagedata = file_get_contents($file);
    $pic = base64_encode($imagedata);
    unlink($file);
    return $pic;
    }

echo getrunpic();

我也尝试过使用 JSON 编码。

问题是从 php 到 javascript 的数据传输需要太长时间。(每秒只显示大约 8 张图片;我需要 25 张)。

有没有人有想法让这个过程更快?

提前致谢

4

2 回答 2

2

这不是要走的路。您应该在服务器端创建电影,然后在客户端进行流式传输。这是利用编解码器最基本功能(如压缩、关键帧等)的唯一方法,并且至少能够保证观看者的一致性。

请参阅:使用 PHP 创建视频文件

于 2012-05-16T10:06:29.043 回答
1

我认为这不会是“从 php 到 javascript”的转移——更有可能是从服务器到浏览器的转移导致了问题。要每秒发出 25 个单独的 HTTP 请求,每个请求都需要在 40 毫秒内完成(尽管并发浏览器连接和重叠请求可能会稍长一些)。

加载 yahoo.com 的主页并观看 Firebug 的“Net”面板,过滤后仅显示图像的 HTTP 请求,平均请求显示以下时间:

  • 1ms 阻塞
  • 1ms DNS 查询
  • 125ms 连接
  • 124 毫秒等待
  • 116ms 接收

...这意味着您总是很难使用单独的请求获得 25 帧/秒。

您是否考虑过使用流媒体(视频)格式?在mediacollege.com上有一些教程,在这个维基百科页面上有更多信息。

于 2012-05-16T10:08:37.023 回答