最近项目要做一个 在线直播授课功能,对于一个小白的我来说什么都是蒙的, 以为可以在网上搜到大神的api然后调用, 后来发现大神开发的都要收费, 所以开启了寻找之旅.
经过多方的查找资料,了解到如果做直播功能 就需要 :"推流端,流媒体服务器,拉流播放端"
推流端
推流端一般使用的软件是OBS推流工具。
当然了,对于开发者而言,肯定需要的是FFmpeg 和 opencv了,FFmpeg是做音视频编码推流,opencv当然是用来实现美颜。
流媒体服务
流媒体服务就是实时视频的中转站。
流媒体服务一般而言:nginx,srs,red5等等,这个系列的后续教程会主要涉及nginx和srs。
拉流播放端
PC端:VLC
web端:videojs,flv.js,hls.js,ckplayer等等
移动端:ijkplayer
微信小程序:最好用企鹅云的播放,否则会出现兼容性问题,亲测只有企鹅自己的网页播放器才可以同时兼容QQ微信小程序和公众号。
系列教程后续会主要使用VLC测试拉流播放,虽然VLC延迟很大,但是兼容性是最好的,网页端测试主要使用videojs和flv.js以及企鹅的播放器
CDN分发
很多CDN服务商都支持rtmp,flv,hls等流媒体的分发
本文使用使用"OBS+Red5+cyberplayer"
OBS:https://obsproject.com/download
Red5:https://github.com/Red5/red5-server
cybrplayer演示地址:http://cyberplayer.bcelive.com/demo/new/index.html