[英]OpenCV : Open Mobotix Camera Feed
我有一台Mobotix相機。 這是一台IP攝像頭。 在API中,它們為我們提供了獲取Feed的可能性
HTTP:// [ 用戶 ]:[ 密碼 ] @ [ip_adress]:[ 端口 ] /cgi-bin/faststream.jpg [ 選項 ]
我試過的是像普通網絡攝像頭一樣打開它:
cv::VideoCapture capture("http://...");
cv::Mat frame;
if (capture.isOpened())
// always false anyway.
while(1)
{
capture.read(frame);
cv::imshow("Hi there", frame);
cv::waitkey(10);
}
僅供參考: 開發人員Mobotix API文檔
編輯:現在感謝berak我只需要在選項中添加&data = v.mjpg:
?stream=full&fps=5.0&noaudio&data=v.mjpg
請注意,在v.mjpg中,只有[dot] mjpg很重要,你也可以把myfile.mjpg。
現在問題是Feed更新的速度。 我有2秒的延遲,加上進給非常慢。 當我更改MxJPG或mxg的流選項時,我得到一個損壞的圖像,其中字節沒有正確排序。
編輯:我試圖直接用mobotix控制中心更改攝像機參數,但只有分辨率影響我的OpenCV程序,而沒有實際改變我訪問圖像的速度。
對於最大速度使用fps = 0它在api文檔中
就像是
http://cameraip/cgi-bin/faststream.jpg?stream=full&fps=0
請參閱http://developer.mobotix.com/paks/help_cgi-image.html
faststream是mjpeg流(用於圖像捕獲),確保關閉mxpeg並選擇能夠提供足夠分辨率的最小圖像。 即使用640×480(設置相機webgui)使其工作,然后增加圖像大小。
請注意,這是用於圖像捕獲而不是視頻,您需要檢測每個jpeg的開頭和結尾,然后從接收緩沖區復制到內存中。
vlc可以處理mxpeg,但是需要從命令行啟動vlc --ffmpeg-format = mxg或者在gui中設置編輯選項ffmpeg-format = mxg,請參閱https://wiki.videolan.org/MxPEG
我知道這篇文章很老了,但我想回答遇到這個問題的其他人。 要獲得沒有幀速率限制的流,您需要使用不同的CGI命令:
http://<camera_IP>/control/faststream.jpg?stream=full&fps=0
根據相機的在線幫助:
http://<camera_IP>/cgi-bin/faststream.jpg (guest access)
http://<camera_IP>/control/faststream.jpg (user access)
“訪客”訪問的默認限制確實是2 fps,但可以從頁面管理菜單>語言和起始頁面進行修改。
有關如何從MOBOTIX攝像機檢索實時流的詳細說明,請訪問以下鏈接: https : //community.mobotix.com/t/how-to-access-a-live-stream-with-a-video -client-EG-VLC / 202
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.