2013-03-17 109 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

相關問題