在php中一秒钟显示30个视频帧


Display 30 video frames in a second in php

我写了一个嵌入式系统的c++程序。我的程序处理相机拍摄的图像(350 fps甚至更多),并对其应用一些机器视觉算法。我写了我的程序的结果,这是一个jpg图像在我的硬盘驱动器的特定位置(例如localhost/output/result.jpg)

现在我想编写一个PHP代码,用于每30毫秒或更快地显示此图像(这取决于我的c++程序....的输出)有时是30帧,有时是10帧或40帧,但从不超过40帧!!)视频帧彼此不相关,所以我不能使用流视频,因为这些算法假设帧是连续的....

有可能PHP代码读取了损坏的图像(因为一个程序想要写入,另一个程序想要读取)

我想在这里使用互斥的概念…创建一个标志(文本文件),这两个程序都可以访问,每当我的c++程序想要写入相同的位置设置标志高(在文本文件中写入一些东西),当它完成写入清除标志,所以当php代码看到标志等待,直到图像写入硬盘驱动器,然后显示它....

我熟悉c++,但对php完全陌生,我能够在php中显示图像,但我不知道如何使用计时器来解决上述问题。

我该怎么办?我把一个代码的工作,但我不想使用它,因为它使只有这部分网页被更新(因为while(1)) ?有没有别的解决办法?如果我不能每秒显示超过20帧,那么这种脚本语言的帧率是多少?什么因素在这件事中起作用?

感谢我代码:

<?php
while(1)
{
        $handle = @fopen("/var/www/CTX_ITX/Flag_File.txt", "r");
        if ($handle) {
                 if(($buffer = fgets($handle, 10)) !== false) 
                         {
                            if($buffer=="Yes)
                                {
                                    echo "<img src = "result.jpg" alt='test' '>";
                                }
                         }
    if (!feof($handle)) {
        echo "Error: unexpected fgets() fail'n";
    }
    fclose($handle);
}
sleep(.01); //10 ms pause before starting again ....
}
?>

PHP不适合您的任务。它响应请求。你的JS必须每30毫秒加载一次图像。
我建议你看看Node.JS和HTML5 WebSockets。这项技术将使您理论上发送图片足够快,而无需重新连接等(只有当您的连接足够快,以处理流量)