利用DroidCam將手機攝像頭打造成電腦攝像頭

1.目的
現在許多同學的電腦上沒有攝像頭,但是隨着智能手機的普及,大多數同學都有帶攝像頭的手機。而智能手機的攝像頭比電腦的usb攝像頭的效果好很多。那可不可以把手機攝像頭用在電腦上來網絡聊天呢,其實這是可以的,這裏我們需要藉助DroidCam軟件來讓手機攝像頭變成電腦攝像頭。

2. 環境
本人親測通過的軟硬件環境:
安卓手機一部(小米1S)MIUI5(Android 4.1.2)
PC機一臺(Windows 7)

DroidCam Client 5.0.1.exe
DroidCam 5.0.2.apk
adb 1.0.32

軟件我都上傳了,可在文末下載。

3. 步驟
3.1 首先在手機上安裝DroidCam 5.0.2.apk

3.2 接着在電腦上安裝DroidCam Client 5.0.1.exe
注意安裝時需要聯網下載聲音驅動,這樣手機的話筒還可以用來作爲電腦的話筒使用。

本人之前試驗過網上流傳的DroidCam一個較老的版本1.4.2,結果發現這個版本分辨率只能支持320x240,而改用5.0版本以後分辨率可以達到640x480

3.3 將以下3個文件放入C:\Windows\System32
adb.exe
AdbWinApi.dll
AdbWinUsbApi.dll

注意adb的版本,本人之前試驗多次失敗的原因可能是adb版本太老,不支持安卓4.0。而換用adb 1.0.32後,就成功了。


>adb version
Android Debug Bridge version 1.0.32



3.4 連接攝像頭
這裏我只介紹通過USB方式連接攝像頭。

3.4.1 設置手機,開發者選項-->打開USB調試
3.4.2 將手機數據線插入電腦的USB口。
3.4.3 顯示要不要打開USB存儲,這個無所謂,我們選擇不打開就可以。
3.4.4 在電腦上關閉所有和安卓有關的程序,比如金山手機控,豌豆莢等等

3.4.5 電腦上打開命令行,輸入

>adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
556607e8 device


出現以上信息代表沒問題

然後輸入

>adb forward tcp:4747 tcp:4747


如果失敗,請檢查是否有別的程序控制了安卓手機
輸入

>netstat -ano | findstr "5037"
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 1704
TCP 127.0.0.1:5037 127.0.0.1:52111 TIME_WAIT 0
TCP 127.0.0.1:5037 127.0.0.1:52174 TIME_WAIT 0

這裏可發現1704號進程使用了5037端口,很有可能1704號進程就是金山手機控,豌豆莢等等這類程序,請殺死它們。


3.4.6 以上都成功以後
打開手機端的DroidCam,再打開電腦端的DroidCam

3.4.7 電腦端選擇USB圖標,點擊Start
[img]http://dl2.iteye.com/upload/attachment/0105/7485/df1fc2df-1e44-300b-9c06-c99a23f0fb55.png[/img]

OK了,可看到圖像,成功了。

不用攝像頭的時候電腦端記得按Stop,以節約手機的電量。

4. 測試(3款工具)
4.1 使用 Win7攝像頭預覽.exe
(附件testTool有下載)
設備推薦使用DroidCam Source 1

4.2 [url=http://batchloaf.wordpress.com/commandcam/]commandcam[/url]
(附件testTool有下載)

>commandcam /devlist
http://batchloaf.wordpress.com/CommandCam
This version 24-1-2013

Available capture devices:
Device name: DroidCam Source 3
Device name: DroidCam Source 1
Device name: DroidCam Source 2
Device name: DroidCam Source Mini (240p)


注意這裏記下4個攝像頭的順序,它們的id分別爲0,1,2,3。推薦用DroidCam Source 1,所以他的id爲1,這個後面用java寫攝像頭程序有用。

4.3 [url=http://www.ffmpeg.org/]FFmpeg[/url]
(由於程序太大,不附在附件裏了,請去官網自行下載)

4.3.1 確認攝像頭的名字

>ffmpeg -list_devices true -f dshow -i dummy
ffmpeg version N-69351-gfb34c58 Copyright (c) 2000-2015 the FFmpeg developers
built on Jan 28 2015 02:25:52 with gcc 4.9.2 (GCC)
[dshow @ 003cf9a0] "DroidCam Source 3"
[dshow @ 003cf9a0] Alternative name "@device_pnp_\\?\root#media#0000#{65e877
3d-8f56-11d0-a3b9-00a0c9223196}\global"
[dshow @ 003cf9a0] "DroidCam Source 1"
[dshow @ 003cf9a0] Alternative name "@device_sw_{860BB310-5D01-11D0-BD3B-00A
0C911CE86}\{961A218F-3CA2-4041-98B1-066B8B33487E}"
[dshow @ 003cf9a0] "DroidCam Source 2"
[dshow @ 003cf9a0] Alternative name "@device_sw_{860BB310-5D01-11D0-BD3B-00A
0C911CE86}\{9E2FBAC0-C951-4AA8-BFA9-4B196644964C}"
[dshow @ 003cf9a0] "DroidCam Source Mini (240p)"
[dshow @ 003cf9a0] Alternative name "@device_sw_{860BB310-5D01-11D0-BD3B-00A
0C911CE86}\{FC9B8228-83D5-4C8D-8656-45CBA9E237FB}"
dummy: Immediate exit requested


4.3.2 確認分辨率

>ffmpeg -list_options true -f dshow -i video="DroidCam Source 1"
[dshow @ 037762c0] DirectShow video device options (from video devices)
[dshow @ 037762c0] Pin "CapturePin" (alternative pin name "1")
[dshow @ 037762c0] pixel_format=bgr24 min s=640x480 fps=0.2 max s=640x480 fps=50


這邊確認分辨率是否是640x480,老版的DroidCam分辨率只能支持320x240

4.3.3 視頻錄製測試

>ffmpeg -f dshow -s 640x480 -i video="DroidCam Source 1" webcam.flv


注意按q退出。然後可發現一個文件webcam.flv,可以用播放器打開觀賞我們剛剛錄製的視頻。

5. 攝像頭可以用來幹嘛
推薦學習[url=http://fivedots.coe.psu.ac.th/~ad/vbi/index.html]Vision-based User Interface Programming in Java[/url]
這本書講了如何用java來做攝像頭程序和遊戲。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章