我想使用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調用腳本,並查看您獲得的結果 –