2017-07-05 48 views
2

我想實現的是,我有一個與pi相機v2的樹莓3連接到我的本地wifi。我想從樹莓派傳送實時視頻到運行Ubuntu的計算機。在我的電腦上,我試圖用opencv實時處理該視頻。下面的代碼只是一個示例代碼,用於測試在我的Ubuntu計算機上來自樹莓派的視頻。我使用netcat來傳輸視頻,並在代碼下方列出了shell腳本。從Raspberry pi流視頻到Opencv應用程序在遠程計算機上

#include <opencv2/highgui/highgui.hpp> 
#include <opencv2/imgproc/imgproc.hpp> 
#include <iostream> 
using namespace std; 
using namespace cv; 

int main(int argc, char** argv) 
{ 


    VideoCapture cap; 
    cap.open("/dev/stdin"); 
    if (!cap.isOpened()) 
     return -1; 

    Mat edges; 
    namedWindow("edges",1); 
    for(;;){ 
     Mat frame; 
     cap>>frame; 
     imshow("edges",frame); 
     if(waitKey(30)>=0)break; 
    } 

    return 0; 
} 

這是在opencv中播放流的代碼。

  1. 首先我使用重定向流到我的opencv應用程序。 nc -l -p 5001 | ./app
  2. 然後運行我的樹莓相機並使用netcat進行流式處理 raspivid -t 999999 -o | nc x.x.x.x 5001 x是客戶端電腦的ip地址。

這對我不起作用,但我用mplayer 通過運行nc -l -p 5001 | mplayer -fps 31 -cache 1024 - 它完美的工作。

我想我的問題是我沒有正確捕獲我的opencv應用程序的流。我需要幫助。

+0

請嘗試和什麼你實際上是試圖實現更清晰一點,哪個代碼在哪裏運行,以及如何喲你編譯它等等。廣告它,你的代碼是不完整的 - 至少沒有頭文件。你使用什麼相機?你的網絡是什麼樣的?每臺計算機上運行什麼操作系統? –

+0

我想我已經說得更清楚了。如果你能提供任何建議,將不勝感激。 –

+0

我會在Raspberry Pi上運行'raspivid'並將5秒的視頻捕獲到Raspberry Pi上的本地磁盤文件中。然後使用'FTP'或'scp'將文件傳輸到您的Ubuntu並使用'./app

回答

1

我花了大約4個小時試圖使這項工作,並得到它在最後工作。我不是這是關鍵的一步,也沒有說明爲什麼一定,但我發現它所有的作品,如果我在我的Ubuntu 16 LTS的VirtualBox安裝以下軟件包:

libtbb2 
ffmpeg 
libavcodec 
libavcodec-dev 
libavformat-dev 
libtbb-dev 
libswscale-dev 
libgtk2.0-dev 
libtbb-dev 
libjpeg-dev 
libpng-dev 
libtiff-dev 
libjasper-dev 
libdc1394-22-dev 
libv4l-dev 
libx264-dev 

,並在我的樹莓派與運行相機:

raspivid -ih -w 1024 -h 768 -o - | nc 192.168.0.98 5001 

關鍵詞:樹莓派,RASPI,raspivid,攝像頭,OpenCV的,流,流,netcat的,NC,網絡,視頻

+0

完美運作。如果添加-t 0參數,它將無限期地流。謝謝 –

+0

非常好!祝你的項目好運。 –

相關問題