2013-03-17 68 views
0

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

: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(); 
} 
} 

有时应用程式会告诉我改变了转码后不能播放视频,有时videoview只是停留在黑色而不做任何事情。 如果有解决方案或更高效的方法,请告诉我。

+0

你的第一个问题是使用WMV。我有一打平板电脑和手机,并且其中没有一个支持Windows媒体。 – 323go 2013-03-18 01:08:28

+0

那么wmv有什么选择? – nick28 2013-03-18 16:15:48

回答

1

问题是,您使用WMV格式进行流式传输,而Android不支持这种格式。您需要流式传输与VLC兼容的Android兼容格式。

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

转码使用H.264为视频和AAC为音频。使用MPEG TSMP4作为封装格式。

这些应该在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

+0

我改变了流媒体设置,如你所说,但然后vlc给了我错误:VLC无法打开编码器。 videoView发黑屏。 – nick28 2013-03-18 21:31:01

+0

videoView中的空白屏幕是因为VLC未打开编码器。至于编码问题,这就是为什么众神发明了谷歌。几秒钟后,我能够找到对此问题的回应:http://www.techyv.com/questions/vlc-could-not-open-enconder。 – 2013-03-19 16:15:54

+0

http://www.videolan.org/developers/x264.html - 这可能也有帮助。 – 2013-03-19 16:16:48

相关问题