您的位置:首页 > 理论基础 > 计算机网络

android的实时视频网络传输的知识与概念

2015-11-06 21:28 441 查看
在思考如果从服务端获取视频流实时在客户端播放如何实现 思考一番 再翻阅一些资料发现不是那么简单  现在把一些相关概念和知识总结一下(里面有copy精华) 做一下分享

RTSP实时流协议 
    作为一个应用层协议,RTSP提供了一个可供扩展的框架,它的意义在于使得实时流媒体数据的受控和点播变得可能。总的说来,RTSP是一个流媒体表示协议,主要用来控制具有实时特性的数据发送,但它本身并不传输数据,而是必须依赖于下层传输协议所提供的某些服务。RTSP可以对流媒体提供诸如播放、暂停、快进等操作,它负责定义具体的控制消息、操作方法、状态码等,此外还描述了与RTP间的交互操作(RFC2326)。

    RTSP在制定时较多地参考了HTTP/1.1协议,甚至许多描述与HTTP/1.1完全相同。RTSP之所以特意使用与HTTP/1.1类似的语法和操作,在很大程度上是为了兼容现有的Web基础结构,正因如此,HTTP/1.1的扩展机制大都可以直接引入到RTSP中。
    由RTSP控制的媒体流集合可以用表示描述(Presentation Description)来定义,所谓表示是指流媒体服务器提供给客户机的一个或者多个媒体流的集合,而表示描述则包含了一个表示中各个媒体流的相关信息,如数据编码/解码算法、网络地址、媒体流的内容等。
    虽然RTSP服务器同样也使用标识符来区别每一流连接会话(Session),但RTSP连接并没有被绑定到传输层连接(如TCP等),也就是说在整个RTSP连接期间,RTSP用户可打开或者关闭多个对RTSP服务器的可靠传输连接以发出RTSP
请求。此外,RTSP连接也可以基于面向无连接的传输协议(如UDP等)。

    RTSP协议目前支持以下操作:

检索媒体:允许用户通过HTTP或者其它方法向媒体服务器提交一个表示描述。如表示是组播的,则表示描述就包含用于该媒体流的组播地址和端口号;如果表示是单播的,为了安全在表示描述中应该只提供目的地址。

邀请加入:媒体服务器可以被邀请参加正在进行的会议,或者在表示中回放媒体,或者在表示中录制全部媒体或其子集,非常适合于分布式教学。

添加媒体:通知用户新加入的可利用媒体流,这对现场讲座来讲显得尤其有用。与HTTP/1.1类似,RTSP请求也可以交由代理、通道或者缓存来进行处理。

       HTTP与RTSP传输的差别。概括的讲,RTSP被许多公司防火墙拒绝,而HTTP可以作为一个普通的文件通过;RTSP适合于大数据量、高可用性的流,如直播事件、长事件或大型文件;HTTP更适合于较小的数据传输和交互;当终端用户正在观看时,RTSP允许用户在服务器有效的回放媒体,HTTP更象下载一段媒体并在客户机上播放。从终端用户观点来看,RTSP看起来像是文件从中心位置播放,有点象广播,而HTTP感觉更象时从视频库中取视频,并在家里的机器上播放。从服务质量的观点上看,对于流,RTSP有更好的体验,RTSP提供类似于VCR的媒体控制,如暂停、快进、倒退和绝对定位。使用HTTP传输,只能在整个流下载完成后,播放器软件再模拟该过程。虽然,RTSP能够使用TCP或UDP,但是RTSP控制经常与RTP联合使用,以最好的服务质量传送实际的媒体数据。
相关视频实时传输的 blog 和 DEMO 
http://blog.csdn.net/xiangjai/article/details/12908671 http://www.cnblogs.com/skyseraph/archive/2012/03/23/2415018.html https://github.com/fyhertz/spydroid-ipcamera  https://github.com/Teaonly/android-eye https://github.com/spex66/RTSP-Camera-for-Android
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: