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

时间:2014-10-12 18:21:26

标签: android ffmpeg gstreamer rtsp live555

我想在android上传输一个rtsp流,我终于来了 结论是我不能使用android API的MediaPlayer,Videoview等因为 延迟对我来说是个大问题。我需要一个< 500 ms的延迟。现在我 计划使用Gstreamer或ffmpeg创建一个android rtsp客户端。我只有几个 怀疑

  1. Gstreamer或ffmpeg客户端是否能够提供<500ms的延迟。我读过有 一些参数,我可以调整,以获得非常低的延迟。只是想 确认。我有很好的网络带宽。帧大小通常是 1920X1080。

  2. 我读过Gstreamer是一个比ffmpeg高出一个级别并使用ffmpeg 编解码器工作。我想知道哪一个更容易用于创建一个Android客户端。在ffmpeg上直接使用Gstreamer或workig。

  3. 如果我使用Gstreamer android客户端,我是否还必须使用Gstreamer服务器来传输数据?目前我正在使用Live555 RTSP服务器来传输数据

1 个答案:

答案 0 :(得分:6)

我无法谈论ffmpeg,但对于GStreamer:

1)是的,使用GStreamer作为RTSP客户端,您可以获得远低于500毫秒的延迟。请参阅rtspsrc上的延迟属性(例如,如果您使用playbin,则可以通过setup-source信号访问...您应该这样做)。默认情况下,这设置为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(安卓教程)

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