【问题标题】:Playing sdp file (rtsp stream) from http url in android从android中的http url播放sdp文件(rtsp流)
【发布时间】:2013-11-07 22:19:57
【问题描述】:

我在 localhost 的 rtsp 服务器上有一个 rtsp 流。 我想用 android 类 MediaPlayer 播放这个文件。

如果我执行 setDataSource(rtsp://localhost/file.sdp) 就可以了!!

我的问题是......如果我将文件复制到我的 http 服务器上,我会这样做

setDataSource(http://localhost/file.sdp) 

它不起作用!我收到 I/O 异常。

filePath = "http://localhost/file.sdp";
mediaPlayer.setDataSource(filePath);
mediaPlayer.prepare();
mediaPlayer.start();

如果我用 vlc 应用程序播放这个文件,它就可以工作。

【问题讨论】:

标签: android http android-mediaplayer rtsp sdp


【解决方案1】:

RTSP 和 HTTP 是不同的协议。 HTTP 服务器不会以相同的方式提供数据。它会发送 HTTP 标头等。VLC 可能足够聪明,可以根据接收到的数据推断协议,但 Android 的 NuPlayer 可能没有那么复杂。

【讨论】:

    【解决方案2】:

    RTSP“实时流协议”用于流媒体服务器。您可以通过 RTSP 协议在您的计算机/移动设备上观看来自远程服务器的实时视频广播。此协议仅处理媒体文件的播放。以下是 RTSP 的一些功能:

    1. 这适用于 TCP 连接
    2. RTSP 请求都在同一个 TCP 连接上发送
    3. 此协议的端到端延迟非常少
    4. 这也称为“真正的流媒体”
    5. 没有文件下载到用户系统
    6. 实时播放电影
    7. 可以做直播
    8. 某些防火墙在用户计算机上阻止了此协议

    HTTP“超文本传输​​协议”用于在万维网上传输文件(文本、图形图像、声音、视频和其他多媒体文件)。 HTTP 协议在远程服务器上托管的网页(包含文本、图形图像、声音、视频和其他多媒体)和用户系统上的浏览器之间进行通信。我们可以通过 HTTP 协议观看流媒体视频。以下是 HTTP 的一些特性:

    1. 这适用于 TCP 连接
    2. HTTP 通常会在单独的 TCP 上发送每个请求
    3. 与 RTSP 相比,此协议具有较高的端到端延迟
    4. 从标准 Web 服务器提供内容
    5. 这支持从网络服务器渐进式下载
    6. 文件已下载到用户系统,但在完全下载之前可以开始播放
    7. 这适用于所有防火墙,因为它使用标准 HTTP 协议

    SDP“会话描述协议”由一组通信端点以及它们之间的一系列交互组成。 SDP 包含有关流媒体的信息。它主要包含关于媒体的三个部分——会话描述、时间描述和媒体描述。 SDP 本身不是一种文件类型,而是一种协议,负责流媒体。 HTTP 和 RTSP 都支持 SDP。

    【讨论】:

      猜你喜欢
      • 2011-11-19
      • 2013-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-15
      • 2014-01-29
      • 2011-08-18
      • 2012-07-01
      相关资源
      最近更新 更多