如何通过降低缓冲区的Android视频来实现实时视频的低延迟?

时间:2018-02-02 10:04:15

标签: java android stream raspberry-pi android-videoview

我正在开发一款可以从我的树莓派中接收实时视频的应用。到目前为止,它通过实验工作,但具有大约10-13秒的巨大延迟。对我的应用程序来说,从我的pi实现近乎即时(不超过1.5秒的延迟)至关重要。 在调整vlc设置以减少缓冲区大小并使用套接字记录视频后,我使用vlc(tcp / rtp流)在我的电脑上观看时,我已经达到了2秒的延迟,所以我知道这个问题不在pi的末端。 要播放视频,我使用的是cvlc和raspivid:

raspivid -o - -t 0 -hf -vf -w 320 -h 180 -fps 24 |cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8000}' :demux=h264

在我的应用程序结束时,我可以使用以下代码播放视频但延迟很长:

    VideoView videoView = (VideoView) findViewById(R.id.videoView);
    MediaController mediaController = new MediaController(this);
    String path ="http://"+IPaddress+':'+VPort;
    Uri uri = Uri.parse(path);
    videoView.setVideoURI(uri);
    videoView.setMediaController(mediaController);
    videoView.start();

如何将延迟降低到可接受的值?

0 个答案:

没有答案