我正在开发一款可以从我的树莓派中接收实时视频的应用。到目前为止,它通过实验工作,但具有大约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();
如何将延迟降低到可接受的值?