我正在使用libVLC 3.0.0版在Android上通过rtp播放传入的mpeg2ts流.代码如下:
SurfaceVIEw playerVIEw; //Initialized somewhere before libVLC libVlc = new libVLC(context, arraylistof("--file-caching=150", "--network-caching=150", "--clock-jitter=0", "--live-caching=150", "--clock-synchro=0", "-vvv", "--drop-late-frames", "--skip-frames"));MediaPlayer player = new MediaPlayer(libVlc);IVLCVout vout = player.getVLCVout();vout.setVIDeoVIEw(playerVIEw);vout.attachVIEws();Media media = new Media(libVlc, Uri.parse("rtp://@:" + UDP_PORT + "/"));player.setMedia(media);player.play();
这确实播放了流,但延迟大约2秒.我肯定知道延迟可以减少到~300毫秒,因为其他一些玩家可以在这个延迟时间播放它.我应该使用哪些选项来减少延迟?我知道我必须为此交易质量,但我该如何做呢?
解决方法:
有一种方法可以将延迟从~2秒减少到~200ms
解:
ArrayList<String> options = new ArrayList<>(); options.add("--file-caching=2000"); options.add("-vvv"); libVLC mlibVLC = new libVLC(getApplicationContext(), options); MediaPlayer mMediaPlayer = new MediaPlayer(mlibVLC); Media media = new Media(mlibVLC, Uri.parse("rtsp://192.168.0.1:1935/myApp/myStream")); media.setHWDecoderEnabled(true, false); media.addOption(":network-caching=150"); media.addOption(":clock-jitter=0"); media.addOption(":clock-synchro=0"); mMediaPlayer.setMedia(media); mMediaPlayer.play();
希望这对你有所帮助! =)
总结以上是内存溢出为你收集整理的java – 在Android上使用libvlc播放rtp流时减少延迟全部内容,希望文章能够帮你解决java – 在Android上使用libvlc播放rtp流时减少延迟所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)