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

问题描述 投票:10回答:5

我刚刚开始使用Python学习OpenCV,并且第一个教程从使用内置笔记本电脑网络摄像头或外部网络摄像头捕获视频开始。而且就像发生的那样,我都没有。因此,我认为是否有可能使用我的Android智能手机的摄像头,然后使用IP捕获该视频以进行进一步处理。

我的智能手机:Moto E

OS:Windows 7

语言:Python

Android应用程序:IP网络摄像头

我已经在网络上进行了广泛搜索,但是找不到任何可行的解决方案,所以任何人都可以指导我如何使用IP网络摄像头从智能手机捕获视频。

很抱歉,我没有发布任何代码,因为我正趋向这一领域,所以我一无所知。

谢谢。

python opencv video
5个回答
8
投票

出于各种原因,这可能比您期望的要难得多。

首先是带宽。适度的视频流(640x480像素,每个通道8位,每秒30帧)需要200mbps的带宽。虽然USB(2)可以轻松达到这些速度,但是很难找到可靠地实现此目的的无线连接。现在您可能正在思考

我怎么能在手机上毫无问题地观看1080p互联网视频?

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

太好了!然后,我可以实时压缩手机中的视频并将其流式传输到我的计算机中

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

首先是,为了实现视频数据量的如此大幅减少,视频压缩器(

encoders

)需要花费大量的处理能力来处理视频。您可能会发现您的手机没有足够的CPU能力(或专用硬件),无法以可用于任务的分辨率和帧频对视频进行编码。如果您设法解决

找到一个可以完成任务的应用程序,第二个问题是,为了在OpenCV中获取(编码的)视频数据,您需要对其进行解码!您可以找到易于使用的软件来解码视频文件,但是要解码视频的实时流,则需要对软件进行编程以执行解码(最好使用库或OpenCV itself)。
在这一点上,您会感到诅咒和遗憾,您没有在网络摄像头上花费15美元(但您会在此过程中学到很多有趣的东西:)

8
投票
使用urllib和numpy将Android'IP Webcam'应用程序视频流导入Python OpenCV;]


2
投票
此线程似乎很旧,但只想添加我的答案。因此,这就是我能够在python 3.5,OpenCV 3.2和android应用“ IP WEB CAM”中完成任务的方式。 get函数中的URL

([http://192.168.0.103:8080


0
投票
您可以通过向其传递流URL来简单地使用cv2VideoCapture方法,如IP Webcam应用程序所示。这是示例代码:
© www.soinside.com 2019 - 2024. All rights reserved.