RTSP流媒体播放问题总结

原创 2018年04月16日 10:39:13

什么是rtsp?

RTSP(Real Time Streaming Protocol)是由Real Network和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。RTSP对流媒体提供了诸如暂停,快进等控制,而它本身并不传输数据,RTSP的作用相当于流媒体服务器的远程控制。服务器端可以自行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。而且允许同时多个串流需求控制(Multicast),除了可以降低服务器端的网络用量,还可以支持多方视频会议(Video  onference)。因为与HTTP1.1的运作方式相似,所以代理服务器《Proxy》的快取功能《Cache》也同样适用于RTSP,并因RTSP具有重新导向功能,可视实际负载情况来转换提供服务的服务器,以避免过大的负载集中于同一服务器而造成延迟。

 

RTSP URL的语法结构

一个终端用户是通过在播放器中输入URL地址开始进行观看流媒体业务的第一步,而对于使用RTSP协议的移动流媒体点播而言,URL的一般写法如下:

一个以“rtsp”或是“rtspu”开始的URL链接用于指定当前使用的是RTSP协议。RTSP URL的语法结构如下:

rtsp_url =(“rtsp:”| “rtspu:”) “//” host [“:”port”] /[abs_path]/content_name

host:可以是一个有效的域名或是IP地址。

port:端口号,对于RTSP协议来说,缺省的端口号为554。当我们在确认流媒体服务器提供的端口号为554时,此项可以省略说明:当HMS服务器使用的端口号为554时,我们在写点播链接时,可以不用写明端口号,但当使用非554端口时,在RTSP URL中一定要指定相应的端口。

abs_path: 为RTSPServer中的媒体流资源标识 

RTSPURL用来标识RTSPServer的媒体流资源,可以标识单一的媒体流资源,也可以标 识多个媒体流资源的集合。 

 

Ø  问题1浏览器测试中,无法打开移动要求的网址“http://121.42.239.152/list/rtsp.jsp”,无法播放流媒体视频。

解决方法:

AndroidManifest.xml 修改:

在接收Action android.intent.action.VIEW 的Activity中添加:

<!-- for support RTSP -->

 <intent-filter>

                <actionandroid:name="android.intent.action.VIEW" />

                <categoryandroid:name="android.intent.category.DEFAULT" />

                <categoryandroid:name="android.intent.category.BROWSABLE" />

                <dataandroid:scheme="rtsp" />

 </intent-filter>

 

在解析URI 的java文件中的修改:

 

 ParseResult resolveThirdPartyUri(Context context, Uri uri, String type){

       ParseResult resultSet = new ParseResult();

       resultSet.mOriginalUri = uri;

       if (type == null) {

           resultSet.mMimeType = "*/*";

           if ("rtsp".equalsIgnoreCase(uri.getScheme())) {

                resultSet.mMimeType ="video/*";

           }

       } else {

           resultSet.mMimeType = type;

           // Add for support SDP format video

           if ("application/sdp".equalsIgnoreCase(type)) {

                resultSet.mMimeType ="video/*";

           }

       }

 

……

}

 

 

Ø  问题2

[SDP][Video Streaming]It can't choose apk to play SDP video streaming.

 

SDP(Session Description Protocol)是一个用来描述多媒体会话的应用层控制协议,为会话通知、会话邀请和其它形式的多媒体会话初始化等目的提供了多媒体会话描述;它是一个基于文本的协议,这样就能保证协议的可扩展性比较强,这样就使其具有广泛的应用范围;SDP 完全是一种会话描述格式 ― 它不属于传输协议 ― 它只使用不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、实时流协议(RTSP)、MIME 扩展协议的电子邮件以及超文本传输协议(HTTP)。SDP 不支持会话内容或媒体编码的协商,所以在流媒体中只用来描述媒体信息。媒体协商这一块要用RTSP来实现。

 

解决方法:

AndroidManifest.xml 修改:

在接收Action android.intent.action.VIEW 的Activity中添加:

<!-- for support SDP video -->

           <intent-filter>

                <actionandroid:name="android.intent.action.VIEW" />

                <categoryandroid:name="android.intent.category.DEFAULT" />

               <categoryandroid:name="android.intent.category.BROWSABLE" />

                <dataandroid:mimeType="application/sdp" />

 </intent-filter>

 

在SIP协议的包含内容是SDP时,Content-Type是application/sdp,所以

在解析URI 的java文件中的修改:

 

           // Add for support SDP format video

           if ("application/sdp".equalsIgnoreCase(type)) {

                resultSet.mMimeType ="video/*";

           }

 

Ø  问题3:

Can't play SDP format video with gallery

解决方法:

和Mtk 沟通过,mtk的答复是:新平台对 local sdp文件的播放不再支持了。

使用Chrome 浏览器打开SDP 链接,其后台是先下载再播放的,这种情况下使用Gallery和 Google Photos 都不能播放。这个问题属于平台限制,无法解决。

使用TurboBrowser浏览器打开SDP链接,是可以播放的,不属于Local,因此可以通过这个浏览器验证播放SDP类型的流媒体。

流媒体开发实战进阶---rtsp视频播放器

-
  • 1970年01月01日 08:00

Android ijkplayer的使用解析及播放器的制作

  • 2018年03月30日 13:35
  • 9.32MB
  • 下载

RTSP流媒体播放器

  • 2013年12月18日 21:53
  • 4.71MB
  • 下载

Android之流媒体播放

Android之流媒体播放     最近做一个项目设计到流媒体的播放,因为是实时播放,所以我们不能支持http传输协议;我选择了RTSP传输协议,正好android SDK 自带的VedioPl...
  • chengtingfei
  • chengtingfei
  • 2015-03-10 17:37:09
  • 3339

Android流媒体的播放

  • 2012年04月23日 08:25
  • 61KB
  • 下载

RTSP流媒体播放分析-转

RTSP(Real Time Streaming Protocol)实时流协议,是TCP/IP协议体系中的一个应用层协议。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输...
  • xp5xp6
  • xp5xp6
  • 2016-01-16 11:27:44
  • 146

流媒体协议RTMP,RTSP与HLS有什么不同?

HLS (HTTP Live Streaming) Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。 ...
  • u010923921
  • u010923921
  • 2015-05-04 18:16:56
  • 1228

Linux 下VLC服务器RTSP功能实现

http://biancheng.dnbcw.info/linux/371132.html 主要安装步骤如下: 1、安装Fedora7; 2、去掉Fedora 7的防火墙,当然也可以自己配置防火墙...
  • chenyijun
  • chenyijun
  • 2014-03-18 11:44:52
  • 1463

RTSP流媒体播放

RTSP协议 (1)是流媒体协议。 (2)RTSP协议是共有协议,并有专门机构做维护。 (3)RTSP协议一般传输的是 ts、mp4 格式的流。 (4)RTSP传输一般需要 2-3 个...
  • qq_21033663
  • qq_21033663
  • 2018-02-06 23:23:20
  • 88

ios rtsp rtmp流媒体播放器

  • 2015年07月20日 14:21
  • 53.87MB
  • 下载
收藏助手
不良信息举报
您举报文章:RTSP流媒体播放问题总结
举报原因:
原因补充:

(最多只允许输入30个字)