视频流从vlc到android,视频丢失

时间:2011-07-12 14:24:13

标签: android rtsp vlc

我正在尝试将视频从VLC流式传输到HTC G1。经过几次“这应该工作”之后,我发现了一个让我通过VLC观看流的sout-chain。我也能听到android上的音频。

我正在使用的sout-chain:

vlc some_file.mp4 -I http --sout "#transcode{soverlay,ab=128,samplerate=44100,channels=2,acodec=mp4a,vcodec=h264,width=480,height=270,vfilter="canvas{width=480,height=270,aspect=16:9}",fps=25,vb=800,venc=x264{level=12,no-cabac,subme=20,threads=4,bframes=0,min-keyint=1,keyint=50}}:gather:rtp{mp4a-latm,sdp=rtsp://0.0.0.0:5554/stream.sdp}"

这就是我在机器人上做的事情:

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    vv = (VideoView) findViewById(R.id.video_view);
    vv.setVideoURI(Uri.parse("rtsp://<local_ip>:5554/stream.sdp"));
    vv.start();
}

我尽量保持尽可能小(这实际上是我在另一个线程中找到的一个例子)。 我也尝试过使用MediaPlayer:

MediaPlayer mp = MediaPlayer.create(this, Uri.parse("rtsp://<local_ip>:5554/stream.sdp"));
mp.setDisplay(vv.getHolder());
mp.start();

我使用setDisplay(SurfaceHolder)导致有人提到MediaPlayer,否则不知道要使用什么显示器。

知道我错过了什么或做错了吗?

编辑:我用MP4Box暗示了该文件

1 个答案:

答案 0 :(得分:0)

首先,我认为您的音频编码器存在问题,它显示“MPEG-1/2视频”不是音频编码器,请您试试“mpga”吗?

另一个问题是你试图将帧调整到指定的大小,宽度= 480,高度= 270,你能删除这个部分吗?

我的命令有效:

vlc /Users/chenyu/Sites/BBC.mp4 -I http --sout“#transcode {soverlay,ab = 128,samplerate = 44100,channels = 2,acodec = mpga,vcodec = h264,fps = 25, VB = 800,VENC = X264 {等级= 1,无CABAC,次亚= 20,线程= 4,B-帧= 0,最小在keyint = 1,在keyint = 50}}:收集:RTP {MP4A-个大气压,SDP = RTSP://10.0.1.2:5554 / stream.sdp}“

你也可以在android端尝试以下代码吗?

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

        final VideoView vidView = (VideoView)findViewById(R.id.myVideo);

        MediaController vidControl = new MediaController(this);
        vidControl.setAnchorView(vidView);
        vidView.setMediaController(vidControl);

        vidView.setVideoPath("rtsp://10.0.1.2:5554/stream.sdp");

        vidView.start();
        }