Android:什么方法可以减少VideoView/MediaPlayer上的媒体延迟/延迟?

bla*_*zor 7 android rtsp live-streaming android-mediaplayer android-videoview

我正在尝试构建一个Android应用程序,它接收RTSP流并显示音频/视频.我一直在使用VideoView,但实际上仍然会在3到10秒之间出现延迟.我需要这个延迟不到3秒.

在PC上,我可以使用VLC看到相同的RTSP流,只有1-2秒的延迟.我怎样才能在Android上复制这个?即使我使用MoboPlayer/RockPlayer等其他应用程序,延迟仍然是3到10秒.(如果重要的话,我将在PC和Android上无线连接RTSP流)

我已经开始考虑使用适用于Android的FFmpeg以及适用于Android的Gstreamer SDK作为MediaPlayer的替代品,但是对于像我这样的新手来说,它们很难兼容并且我遇到了多个问题.

任何和所有信息将不胜感激!

das*_*sar 1

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

当然,使用 FFMpeg 或类似的 C/C++ 框架进行本机开发非常复杂,需要大量时间和经验。

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

安卓4.1多媒体