2

私の目標は、コンピューターに USB Web カメラから自分の Android アプリにビデオをストリーミングさせることです。

PC では、次の設定でポート 8554 の RTSP 経由でキャプチャ デバイス (ウェブカメラ) をストリーミングする VLC を実行しています。

Video Codec: H.264
Video Resolution: 1600x1200 x 0.25= 400 x 300 px
Video Frame Rate: 12 fps
Video Bitrate: 56 Kbps
and NO audio

ラグが改善されるかどうかを確認するために非常に低い設定を選択しましたが、ラグにはほとんどまたはまったく影響しませんでした. これは、生成された出力ストリーム文字列です。VLC は次のように表示します。

:sout=#transcode{vcodec=h264,vb=56,fps=12,scale=0.25,acodec=none}:rtp{sdp=rtsp://:8554/} :sout-keep

私が持っている onCreate メソッドの Android 側:

String url = "rtsp://192.168.1.103:8554/";
vid = (VideoView) findViewById(R.id.videoView1);
mc = new MediaController(this);
vid.setMediaController(mc);
vid.setVideoURI(Uri.parse(url));
vid.requestFocus();
vid.setOnPreparedListener(new OnPreparedListener(){
    @Override
    public void onPrepared(MediaPlayer mp) {
        // TODO Auto-generated method stub
        vid.start();
    }
});

結果:

アプリがロードされると、LogCat に 2 つのメッセージがポップアップ表示される間、VideoView は約 10 ~ 20 秒間すべて黒くなります。

Tag             Text
MediaPlayer     Couldn't open file on client side, trying server side
MediaPlayer     getMetadata

ビデオが表示されると、約 20 秒のラグがあり、約 30 ~ 60 秒後にビデオがフリーズしたままになります。ビデオの再生が開始されると、次のメッセージも表示されます。

Tag             Text
MediaPlayer     info/warning (3, 0)
MediaPlayer     Info (3, 0)

また、VLC を使用して同じネットワーク上の別の PC からストリームをキャプチャしようとしましたが、ラグがまだ残っているようですが、フリーズすることはありません。Darwin などの別の RTSP サーバーを使用する必要があるかどうかわかりませんか? 別のプロトコル、HTTP または RTP を使用しますか? または、アンドロイド側で何かを変更する必要がある場合は?

4

2 に答える 2

0

VLCからのhttpストリームを試してください。トランスコーディング時にすべてのラグを取り除くことはできませんが、10秒未満に抑えることができるはずです。

于 2013-02-15T20:39:34.107 に答える