获得网络摄像机的视频流在Android(MJEPG) [英] Getting IP Cam video stream on Android (MJEPG)

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

问题描述

我目前做的ANDAR项目组3,我的人谁负责视频流进Android手机。 我有一个自己的D-Link DCS-920 IP摄像机和我发现,它采用MJPEG codeC的实时视频流和网络服务器使用JVIEW查看实况流。据我所知MJPG是不是所以我来了,而不是使用的ImageView出了一个主意,支持的文件类型的Andr​​oid操作系统,我使用的WebView流视频。 我实现了一个非常简单的概念和它的作品!但问题是,刷新率是可怕的。 我得到的视频图像(例如: http://192.168.1.10/image.jpg )以查看web视图并实现了一个定时器来控制刷新速率(应该其设置为30fps的,这是刷新每为33ms),但它只能上升到500毫秒间隔,任何较低间隔I注意到它不会有任何更平滑,有时该图像不会加载和连接不稳定(例如:丢弃)。难道这是我的速度快于它可以接收提神? 但在web服务器上的JVIEW却没有这个问题!试图找到源头code为JVIEW但我没有希望了。 反正这里的code我已经写了

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浏览器/源$ C ​​$ C,我可以用它来显示这些图像?

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?

这里的应用程序的屏幕截图 的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) :(

我只需要进行视频流周围15-30fps。任何建议/帮助将是非常深刻的AP preciated :)谢谢!

I just need to make the video stream around 15-30fps. any suggestions/help would be very deeply appreciated :) Thanks!

推荐答案

而不是一个Arduino,你可以使用一个树莓派,它应该有足够的CPU功率来控制车辆,并以视频流的同时进行转换。当然,你需要的端口所有的Arduino软件来树莓...

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)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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