我想使用USB摄像头(在小型C++/OpenCV应用程序中)并从PHP脚本中调用它。我的测试程序是这样的:在Linux/Apache上通过PHP脚本访问USB摄像头
int main(int argc, char **argv)
{
cv::VideoCapture C(0);
cout << "C.isOpened() = " << boolalpha << C.isOpened() << endl;
return 0;
}
PHP脚本是这样的:
<?php
exec(escapeshellcmd('/thepath/theapp'), $output, $result);
var_dump($output);
?>
当我把这个应用程序直接在命令行,则返回真。
当我通过php调用这个应用程序,像这样php -f /the_php_script.php
它返回true。
当我通过AJAX从一个html文件(带有按钮)调用php调用该应用程序时,它通过Apache,然后返回false。
所以,我的应用程序工作正常。我的PHP脚本也能正常工作。但是有一个许可或类似的东西阻止了PHP,通过Apache访问网络摄像头(用OpenCV库进行初始化),,但是权限足以让应用运行。
有人可以帮助我吗?任何想法?
谢谢!
编辑1:
经过一个建议,我试图用一个PHP脚本来开始我的应用程序,而无需使用AJAX的。我获得了相同的结果,即OpenCV 不能初始化服务器上的USB网络摄像头。
你可以检查,没有使用AJAX? –
你是什么意思?我需要一个AJAX请求来启动php脚本,不是吗? –
您并不需要用户使用AJAX来调用PHP脚本,现在尝试调用没有AJAX的正常HTTP调用脚本,并查看您获得的结果 –