CAM是利用计算机,利用DroidCam将手机摄像头打造成计算机摄像头

利用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

105302555.png

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

不用摄像头的时候电脑端记得按Stop,以节约手机的电量。

4. 测试(3款工具)

4.1 使用 Win7摄像头预览.exe

(附件testTool有下载)

设备推荐使用DroidCam Source 1

4.2 commandcam

(附件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  FFmpeg

(由于程序太大,不附在附件里了,请去官网自行下载)

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. 摄像头可以用来干嘛

推荐学习Vision-based User Interface Programming in Java

这本书讲了如何用java来做摄像头程序和游戏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值