Android:有没有办法减少VideoView/MediaPlayer的媒体延迟/延迟?

7
我正在尝试构建一款Android应用程序,它可以接收RTSP流并显示音频/视频。我一直在使用VideoView,但仍然存在3到10秒的延迟。我需要将此延迟减少到3秒以下。
在PC上,我可以使用VLC查看相同的RTSP流,只有1-2秒的延迟。如何在Android上复制这个过程呢?即使我使用其他应用程序如MoboPlayer/RockPlayer,延迟仍然是3到10秒。(如果有关系的话,我在PC和Android上都通过无线连接到RTSP流)
我已经开始研究使用FFmpeg for Android以及Gstreamer SDK for Android作为MediaPlayer的替代方案,但对于像我这样的初学者来说,他们都很难使用,并且我遇到了多个问题。
非常感谢您提供任何信息!

1
有人吗?我遇到了完全相同的问题。 - Scot
1个回答

1

首先,我认为延迟是由于Android硬件上不可控的初始缓冲区大小所致。这可以通过使用自定义SW媒体播放器(如FFMpeg(现在是AVconv)或GStreamer)来解决。但这会影响性能(取决于视频流压缩、分辨率和fps),并降低设备电池寿命。

当然,使用FFMpeg或类似的C/C++框架进行本地开发是复杂的,需要很多时间和经验。

另一个选择:您可以尝试使用新的Android 4.1 Java API来访问视频和音频解码器。并使用此API和一些代码从RTSP服务器加载视频流来构建自己的RTSP播放器(可能已经存在某些Java库)。

Android 4.1 Multimedia


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接