在线直播软件开发流程来看直播间是这样实现的:
1、直播的模块划分
视频录制端:一般是电脑上的音视频输入设备或者手机端的摄像头或者麦克风,目前以移动端的手机视频为主。技术:webRTC(用途:H5视频录制)
2、视频播放端:可以是电脑上的播放器,手机端的 Native 播放器,还有就是 H5 的 video 标签等,目前还是已手机端的 Native 播放器为主。技术:HLS协议或RTMP协议(用途:视频播放)、ffmpeg(用途:使用RTMP协议时进行移动端视频解码)
3、视频服务器端:一般是一台 nginx 服务器,用来接受视频录制端提供的视频源,同时提供给视频播放端流服务。技术:RTMP协议(用途:上传视频流)、nginx rtmp-module 或SRS(simple-rtmp-server)(用途:流服务器)
原理:
1、采集
采集的技术难度与设备息息相关。通常来说iOS系统的设备采集是比较简单的,而Android设备则要做些机型适配工作,最麻烦的是传统PC上的各种奇葩摄像头驱动。所以一般会建议放弃PC只支持手机主播,实际应用来说,也确实没有用电脑摄像头直播的必要。这样相对来说,难度要降低一些。
2、前处理
在这个环节主要处理美颜、连麦等效果。现在美颜功能几乎是直播的标配,不是商用的公司直播平台,也建议添加美颜功能,毕竟没有人希望自己在镜头前一脸憔悴不上镜。但美颜有一个需要难点是,要平衡美颜效果和功耗之间的关系,美颜效果越好,程序功耗越大,设备就会越发发热,从而有可能影响到视频的采集。
3、推流
直播内容采集、处理好之后,还要上传到服务器,通过CDN进行分发,才能向用户播放,这就是推流。推流有回源、直推、转推等多种形式各占优势。
联系我时,请说是在武汉便民网看到的,谢谢!