2012-08-17 90 views
0

我有一個可執行文件,它使用cpp和c中的opencv庫開發。我想使用php腳本從本地主機上執行它。 我面臨的問題是,可執行代碼在從終端調用時會打開一個窗口(使用namedWindow打開的一種gui),但在嵌入式php腳本中調用時不會這樣做。 爲執行我已經嘗試執行,系統,但所有這些失敗。將OpenCV與php接口

更清晰:可執行文件的名稱 - > my_cv_gui,phpscript的名稱(頁) - > abcd.php

@terminal if i type "./my_cv_gui" ... window opens. 

@ terminal, if itype "php abcd.php" window opens 

abcd.php is part of my website. In web browser if i open "http://...../abcd.php", window DOESNOT open. Although other things in the executable work perfectly. 

我的系統配置

操作系統:Ubuntu的12.04 64

XAMPP for Linux 1.7.7

Apache 2.2.21

PHP 5.3 .8

Opencv 2.4.1

任何解決方案?

PHP代碼如下所示

<?php 

$output=shell_exec("gst-launch v4l2src device=/dev/video0 ! 'video/x-  raw-yuv,width=640,height=480,framerate=30/1' ! ffenc_flv ! flvmux streamable=true ! queue ! filesink location=/home/dev/my.avi > /dev/null &"); 

var_dump($output); 
?> 
+0

你可以把你正在使用的PHP代碼放入問題嗎? – 2012-08-18 04:37:05

+0

嘗試使用'$ output = system(「...」);'。 – 2012-08-18 04:48:00

+2

你想要什麼是不可能的。您無法通過http連接打開opencv窗口,也無法爲此打開任何窗口。如果你只是想執行這個程序,你需要給Apache訪問xorg,因爲在非xorg環境下運行它會導致程序失敗 – Robin 2012-08-18 21:39:22

回答

0

兩件事情,當你使用Apache工作,你應該永遠記住。

  1. 文件/文件夾權限。使用哪個Apache運行。
  2. MIME類型應添加到apache運行任何種類的多媒體組件。像這裏flv。然後嘗試運行php代碼並嘗試修復它。我會檢查我的服務器是否適合我。會更新你。

Biswadip。