陈江川

邮箱:jiangchuanc@gmail.com

直播基础知识

协议

RTP

Real-time Transport Protocol,传输层协议,用于Internet上针对多媒体数据流。RTP协议详细说明了音频和视屏在互联网上传递的标准数据包格式

RTCP

  • Real-time Transport Control Protocol,实时传输控制协议,是实时传输协议(RTP)的一个姐妹协议;

  • RTCP为RTP媒体流提供信道外控制。RTCP本身不传输数据,但和RTP一起协作将多媒体流数据打包和发送。应用程序可以利用RTCP所提供的信息提高服务质量,比如限制信息流量或改用压缩比较小的编解码器。

RTSP

  • Real-time Streaming Protocol,定义了一对多应用程序如何有效地通过IP网络传输多媒体数据

  • 目的:控制多个数据发送连接,为选择发送通道(UDP、多播UDP、TCP)提供途径,并为这些通道提供基于RTP上发送的方法。

RTSP和RTP的关系

  • RTP不像http和ftp可完整的下载整个影音文件,它是以固定的数据率在网上发送数据,它是以固定的数据率在网络上发送数据,客户端也是按照这种速度观看影视文件,当影视画面播放过后,就不可以再重复播放,除非重新向服务器端要求数据;

  • RTSP与RTP最大的区别:RTSP是一种双向实时数据传输协议,它允许客户端向服务器端发送请求,如回放、快进、倒退等操作;

  • RTSP可基于RTP来传输数据,还可以选择TCP、UDP、组播UDP等通道来发送数据,具有很好的扩展性。

视频数据由RTP传输;
视频质量由RTCP控制;
视频控制(暂停、播放、快进、快退)有RTSP提供。

RTMP

  • Real-time Message Protocol:实时消息传送协议;是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。

  • 有三种变种:

    • 工作在TCP之上的明文协议,使用端口1935;
    • RTMPT封装在HTTP请求之上,可穿越防火墙;
    • RTMPS类似RTMPT,但使用的是HTTPS连接。

HLS

  • HLS:HTTP Live Streaming,苹果基于HTTP的流媒体传输协议实现的,可以实现流媒体的直播和点播。

各协议的用途

HLS协议:大于5M被AppStore拒绝,服务器要求低、延迟高、多平台;
RTSP协议:用于摄像头功能;
RTMP协议:电视直播,延迟低,需要使用ffmepg转码。


软解码:ffmpeg;
硬解码:iOS8之后使用VideoToolBox框架。

« iOS集成ffmpeg静态库 Andorid平台下的两个音频文件的合并 »