将现场摄像头流式传输到Android智能手机

时间:2013-03-17 22:24:45

标签: android streaming webcam android-videoview vlc

所以我想要做的很简单,但我缺乏流媒体方法/软件的经验。我想要做的是将我的笔记本电脑摄像头直播到android上的videoView。我正在使用vlc使用http //:privateIP:8080 / stream流式传输网络摄像头,并使用代码转换WMV + WMA。 这是vlc生成的输出字符串:

    :sout=#transcode{vcodec=WMV2,vb=800,scale=1,acodec=wma2,ab=128,channels=2,samplerate=44100}:http{mux=asf,dst=:8080/stream} :sout-all :sout-keep

我的android代码如下:

    package com.example.vlctest;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.PixelFormat;
import android.view.Menu;
import android.widget.MediaController;
import android.widget.VideoView;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


     VideoView view1 = (VideoView) findViewById(R.id.videoView1); 
     getWindow().setFormat(PixelFormat.TRANSLUCENT);

     MediaController mc = new MediaController(this); 
     mc.setMediaPlayer(view1); 

     view1.setMediaController(mc); 
     view1.setVideoURI(Uri.parse("http://192.168.1.100:8080/stream")); 
     view1.requestFocus(); 
     view1.start();
}
}

有时应用程序会告诉我它无法播放视频,有时在更改转码后,视频视图会保持黑色而不做任何操作。 如果有解决方案或更有效的方法,请告诉我。

1 个答案:

答案 0 :(得分:1)

问题是您使用WMV格式进行流式传输,但Android不支持。您需要流式传输与VLC同样支持的Android格式。

VLC中的以下设置适用于Android设备。

使用H.264进行视频转码,AAC进行转码。使用MPEG TSMP4作为encapuslation格式。

这些应该可以在VLC和Android 3.0 +中使用。

有关更多信息,请参阅以下有关VLC和Android支持的媒体格式的文档:

http://www.videolan.org/doc/streaming-howto/en/ch02.html http://developer.android.com/guide/appendix/media-formats.html