mjpg_streamer命令輸出詳解

在基於Web的視頻監控解決方案通過開源軟件ZoneMinder實現,通過Web訪問的關鍵在於mjpg-streamer,因爲它可以通過HTTP方式訪問Linux UVC兼容攝像頭。本文對mjpg_streamer命令使用方式和輸出方式進行詳細分析。

mjpg_streamer用於從攝像頭採集圖像,並把他們已流的形式,通過基於IP的網絡傳輸到瀏覽器端,例如火狐瀏覽器。在分析其源碼過程中發現,其主要圍繞Linux的V4L2接口展開,它的輸出插件分爲input-plugins、output-plugins兩種。

下面對於啓動視頻監控的命令,如圖1所示,下面進行解釋。

image.png

圖1

V4L2:是Linux內核中關於視頻設備的驅動框架,爲應用層視頻設備程序開發提供了統一的模型和接口,藉助該驅動用戶可以實現對視頻輸入,輸出接口的統一管理。USB攝像頭在工作時,需要V4L2驅動框架的支持,這是在Ubuntu Linux內核中設置爲自動加載的,用戶不用擔心。我們在編譯內核的過程中可以清晰查看到,如圖2 ~ 圖5所示。

image.png

圖 2

image.png

圖 3

image.png

圖 4

image.png

圖 5

不過,只有相關驅動和依賴關係全部匹配並配置正確,攝像頭設備才能正常工作。對應設備文件是/dev/video0


通過這條命令輸出我們可以發現圖像分辨率只有 640 X 480,這是VGA的標準分辨率,系統通過將有序的圖片序列轉換爲視頻流,在ZoneMinder中採用H.264壓縮方式來完成視頻流的壓縮任務。整個壓縮過程完全有軟件方式完成。對CPU處理能力要求較高。在zoneminder系統中的ffmpeg軟件也是採用H.264視頻壓縮標準。


  • 格式:YUV 它是一種採用格式,說明系統中USB攝像頭採集YUV格式的原始圖像。


  • 圖像格式JPG,輸出質量爲80%


  • 通訊端口爲TCP 8090,這個值可以修改。


其它啓動方式:

#mjpg_streamer -i “input_uvc.so -y -d /dev/video0 -r 320x240 -f 10”

不指定端口默認爲8080


更多內容大家可以訪問國內首發《基於Web的視頻監控系統-ZoneMinder應用》原創課程。

https://edu.51cto.com/course/17700.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章