一、成品直播源码的搭建划分模块
视频录制端,一般是电脑上的音视频输入设备或手机端摄像头、麦克风,目前以移动端的手机视频为主,技术:webrtc
视频播放端,可以是电脑上的播放器,手机端的native播放器,还有就是h5的video标签等,目前还是以手机端的native播放器为主。技术:hls协议或rtmp协议(用途:视频播放)、ffmpeg(用途:使用rtmp协议时负责移动端视频的解码)
视频服务器端,一般是一台nginx服务器,用来接受视频录制端提供的视频源,同时提供给视频播放端流服务。技术:rtmp协议(用途:上传视频流)、nginxrtmp-module或srs(simple-rtmp-server)(用户:流服务器)
二、直播系统源代码用到的流媒体协议
rtmp协议,该协议与tcp是一个协议组,包括rtmp基本协议及rtmpt/rtmps/rtmpe等多种变种。rtmp协议主要用于实时数据通信的网络技术协议,目前rtmp协议还需要依靠播放器中的flash插件实现流媒体播放,在明年12月flash插件停止使用后,将会有新的插件出现,帮助rtmp协议实现音视频的播放。ios端浏览器不支持rtmp基于flash的播放,使用hls实时性更好一些。
hls,苹果动态码率的自适应技术,主要用于pc端和苹果终端的音视频服务,包括m3u8的索引文件,和key加密串文件。
展开全文