rtmp和rtsp的区别和适用范围

http://www.cnblogs.com/jiayayao/p/6536140.html

1.视频传输

  从网络上接收视频时首先要解协议(RTSP/RTMP/HTTP),然后是解格式(MKV,RMVB),之后才是将视频(H264)和音频(AAC)格式数据分别解码为图像(RGB/YUV)和声音(PCM),再根据时间戳同步播放。

  RTSP+RTP主要用于IPTV,原因是传输数据使用的是UDP,在网络环境比较稳定的情况下,传输效率是比较高的;

  RTMP主要用于互联网音视频传输,它使用的是TCP传输,因为互联网环境相对较差,采用RTMP保证了视频的传输质量,但是其传输延迟相对较高,传输效率相对较低。

  使用RTMP技术的流媒体系统有一个非常明显的特点:使用 Flash Player 作为播放器客户端,而Flash Player 现在已经安装在了全世界将近99%的PC上,因此一般情况下收看RTMP流媒体系统的视音频是不需要安装插件的。用户只需要打开网页,就可以直接收看流媒体,十分方便。直播服务普遍采用了RTMP作为流媒体协议,FLV作为封装格式,H.264作为视频编码格式,AAC作为音频编码格式。FLV是RTMP使用的封装格式,H.264是当今实际应用中编码效率最高的视频编码标准,AAC则是当今实际应用中编码效率最高的音频编码标准。

  librtmp是RTMP协议的实现,可以使用librtmp来实现协议的解析和数据的收发。直播服务器可以基于nginx+rtmp实现;直播客户端方面采用librtmp负责推流,FFmpeg负责编码;收看客户端采用VLC即可,因为VLC本身既可以解析RTMP流,又可以解析编码后的视频数据。

2.视频压缩

  • 视频压缩分为有损压缩和无损压缩。

  无损压缩是采用一些压缩算法压缩视频,但是压缩完毕后还能够真实的还原原始数据;

  有损压缩是借助于人眼的一些特性,丢弃一些特定的数据,但是压缩完毕后的视频效果还在人眼可以接受的范围内的特定数据。

  • 视频压缩编码的主要原理是:

  帧内编码(变换编码和熵编码):像素点之间存在相关性。图像变换到频域可以实现去相关和能量集中。

  帧间编码(运动估计和运动补偿):将图像划分为一个个小区块,进行预测。

3.参考资料:

http://blog.csdn.net/leixiaohua1020/article/details/18893769

时间: 2024-08-11 03:36:22

rtmp和rtsp的区别和适用范围的相关文章

RTP 和 RTSP的区别

http://blog.csdn.net/oyzdz1988/article/details/6534276 RTP(Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输协议.RTP被定义为在一对一或一对多的传输情况下工作.其目的是提供时间信息和 实现流同步.但RTP通常使用UDP来传送数据.但RTP也可以在TCP或ATM等其他协议之上工作.当应用程序开始一个RTP会话时将使用两个端口:一 个给RTP一个给 RTCP.RTP本身并不能为接顺

RTMP、RTSP、HTTP视频协议详解(附:直播流地址、播放软件)

一.RTMP.RTSP.HTTP协议 这三个协议都属于互联网 TCP/IP 五层体系结构中应用层的协议.理论上这三种都可以用来做视频直播或点播.但通常来说,直播一般用 RTMP.RTSP.而点播用 HTTP.下面分别介绍下三者的特点. 1,RTMP协议 (1)是流媒体协议. (2)RTMP协议是 Adobe 的私有协议,未完全公开. (3)RTMP协议一般传输的是 flv,f4v 格式流. (4)RTMP一般在 TCP 1个通道上传输命令和数据. 2,RTSP协议 (1)是流媒体协议. (2)R

RTMP、RTSP、HTTP视频协议详解(转)

一.RTMP.RTSP.HTTP协议 这三个协议都属于互联网 TCP/IP 五层体系结构中应用层的协议.理论上这三种都可以用来做视频直播或点播.但通常来说,直播一般用 RTMP.RTSP.而点播用 HTTP.下面分别介绍下三者的特点. 1,RTMP协议 (1)是流媒体协议. (2)RTMP协议是 Adobe 的私有协议,未完全公开. (3)RTMP协议一般传输的是 flv,f4v 格式流. (4)RTMP一般在 TCP 1个通道上传输命令和数据. 2,RTSP协议 (1)是流媒体协议. (2)R

如何在IE浏览器播放RTSP或RTMP流(RTSP/RTMP OCX控件)

好多开发者一直苦恼于如何在IE浏览器环境下,构建低延迟的RTSP或RTMP播放,对于RTSP流来说,好多公司通常的做法是把RTSP转RTMP,然后分发到RTMP服务器,然后服务器转http-flv出来,浏览器直接播放http-flv流,亦或通过flash控件直接播放RTMP流,还有就是,转hls流出来,缺点是hls流延迟更大. 以上方案未尝不可,如果对播放体验和延迟要求更高,最简单的做法是直接在IE浏览器下加载activex控件,扩展了ocx控件,用于IE浏览器下的低延迟RTMP或RTSP播放.

利用RTMP或RTSP实现跨平台一对一互动功能

目前市面上大多一对一互动都是基于WebRTC,缺点如下: 服务器部署非常复杂,不利于私有部署,在一些私密性高的场景下,无法使用,如公安.市政等体系: 传输基于UDP,很难保证传输质量,由于UDP是不可靠的传输协议,在复杂的公网网络环境下,各种突发流量.偶尔的传输错误.网络抖动.超时等等都会引起丢包异常,都会在一定程度上影响音视频通信的质量: 难以应对复杂的互联网环境,如跨区跨运营商.低带宽.高丢包等场景: 整个框架体系不够灵活,代码复杂度高,行话说的好:从demo到实用,中间还差1万个WebRT

nginx+ffmpeg搭建rtmp转播rtsp流的flash服务器

本文概要: nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择.本文介绍了一种简易方法快速搭建rtmp流媒体服务器,也叫rtsp转播,数据源不是读取文件,而是采用获取rtspNal流后使用ffmpeg转播.csdn固本培元:[email protected] 开发环境:centos6.4 (主流的linux服务器选择,30%以上的市场占有率) 需要这几个包. 版本号:nginx 1.7.3  openssl 1.0.2   rtmp-module(版本未知)

【转载】 了解实时媒体的播放(RTP/RTCP 和 RTSP)

http://blog.csdn.net/span76/article/details/12913307 离线媒体只是用 Http协议去读取服务器端文件而已,而对于实时直播如何实现, 这里就要用到 RTP/RTCP协议了 RTP/RTCP RTP是基于 UDP协议的, UDP不用建立连接,效率更高:但允许丢包, 这就要求在重新组装媒体的时候多做些工作 RTP只是包裹内容信息,而RTCP是交换控制信息的,Qos是通过RTCP实现的 RTP中一个重要的概念是 session, 对于一个 audio

了解实时媒体的播放(RTP/RTCP 和 RTSP)

RTP是基于 UDP协议的, UDP不用建立连接,效率更高:但允许丢包, 这就要求在重新组装媒体的时候多做些工作 RTP只是包裹内容信息,而RTCP是交换控制信息的,Qos是通过RTCP实现的 RTP中一个重要的概念是 session, 对于一个 audio stream 可以是一个session 但可以有多个 contributor, 也可以有多个监听者, 比如网络电话 做实时视频流,先用采集设备,直接把视频做成 H.264 的 NALu,而后通过 RTP打包,传输给客户端 有一篇文就是介绍如

HTTP协议/RTSP协议/RTMP协议的区别

RTSP. RTMP.HTTP的共同点.区别 共同点: 1:RTSP RTMP HTTP都是在应用应用层. 2: 理论上RTSP RTMPHTTP都可以做直播和点播,但一般做直播用RTSP RTMP,做点播用HTTP.做视频会议的时候原来用SIP协议,现在基本上被RTMP协议取代了. 区别: 1:HTTP: 即超文本传送协议(ftp即文件传输协议). HTTP:(Real Time Streaming Protocol),实时流传输协议. HTTP全称Routing Table Maintena