使用Gstreamer或ffmpeg在Android上创建rtsp客户端

7

我想在安卓上流媒体播放rtsp,但是我最终得出结论,不能使用安卓API的MediaPlayer、Videoview等,因为延迟对我来说是个大问题。我需要延迟小于500毫秒。现在我打算使用Gstreamer或ffmpeg创建一个安卓rtsp客户端。我有几个疑问:

  1. Gstreamer或ffmpeg客户端能否提供小于500毫秒的延迟?我读到了一些可以调整的参数,以获得非常低的延迟。只是想确认一下。我的网络带宽非常好。帧大小通常为1920X1080。

  2. 我读到Gstreamer是在ffmpeg之上的一级制品,并使用ffmpeg编解码器工作。我想知道哪个更容易用于创建安卓客户端。使用Gstreamer还是直接使用ffmpeg。

  3. 如果我使用Gstreamer安卓客户端,是否也必须使用Gstreamer服务器来流式传输数据?目前我正在使用Live555 RTSP服务器来流式传输数据。


请问您能否给出一些下投票我的问题的原因? - Pankaj Bansal
你在使用RTSP播放器方面有什么成功经验吗?我正在努力实现流媒体延迟小于1秒的性能,你能分享一下知识吗? - user2934930
@user2934930,我无法实现它。GStreamer的人告诉我,在Android端口中存在一些错误,我将无法以720P流式传输。您能够以720P流式传输吗?延迟也超过2秒。 - Pankaj Bansal
我正在努力工作,但目前还没有取得很大的成功。 - user2934930
我现在已经转而使用vlc android了。我认为GStreamer不能达到目的。 - Pankaj Bansal
显示剩余5条评论
1个回答

6

我不能针对ffmpeg进行评论,但是对于GStreamer:

1)使用GStreamer作为RTSP客户端,您可以获得比500毫秒更低的延迟。请参阅rtspsrc上的延迟属性(例如,如果您使用playbin,则可以通过setup-source信号访问rtspsrc)。默认情况下,这设置为2000毫秒(这是一个安全的默认值),但如果您的网络足够快,您可以将其设置得更低。

2)这取决于您对两个API的经验。对于我来说,GStreamer应用程序会更容易一些,并且您可以在互联网上找到一些示例: https://coaxion.net/blog/2014/08/gstreamer-playback-api/ http://cgit.freedesktop.org/~slomo/gst-sdk-tutorials/tree/gst-sdk/tutorials (Android教程)。

3)您可以使用符合标准的任何RTSP服务器,两者都可以工作。 GStreamer具有非常简单但强大的API,并且包含在GStreamer二进制文件中,供Android使用,您可以从此处获取: http://gstreamer.freedesktop.org/data/pkg/android/1.4.3/


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