下面给出的是从IP摄像机获取直播stream的代码。 from cv2 import * from cv2 import cv import urllib import numpy as np k=0 capture=cv.CaptureFromFile("http://IPADDRESS of the camera/axis-cgi/mjpg/video.cgi") namedWindow("Display",1) while True: frame=cv.QueryFrame(capture) if frame is None: print 'Cam not found' break else: cv.ShowImage("Display", frame) if k==0x1b: print 'Esc. Exiting' break 在运行代码时,我得到的输出是: Cam not found 我哪里错了? 另外,为什么在这里没有框? 转换有问题吗?
我写了一个简单的中继脚本,连接到一个networking摄像头,并从套接字读取,并使用打印function输出这些数据。 数据是MJPG数据,边界已经设置。 我只输出读取的数据。 问题是PHP似乎在缓冲这个数据。 当我将相机设置为1 FPS时,进纸将会冻结7-8秒,然后快速显示8帧。 如果我将分辨率设置为一个很大的尺寸,相机的移动速度大概是每秒1帧。 我假设一些缓冲正在发生(因为巨大的大小快速填充缓冲区,低大小不),我不知道如何禁用这种缓冲。 有谁知道如何? 码: ignore_user_abort(false); $boundary = "myboundary"; //Set this so PHP doesn't timeout during a long stream set_time_limit(0); $socketConn = @fsockopen ("192.168.1.6", 1989, $errno, $errstr, 2); if (!$socketConn) exit(); stream_set_timeout($socketConn, 10); fputs ($socketConn, "GET /mjpeg HTTP/1.0\r\n\r\n"); //Setup Header Information header("Cache-Control: no-cache"); header("Cache-Control: private"); header("Pragma: no-cache"); header("Content-type: multipart/x-mixed-replace; boundary=$boundary"); […]
我修改了Android和MJPEG的MJPEG查看器代码,使用AsyncTask工作(因此在Ice Cream Sandwich(ICS),4.0.4上工作),这里是我的代码。 如果任何人有任何build议,如何优化,清理,或做一些更正确的代码请让我知道。 我希望有两个问题可以帮助解决: 如果你有一个stream上的设备,然后locking屏幕和解锁屏幕,它不会继续播放,直到你杀或恢复应用程序或旋转屏幕。 我所有的尝试使用OnResume()做某事或其他导致应用程序崩溃。 特别是我想要在MjpegInputStream.java中获取AsyncTask,但无法使其工作。 MjpegActivity.java: package com.demo.mjpeg; import java.io.IOException; import java.net.URI; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import com.demo.mjpeg.MjpegView.MjpegInputStream; import com.demo.mjpeg.MjpegView.MjpegView; import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.Window; import android.view.WindowManager; import android.widget.Toast; public class MjpegActivity extends Activity { private static final String TAG = "MjpegActivity"; private […]