将 Android 手机用作网络摄像头和监控摄像头
通过 Skype 将 Android 手机用作网络摄像头或远程监控摄像头
引言
本文介绍了如何通过 Skype 或 VLC Media Player 或任何使用 DirectShow API 的应用程序,将 Android 手机用作网络摄像头或远程监控摄像头。 这里使用的 Android 应用程序可以在这里找到,源代码可以在这里找到。
背景
如果您恰好有多部 Android 手机,并且正在考虑如何利用旧的 Android 手机,除了将其出售之外,那么本文适合您。
使用应用程序和源代码
我开发的 Android 应用程序能够流式传输 MJPEG。 它使用 NanoHttpd 并扩展它以支持运动 JPEG。
每当捕获视频帧时,它都会作为一系列 JPEG 图像进行流式传输,如下所示。
private class VideoStreamingTask extends AsyncTask {
@Override
protected Void doInBackground(DataStream... videoStreams) {
isStreamingVideo = true;
byte[] data = null;
while (true) {
if (!isStreamingVideo)
break;
DataStream videoStream = videoStreams[0];
try {
OutputStream os = videoStream.getOutputStream();
if (os != null) {
data = getSnapshot();
if (data == null)
continue;
os.write(("Content-type: image/jpeg\r\n" +
"Content-Length: " + data.length +
"\r\n\r\n").getBytes());
os.write(data);
os.write(("\r\n--" + NanoHttpd.MULTIPART_BOUNDARY + "\r\n").getBytes());
os.flush();
}
} catch (IOException e) {
Log.e(TAG, "[doInBackground] Error writing stream", e);
break;
} catch (Exception e) {
Log.e(TAG, "[doInBackground] General exception", e);
break;
}
}
return null;
}
@Override
protected void onPostExecute(Void result) {
}
}
查看 com.mymobkit.net 包下的 Java 类,您可以找到使用 NanoHttpd 在 Android 应用程序中托管 Web 服务器的各种 Java 类。
通过使用 Android 应用程序,一旦您启动控制面板,您应该能够通过 Chrome 浏览器访问 Web 界面。 开启监控摄像头,您应该能够远程查看摄像头。 单击“媒体信息”按钮,您可以看到 MJPEG 流的 URL。
显示 Web 控制面板 URL 的图片
显示 MJPEG URL 的图片
为了使 Skype 使用 MJPEG,请下载并安装 IP Camera Adapter 或 IP Camera [JPEG/MJPEG] DirectShow Filter。 以下是您在 Skype 中应该看到的屏幕截图。 您应该看到 IP Camera Adapter 的 MJPEG Camera,或 IP Camera [JPEG/MJPEG] DirectShow Filter 的 IP Camera [MJPEG/JPEG]。
现在有了 MJPEG url,并确保通过 Web 控制面板打开了摄像头,打开您的 Skype。
执行以下步骤
- 单击工具 > 选项
- 在视频设置下,选择“MPJEG Camera”(我正在使用 IP Camera Adapter)
- 单击 WebCam 设置
- 将 MJPEG url 粘贴到“摄像头源 URL”文本框中
- 单击“自动检测”以确保 URL 正常工作(确保摄像头已打开)。
- 如果一切正常,请单击“确定”。
更改以下配置以允许 Skype 自动接听视频通话。
- 单击工具 > 选项
- 在“通话”下,单击“通话设置”
- 单击“显示高级选项”
- 勾选“自动应答来电”。
- 勾选“当我通话时自动开始我的视频”
完成所有配置后,现在是您进行测试的时候了。 创建另一个 Skype id 并从另一台机器上使用该 id 登录。 在我的例子中,我在平板电脑中安装了 Skype,并添加了我在 Android 手机上使用的 Skype id.
如果您现在进行视频通话,您应该看到以下内容。
使用 VLC Media Player
VLC Media Player 还支持使用 MJPEG 进行网络流式传输。 您可以打开网络流并远程观看视频。