使用OpenCV Python从Android智能手机捕获视频

我刚开始使用Python学习OpenCV,第一个教程开始于使用内置笔记本电脑摄像头或外部网络摄像头捕获视频.正如它会发生的那样,我没有.所以我想如果可以使用我的Android智能手机的相机,然后使用IP捕获该视频进行进一步处理.

我的智能手机:Moto E.

操作系统:Windows 7

语言:Python

Android应用程序:IP Webcam

我已广泛搜索网络但无法找到任何有效的解决方案,所以任何人都可以指导我如何使用IP网络摄像头从我的智能手机捕获视频.

很抱歉没有发布任何代码,因为我只是倾向于进入这个领域,所以我完全无能为力.

谢谢.

最佳答案
由于各种原因,这可能比你期望的要困难得多.

一个是带宽.适度的原始视频流(640×480像素,每通道8位,每秒30帧),需要200mbps的带宽.虽然USB(2)很容易达到这些速度,但您很难找到可靠的无线连接.

现在你可能在想

How come I can watch 1080p internet videos in my phone with no problem whatsoever then?

实际上,通过网络传输的所有视频都使用专门的算法进行压缩,例如MPEG4,H.264和VP8.这些算法大大减少了传输视频所需的带宽.

Great! Then I can just compress the video from my phone live and stream it to my computer

没那么快!这有两个主要问题.

首先,为了实现视频数据量的大幅减少,视频压缩器(编码器)需要花费大量处理能力来处理视频.您可能会发现您的手机没有足够的cpu功率(或专用硬件)来以可用于您的任务的分辨率和帧速率对视频进行编码.

如果你设法解决这个问题并找到一个能够完成工作的应用程序,那么第二个问题是,为了在OpenCV中获取(编码的)视频数据,你需要对其进行解码!您可以找到现成的软件来解码视频文件,但是为了解码实时视频流,您需要对软件进行编程以执行解码(最好使用库或OpenCV itself).

在这一点上,你会诅咒和后悔你没有花15美元在网络摄像头上(但你会在这个过程中学到很多有趣的东西:)

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...