UVC和V4L2的關係(轉載)

  • UVC是一種usb視頻設備驅動。用來支持usb視頻設備,凡是usb接口的攝像頭都可以支持php

  • V4L2是Linux下的視頻採集框架。用來統一接口,嚮應用層提供APIhtml

UVC:linux

USB video class(又稱爲USB video device class or UVC)就是USB device class視頻產品在不須要安裝任何的驅動程序下即插即用,包括攝像頭、數字攝影機、模擬視頻轉換器、電視卡靜態視頻相機框架

最新的UVC版本爲UVC 1.5,由USB-IFUSB Implementers Forum)定義包括基本協議及負載格式 ide

這個連接是Linux中對UVC支持的相關描述工具

V4L2:lua

Video4Linux或V4L是一個視頻截取及設備輸出API,以及Linux的驅動程序框架,支持不少USB攝像頭電視調諧卡以及其餘設備。Video4Linux與Linux內核緊密集成
idea

二者之間的關係spa

簡單的講V4L2就是用來管理UVC設備的而且可以提供視頻相關的一些應用程序接口。那麼這些API怎麼使用或者能被誰使用呢。在Linux系統上有不少的開源軟件可以支持V4L2。常見的有FFmpeg、opencv、Skype、Mplayer等等。視頻

 

這樣一個UVC可以進行視頻顯示的話應該知足三個條件:

  一、 UVC的camera硬件支持

  2 、UVC驅動支持,包括USB設備驅動以及v4l2的支持

  三、 上層的應用程序支持

linux UVC驅動是爲了全面的支持UVC設備。它包括V4L2內核驅動程序和用戶空間工具補丁。這個視頻設備或者USB視頻類的USB設備類的定義定義了在USB上的視頻流的功能。UVC類型的外設只須要一個通用的驅動支持就可以正常工做,就像USB 大容量存儲設備同樣。

UVC的linux  kernel驅動程序和支持的硬件設備都在這裏有相關的描述:http://www.ideasonboard.org/uvc/。

 

判斷一個攝像頭是否屬於UVC規範能夠使用以下方法:

  1 使用lsusb命令或其餘硬件信息查看工具,找出攝像頭的設備號(Vendor ID)和產品號(Product ID)。

  2 查找是否有視頻類藉口信息

lsusb -d VID:PID -v | grep "14 Video"

若是兼容UVC,則會輸出相似信息

bFunctionClass 14 Video

bInterfaceClass 14 Video

bInterfaceClass 14 Video

bInterfaceClass 14 Video

若是沒有以上信息,則是non-UVC設備。

 

轉載自:

UVC&V4L2的關係

相關文章
相關標籤/搜索