直播平台服务的特点是什么
1、直播系统中的推流与播放对于视频直播来讲,最重要的两个环节,一个是推流,一个是播放。推流一般采用RTMP协议,常用的推流端包括OBS、手机APP、FFmpeg等。播放除了采用RTMP协议,还可以采用HTTP FLV和HLS协议,RTMP和HTTP FLV是流式传输,HLS是文件加速传输,常见的播放端包括:Flash / VLC / HTML5 / 手机App等等。对于阿里云直播系统来讲,大部分直播分发都是通过流式传输完成的,只有一少部分量是使用文件加速分发完成的。
2、详解流式分发与CDN直播系统我们再详细看下流式分发。其实在直播场景中,不管是推流还是播放,流式分发都是长连接的,一场直播可能2个小时,推流在这2小时内不会中断。对于播放器来讲,服务器端获取到的是一帧一帧的音视频数据,不管是什么传输协议,都是采用FLV tag来封装。每一帧音频或者视频,都会有一个时间戳的属性。
3、音视频帧与延迟的产生视频直播流会传输音频帧和视频帧,对于音频帧来讲,它每一帧都可以独立解码,播放器从服务器获取到任何一帧音频帧之后,都可以独立渲染,听到声音。而视频帧分为视频关键帧和视频非关键帧两类,视频关键帧可以独立解码渲染,可以直接看到画面,其他非关键帧则做不到,它的解码依赖于前面的视频帧。视频关键帧的优点在于独立解码,但是缺点是携带的信息很多、很大。反之,视频非关键帧则很小,几K或者1K就可以解决。对于视频直播的任何一次播放,都是从视频关键帧开始发送,否则会先出现花屏,体验很差。
4、服务器缓存数据CDN图片、视频加速,它们在每一个边缘服务器、中间服务器、源站服务器都是以一个一个文件形式来存储的,今天和明天访问文件的数据是不变的。而对于视频直播来讲,存储的数据都是实时在变化的。服务器会存储最近的关键帧以来的数据,每当一个新关键帧出现之后,都会将之前的缓存数据清掉。这样才能保证任何一个时间点来播放的播放端都能从最新进度开始观看直播。