流媒体
流媒体使用指定的媒体格式编码数据实体,封装到指定格式(FLV、MPEG2-TS等),通过特定的传输协议、方式,对媒体数据进行切割打包,逐个发往客户端,由客户端进行即时解码播放。
流式传输方式
- 顺序流式传输(Progressive streaming):静态下载,可通过标准HTTP发送,必须先下载好完整片段内容再进行播放,保证高质量播放,但无法避免加载延迟,传输不能中断跳转到未下载部分(不能快进调整下载起始点),不适用于大型或要求随机读取的音视频,现在已经沦为HTTP文件下载,不再作为流媒体传输方案。
- 实时流式传输(Real time streaming):动态下载,需要通过专用流媒体服务器及配套传输协议进行发送,如RTSP或MMS,支持随机快进后退,音视频保证实时播放,但网速不佳时可能产生丢帧或质量下降等问题,并且需要防火墙放行,低延迟,适用于实时直播。
- HTTP渐进式:对整个媒体内容进行小片段分割,通过HTTP进行分发下载播放,不需要部署特殊服务器,整合了顺序流式与实时流式的优势,目前较为流行。
实时流式传输主要的3种服务器
- RealNetworks的RealServer
- Apple的QuickTime Streaming Server
- Windows Media Server
实时流式传输协议(应用层 <- 传输层 <- 网络层)
- RTP (Real-time Transport Protocol)、RTCP:配套使用的传输层打包协议,相当于UDP/TCP,RTP用于传输数据实体,RTCP用于可靠传输、流量控制、拥塞控制等
- RTSP (Realtime Streaming Protocol):基于RTP、RTCP、TCP、UDP等传输层构建的应用层控制框架协议(类似于HTTP),一般配套RealServer使用,用于控制多个数据发送连接,内置快进、暂停等多种媒体控制指令
- MMS (Microsoft Media Server):由微软定义的应用层协议,类似RTSP,用于接收ASF(WMA、WMV)格式流媒体数据,并提供流媒体播放控制功能
- RSVP (ResourceReserveProtocol):QoS机制的网络层协议,使用高权限预留带宽提供流畅的媒体传输服务,与路由协议协同工作
- RTMP、RTMPT、RTMPS:Adobe为Flash传输流媒体数据定义的应用层开放协议,分别建立在TCP、HTTP、HTTPS协议上
HTTP渐进式协议(伪直播)
- HLS (HTTP Live Streaming):由Apple定义的封装协议,主要用于移动端,通过HTTP传输被切割得很小的多媒体片段,通常分片长度为10秒,间断式下载播放,HTML5直接支持该协议
- HDS (HTTP Dynamic Streaming):Adobe定义的类似HLS的协议,通常分片长度为2-4秒
- MPEG-DASH:MPEG组织通用标准协议,类似于HLS,但不限制编码格式和传输协议,分片长度可自定义
- HTML5
应用领域
PC端常用RTMP(对于移动端需要额外FFMPEG支持),移动端常用HLS(Android 3.0开始内置支持)
RTMP、RTSP或HTTP-FLV提供实时流传输服务,能有效控制延迟范围,HLS延迟取决于切片大小(通常为10秒)
流媒体编码
实时流式协议并不限定使用的媒体编码格式,可根据需要进行指定。
RTSP一般传输MPEG-TS、MP4格式数据流
RTMP一般传输FLV、F4V格式数据流
HLS中视频使用H264编码,音频使用AAC、MP3编码,封装为MPEG2-TS格式并根据分段策略进行切割(10秒)
HDS中视频支持H264或VP6,音频支持AAC或MP3,封装为MP4格式并切割(2-4秒),通过Adobe AIR进行跨平台支持
MPEG-DASH不限制编码格式,封装格式可指定为MP4或MPEG2-TS,切割长度自定,开放式标准
实时音频流主要格式
- RealNetworks的RealAudio(*.ra)
- Apple的QuickTime(*.qt / *.mov)
- Windows Media Audio(*.asf / *.wma)
其他流媒体格式
- RA/RM/RT/RP:对应于音频、视频、文本、图像
- QT/MOV
- ASF/WMA/WMV
- SWF/MTS/AAM/AAS
- AVI/MPEG/MPG/DAT等
其它关键词
- ID3:MP3文件开头或结尾中包含音乐标题、专辑、归属等信息的数据块。(仅限于MP3格式拥有这项属性)
- Airtime:网络广播内容开源管理平台
- Icecast:开源流媒体服务器,用于将静态音视频文件或直播信号转换为特定格式数字流并发送,可通过HTTP传输MP3、Opus、Vorbis、FLAC、WebM或Theora格式数字流,或通过SHOUTcast流协议(使用ICY关键字标记)传输AAC和NSV(视频流媒体封装格式),支持SHOUTcast(跨平台流媒体专利软件,常用于网络电台)
- StreamGuys:流媒体CDN,提供直播、点播服务
- OOYALA:提供在线视频分发、广告接入、数据分析服务的公司,主要面向后端
- FreeWheel:提供在线视频广告投放、检测分析服务的公司
- GMF:Google Media Framework,集成ExoPlayer+IMA的轻量级媒体播放器
- Akamai:全球最大的CDN提供商