在Android(MJEPG)上获取IP Cam视频流 [英] Getting IP Cam video stream on Android (MJEPG)

查看:328
本文介绍了在Android(MJEPG)上获取IP Cam视频流的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在做一个AndAR项目。我是负责视频流入Android手机的人。
我得到了一个D-Link DCS-920 IP摄像机,我发现它使用MJPEG编解码器用于实况视频流,网络服务器使用Jview查看直播流。据我所知MJPG不是一个支持的Android操作系统的文件类型,所以我提出了一个想法,而不是使用ImageView,我使用WebView流视频。
我实现了一个非常简单的概念,它的工作原理!但问题是,刷新率是可怕的。
我得到视频图像(例如: http://192.168.1.10/image.jpg )在WebView上查看并实现一个定时器来控制刷新速率(应该设置为30fps,这是每33ms刷新),但它只能达到500ms的间隔,任何较低的间隔,我注意到它不会是任何平滑,有时图像不会加载和连接不稳定(例如:丢弃)。这可能是我刷新速度比它可以接收吗?
但是在webserver Jview上没有问题!试图找到jview的源代码,但我没有希望。
这里是我写的代码

I am currently doing an AndAR project in group of 3. I'm the person who's in charge of video streaming into the Android phone. I got ourselves a D-Link DCS-920 IP camera and I found out that it uses MJPEG codec for the live video stream and the webserver uses Jview to view the live stream. As far as I know MJPG is not a supported file type for Android OS so I've came out with an idea, instead of using ImageView, I use WebView to stream the video. I've implemented a very simple concept and it works! But the problem is, refresh rate is terrible. I get the video image (eg: http://192.168.1.10/image.jpg) to view on the WebView and implement a Timer to control the refresh rate (supposed to set it to 30fps, which is refresh every 33ms) but it can only go up to 500ms interval, any lower interval I notice it will not be any smoother,sometimes the image wont load and connection is unstable (eg: dropped). Could this be I'm refreshing at a rate faster than it can receive? But over on the webserver Jview it has no problem! was trying to find the source code for the jview but I have no hope. Anyway here's the code I've written

package org.example.test;

import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.EditText;

public class Webview extends Activity {

public WebView webView;
public Timer autoUpdate;
public String url;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);    

        webView = (WebView) findViewById(R.id.webview);
        webView.getSettings();
        final EditText urlText = (EditText) findViewById(R.id.urlText);

        //Buttons//////////////////------------
        final Button connectB = (Button)findViewById(R.id.connectButton);
        connectB.setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) {
            //Actions goes here
          url = urlText.getText().toString();
          webView.loadUrl(url);
          timerSetup();
         }
        });
        final Button exitB = (Button)findViewById(R.id.exitButton);
     exitB.setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) {
       //Actions goes here
       finish();
      }
     });
   }

    //refresh timer//////////////-----------------
    public void timerSetup(){
     autoUpdate = new Timer();
     autoUpdate.schedule(new TimerTask() {
      @Override
      public void run() {
       runOnUiThread(new Runnable() {
        @Override
     public void run() {
         //Actions goes here
         webView.loadUrl(url);
        }
       });
      }
     }, 0, 500);//refresh rate time interval (ms)
    }
}

有没有我可以获得视频流至少15fps /有更快的刷新率?
有没有像MJPEG查看器/源代码这样的东西,我可以用来显示这些图像?

Is there anyway I can get the video stream in by at least 15fps/have a faster refresh rate? Are there any such thing as MJPEG viewer/source code that I can use to display these images?

这里是应用程序的屏幕截图
< a href =http://s945.photobucket.com/albums/ad295/kevinybh/?action=view&current=video.jpg> http://s945.photobucket.com/albums/ad295/kevinybh/?action = view& current = video.jpg
(不足以张贴照片):(

here's the screenshot of the app http://s945.photobucket.com/albums/ad295/kevinybh/?action=view&current=video.jpg (not enough points to post pictures) :(

我只需要将视频流

推荐答案

而不是一个Arduino,你可以使用一个Raspberry PI,它应该有足够的CPU电源来控制车辆和同时转换视频流。当然,你需要将所有的Arduino软件移植到Raspberry ...

Instead of an Arduino you could use a Raspberry PI, it should have enough CPU power to control the vehicle and to convert the video stream at the same time. Sure, you'll need to port all of your Arduino software to Raspberry...

这篇关于在Android(MJEPG)上获取IP Cam视频流的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆