从android中的http url播放sdp文件(rtsp stream)

时间:2013-10-28 23:09:59

标签: android http android-mediaplayer rtsp sdp

我在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应用程序播放此文件,它可以正常工作。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

  1. 这适用于TCP连接
  2. RTSP请求全部在同一TCP连接上发送
  3. 此协议具有非常少的端到端延迟
  4. 这也称为“真正的流媒体”
  5. 没有文件下载到用户的系统
  6. 实时播放电影
  7. 可以直播
  8. 某些防火墙在用户的计算机上阻止此协议
  9. HTTP“超文本传输​​协议”用于在万维网上传输文件(文本,图形图像,声音,视频和其他多媒体文件)。 HTTP协议在远程服务器上托管的网页(包含文本,图形图像,声音,视频和其他多媒体)与其系统上的用户浏览器之间进行通信。我们可以通过HTTP协议观看流媒体视频。以下是HTTP的一些功能:

    1. 这适用于TCP连接
    2. HTTP通常会在单独的TCP上发送每个请求
    3. 与RTSP相比,此协议具有较高的端到端延迟
    4. 从标准网络服务器提供内容
    5. 此支持从网络服务器渐进式下载
    6. 文件已下载到用户的系统,但可以在完全下载之前开始播放
    7. 这适用于所有防火墙,因为它使用标准HTTP协议
    8. SDP“会话描述协议”由一组通信端点以及它们之间的一系列交互组成。 SDP包含有关流媒体的信息。它主要包含三个关于媒体的部分 - 会话描述,时间描述和媒体描述。 SDP本身不是一种文件类型,但它是一种协议,负责流媒体。 HTTP和RTSP都支持SDP。