1.推流、直播和点播分别是什么?
-
推流
主播将本地视频源和音频元推送到视频云服务器上,在有些场景中也被称为"RTMP发布"。
-
直播
直播的视频源是实时生成的,有人推流直播才有意义。所有,一旦直播停播,直播URL也就失效了,而且由于是实时直播的,所有播放器在播直播视频的时候是没有进度条的。
-
点播
点播的视频是一个云端的文件,文件只要没有被提供方删除,就随时可以播放,(类似优酷,爱奇艺),而且由于整个视频都在服务器上,所以播放是有进度条的。
2.常见的直播协议有那些?
目前常见的直播协议有三种: RTMP 、FLV 、HLS
-
RTMP
RTMP 协议比较全能,既可以用来推送又可以用来直播,其核心理念是将大块的视频帧和音频帧”剁碎“,然后以小数据包的形式在互联网上进行传输,而且支持加密,一次隐私性相对比较理想,单拆包组报的过程比较复杂,所以在还想并发时也容易出现一些不可预期的稳定性问题。
-
FLV
FLV协议由Adobe公司推出,格式极其简单,只是在大块的视频帧和音频帧投币胶乳一些标记头信息,由于这种机制的简介,在延迟表现和大规模并发方面都很成熟。唯一的不足就是在手机浏览器上的支持非常有限,但是用作手机端APP直播协议却异常合适。
-
HLS
HLS协议是苹果推出的解决方案,将视频分成5-10秒的视频小分片,然后用m3u8索引表进行管理,由于客户端下载到的视频都是5-10秒的完整数据,所以视频的流畅并很好,但是同样引入了很大的延迟(HLS 的一般延迟在10-30s)。
直播协议 | 优点 | 缺点 | 播放延迟 |
---|---|---|---|
FLV | 成熟度高,高并发无压力 | 需要集成SDK才能播放 | 2s-3s |
RTMP | 优质线路下理论延迟最低 | 高并发情况下表现不佳 | 1s-3s |
HLS(m3u8) | 手机浏览器支持度高 | 延迟非常高 | 10s-30s |
常见的点播协议有哪些?
目前常见的点播协议有三种:MP4、HLS 和 FLV。
-
MP4
非常经典的文件格式,在移动端和PC浏览器上的支持度都很好。但是MP4的视频文件格式比较复杂,所以处理成本高,而且由于索引表复杂度高,导致市场稍大,的MP4文件在线播放是加载速度会很慢。
-
HLS
苹果公司力推的标准,在移动端的浏览器上的支持度较好,但IE的支持情况下依赖FLASH的二次开发工程。其精简的m3u8的索引结构可以规避MP4的索引慢问题,如果用于点播,非常不错的选择。
-
FLV
Adobe公司所推的标准,目前直播最常用的封装格式,在PC端游FLASH的强力支持,但是在移动端只有app 实现播放器才有可能支持,大部分手机端浏览器不支持。目前腾讯云的直播录制,采用的就是FLV视频格式。
点播协议 | 优点 | 缺点 |
---|---|---|
FLV | 格式简单问题少,适合直播转录制场景 | 手机浏览器支持差,需集成SDK才能播放 |
MP4 | 手机浏览器支持度高 | 格式过于复杂,容错性很差,对播放器要求高 |
HLS(m3u8) | 手机浏览器支持度高 | 大量小分片的文件组织形式,错误率和维护成本高于单一文件 |