fedora 9下驅動網路攝影機採集映像手記

來源:互聯網
上載者:User

最近一個月,在做視屏映像採集方面的項目。我安裝了的是fedora 9。在fedora 9下讓網路攝影機採集資料可謂是費盡了我半個月的時間。看似簡單的問題,不知道我為什麼做了這麼長時間。
   首先,網路攝影機要有保證。現在我發現市面上的網路攝影機晶片很多都是linux萬能驅動無法無法驅動的。如果我沒猜錯的話,可能你現在手裡的網路攝影機就是 linux萬能網路攝影機驅動不支援的。為了能在linux下網路攝影機正常工作。最好是去買一個中星微3xx的網路攝影機(最常見的是中星微301,中星微303 等),這些都是linux萬能網路攝影機驅動能支援的。中星微比較老版本的網路攝影機一般都能驅動。
   先說下如何看網路攝影機廠商和產品系列。在linux下用命令

#lsusb<br />Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />Bus 002 Device 003: ID 0ac8:301b Z-Star Microelectronics Corp. ZC0301 WebCam<br />Bus 002 Device 002: ID 0e0f:0002<br />Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub<br />

其中帶WebCam或者是USB Cammera字樣的就是你的網路攝影機資訊。上面橘黃色的是我網路攝影機資訊。
ID:0ac8 :301b  其中0ac8中星微廠商代號,後面的301b是該產品系列號。廠商代號是全球唯一的。只要該代號是0ac8,就說明該網路攝影機是中星微的。
在windows下,看網路攝影機資訊步驟如下:
我的電腦右鍵-->裝置管理-->影像裝置-->雙擊-->詳細資料

中,VID_後面是廠商代號。PID_後面是產品系列號。
    網路攝影機有了之後就開始安裝網路攝影機驅動。由於fedora 9,已經整合了UVC驅動,這個驅動裡面其實是已經有了支援海量的網路攝影機的驅動。但是由於UVC不支援V4L1編程,支援持V4L2編程。現行了大多關於 映像採集的都是基於V4L1編程的。如果你的核心是自己下載的核心源碼,那麼在編譯核心的時候,不要把UVC選上就是了。
    然後安裝萬能驅動,網上的linux網路攝影機萬能驅動都很多。但是支援核心2.6.25或者更高版本核心的不多。經過我的多次實驗,用不同的核心版本去安裝 各種網路攝影機萬能驅動,發現,只有gspcav1-20071224這個版本。其實這個版本應該是該驅動的終結版本,它原本是由一個德國醫生開發的,現在已 經不對這個驅動做更新了。
   下載後直接安裝這個驅動,編譯的時候通不過。
   首先下載SDL-1.2.10.tar.gz。

#tar xzvf SDL-1.2.10.tar.gz<br />#./configure<br />#make<br />#make install

然後下載spcaview-20051212.tar.gz

#tar xzvf spcaview-20051212.tar.gz<br />#make<br />#make install

給spcaview添加環境變數

export<br />PATH=".:/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin"

此過程中,會遇到asm/page.h找不到的問題,page.h這個檔案在/usr/src/kernels /2.6.25-14.fc9.i686/include/asm-x86/page.h。把這個page.h檔案複製到/usr/include /asm下就ok了。
 
安裝方式USB網路攝影機驅動
下載安裝gspcav1-20071224.tar.gz

#./gspca_build

檢查時候安裝成功方式如下

#lsmod | grep gspc<br />gspca 646884 0<br />videodev 30208 2 zc0301,gspca

出現上面的資訊說明安裝成功了。
如果裝置已經載入就會出現下列資訊

#ls -lh /dev/video0<br />crw-rw---- 1 root root 81, 0 2009-11-01 21:04 /dev/video0

現在可以來測試網路攝影機了

# spcaview -d /dev/video0 -f jpg -s 320x240

用上面的命令看看效果。
我的效果如下。哈哈
 
對於部分錯誤的解決辦法參考下面內容
常見錯誤
如果運行spcaview命令後出現如下錯誤資訊:
spcaview -d /dev/video0 -f jpg -s 320x240
Spcaview version: 1.1.7 date: 06:11:2006 (C) mxhaard@magic.fr
size width: 320 height: 240
Initializing SDL.
SDL initialized.
bpp 3 format 21
Using video device /dev/video0.
Initializing v4l.
ERROR opening V4L interface
: No space left on device
.
參考地址中對此問題的解釋和解決方案是:
Problem
When other USB devices are present on the same host controller bus as the camera, the bandwidth requirements of the spca5xx driver are not being met, with some hardware configurations. The spca5xx driver is asking for more bandwidth than is available which results in the following error messages:

No space left on device
can't open /dev/video0: No space left on device.

There is a very good howto for the Spca5xx driver at https://help.ubuntu.com/community/Spca5xx
if you haven't encountered the “No space left on device” error message.
-----------------------------------------------
Solutions
1.    Solution 1 - Put the camera on a separate USB host controller bus.
2.    Solution 2 - Compile and install the modified spca5xx source code.
3.    Solution 3 - Buy an separate USB controller card. (This is a last resort solution which I wanted to avoid at all cost.)
----------------------------------------------
說明:usb匯流排佔用頻寬不夠,
讓網路攝影機獨佔一個usb卡可以解決。如果無條件,可以參考參考地址中的方法2解決。因為我有個USB卡,所以,簡單的讓網路攝影機獨佔這個卡就解決了。

 

 

 

 

 

 

著作權申明:
轉載文章請註明原文出處http://blog.csdn.net/feiyinzilgd/archive/2010/02/09/5303078.aspx

並請聯絡譚海燕本人或者前往譚海燕個人首頁留言

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.