一、直播原理
直播本质是实时推送/拉取过来音视频数据
二、相关协议
直播协议主要分为三种:RTMP协议、FLV、HLS。(视频直播源有效性测试工具:VLC,这是一个开源的跨平台多媒体直播器)
(1)RTMP
一个互联网TCP/IP五层体系结构中应用层协议,可以用来推送又可以直播,基本单元称为消息,可以查分为更小的单元:消息块。
(2)FLV
FLV协议是在大块的视频和音频头部加入一些标志性信息,在延迟表现和大规模并发方面很成熟,适合手机端APP直播。
(3)HLS
苹果推出的解决方案,将视频分为5-10秒的视频小分片,然后用m3u8索引表进行管理;HLS在IPHONE和大部分Android手机浏览器的支持非常给力,常用于QQ和朋友圈的URL分享。
三、M3U8
m3u8文件是一个索引文件,打开它时,根据里面的索引找到对应的音视频网络地址进行播放。
优点:主要是可以做多码率的适配,根据网络带宽,客户端会选择一个适合自己码率的文件进行播放。
四、播放框架
Vitamio视频播放框架,支持播放主流格式的音视频、网络视频流(http/rtsp/mms);
使用流程:下载SDK→拷贝so文件到案例工程jniLibs→加入权限→编译→引用VideoView→初始化Vitamio;
五、示例
下载依赖,下载地址:https://download.csdn.net/download/u011897782/10507591
案例下载地址:https://download.csdn.net/download/u011897782/10507684