2013-08-06 75 views
1

我有一個運行在計算機上的Python應用程序,它使用我的攝像頭,進行一些圖像處理並提供一些數據。如何使用Python設置攝像頭服務器?

現在,我想通過某種服務器或網站提供數據和視頻流,以便本地網絡上的任何計算機或程序都可以訪問數據和視頻流(可以訪問數據並查看視頻Feed)。

我知道如何使數據可用 - 我可以使用像Flask這樣的東西來設置HTTP服務器。

但是,我不太確定如何去使用類似的方式提供視頻流。我確實發現了this的問題 - OP與我有一個幾乎相同的情況 - 但答案在技術細節上相當缺乏。我還發現this答案,其中推薦的東西稱爲「flumotion」,但評論說,這是一個'尼克斯解決方案,我主要與Windows工作。

什麼是最好的方法,或最好的Python庫,使所描述的方式公開提供視頻流?

+0

是否必須將其集成到您的軟件中,然後用Python編寫或者將流保存到磁盤或將其重定向到其他軟件? – Claudio

+0

任何一種解決方案都可以工作,只要它能夠實時工作即可。 – Michael0x2a

回答

3

我曾經制作了一個完全用Python編寫的DVR,用於控制視頻採集卡的V4L2參數,並實現協議在低速無線鏈路上傳輸錄製的文件。對於流媒體,我嘗試了兩個VLCffserver。在this answer你可以找到很多我的VLC測試,這可能適用於你想做的事情。

因爲我已經刻錄的文件到磁盤,並將它們流式傳輸到本地網絡接口(也使用web2py用Python寫的),我結束了使用ffmpeg過程的流H264編碼,它記錄到磁盤並將其轉​​發到video loopback device。然後,當用戶訪問視頻配置屏幕的Web界面上的另一個ffmpeg過程將開始使用UDP從迴環設備傳送視頻的視頻播放器:

ffmpeg -loglevel quiet -f v4l2 -i /dev/video1 -f h264 -preset ultrafast udp://hostip:port

這是值得大家注意的是,由於這個流是原始流h264流,用戶必須讓VLC插件能夠查看它,因爲大多數基於閃存的視頻播放器不能處理流的原始流。

相關問題