我刚刚开始使用Python学习OpenCV,并且第一个教程从使用内置笔记本电脑网络摄像头或外部网络摄像头捕获视频开始。而且就像发生的那样,我都没有。因此,我认为是否有可能使用我的Android智能手机的摄像头,然后使用IP捕获该视频以进行进一步处理。
我的智能手机:Moto E
OS:Windows 7
语言:Python
Android应用程序:IP网络摄像头
我已经在网络上进行了广泛搜索,但是找不到任何可行的解决方案,所以任何人都可以指导我如何使用IP网络摄像头从智能手机捕获视频。
很抱歉,我没有发布任何代码,因为我正趋向这一领域,所以我一无所知。
谢谢。
出于各种原因,这可能比您期望的要难得多。
首先是带宽。适度的
我怎么能在手机上毫无问题地观看1080p互联网视频?几乎通过网络传输的所有视频都使用专用算法(例如MPEG4,H.264和VP8)进行压缩。这些算法大大减少了传输视频所需的带宽。
太好了!然后,我可以实时压缩手机中的视频并将其流式传输到我的计算机中没那么快!这有两个主要问题。
首先是,为了实现视频数据量的如此大幅减少,视频压缩器(
encoders
)需要花费大量的处理能力来处理视频。您可能会发现您的手机没有足够的CPU能力(或专用硬件),无法以可用于任务的分辨率和帧频对视频进行编码。如果您设法解决和
找到一个可以完成任务的应用程序,第二个问题是,为了在OpenCV中获取(编码的)视频数据,您需要对其进行解码!您可以找到易于使用的软件来解码视频文件,但是要解码视频的实时流,则需要对软件进行编程以执行解码(最好使用库或OpenCV itself)。 在这一点上,您会感到诅咒和遗憾,您没有在网络摄像头上花费15美元(但您会在此过程中学到很多有趣的东西:)cv2
的VideoCapture
方法,如IP Webcam应用程序所示。这是示例代码: