gpt4 book ai didi

android - 在 Android 上获取 IP Cam 视频流 (MJPEG)

转载 作者:可可西里 更新时间:2023-11-01 18:48:26 32 4
gpt4 key购买 nike

我目前正在 3 人小组中做一个 AndAR 项目。我是负责将视频流式传输到 Android 手机的人。我给自己买了一台 D-Link DCS-920 IP 摄像机,我发现它使用 MJPEG 编解码器进行实时视频流,网络服务器使用 Jview 来查看实时流。据我所知,MJPG 不是 Android 操作系统支持的文件类型,所以我想出了一个主意,我没有使用 ImageView,而是使用 WebView 来流式传输视频。我已经实现了一个非常简单的概念并且它有效!但问题是,刷新率很糟糕。我获取视频图像(例如:http://192.168.1.10/image.jpg)以在 WebView 上查看并实现一个计时器来控制刷新率(应该将其设置为 30fps,这每 33 毫秒刷新一次)但它最多只能达到 500 毫秒的间隔,我注意到任何较低的间隔都不会更平滑,有时图像不会加载并且连接不稳定(例如:掉线)。这可能是我刷新的速度快于它可以接收的速度吗?但是在网络服务器 Jview 上它没有问题!试图找到 jview 的源代码,但我没有希望。不管怎样,这是我写的代码

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 查看器/源代码之类的东西可以用来显示这些图像?

这是应用程序的屏幕截图 http://s945.photobucket.com/albums/ad295/kevinybh/?action=view&current=video.jpg(积分不够发图片):(

我只需要将视频流设为 15-30fps 左右。任何建议/帮助将不胜感激 :) 谢谢!

最佳答案

您可以使用 Raspberry PI 代替 Arduino,它应该有足够的 CPU 能力来控制车辆并同时转换视频流。当然,您需要将所有 Arduino 软件移植到 Raspberry...

关于android - 在 Android 上获取 IP Cam 视频流 (MJPEG),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4490707/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com