相关的源码及工具已经开源至:https://gitee.com/easy_way/stream-obs-srs
obs+srs+nginx实现直播推流拉流
介绍
- 推流端一般为OBS、FFmpeg等推流软件或者摄像机等设备通过推流协议将编码后的音视频流推送到流媒体服务器。目前主流的流媒体服务器为Nginx-rtmp、SRS、EasyDarwin和Red5等。流媒体服务器将视频流进行解码封装之后,拉流端通过流媒体协议从流媒体服务器获取数据流。拉流端一般为PC端或者移动设备。不同的拉流设备对流媒体协议的兼容性不同。
- 本仓库将测试使用的一些工具或软件集成进来了,大家可以下载后结合教程进行自测。
软件架构
一、软件架构说明
推流端一般为OBS、FFmpeg等推流软件或者摄像机等设备通过推流协议将编码后的音视频流推送到流媒体服务器。目前主流的流媒体服务器为Nginx-rtmp、SRS、EasyDarwin和Red5等。流媒体服务器将视频流进行解码封装之后,拉流端通过流媒体协议从流媒体服务器获取数据流。拉流端一般为PC端或者移动设备。不同的拉流设备对流媒体协议的兼容性不同。
目前用于推流和拉流的主要流媒体协议为RTMP、HTTP-FLV和HLS,表1为三种流媒体协议在传输协议、数据格式、延迟和兼容性方面的对比。
通过对比分析,RTMP由于TCP的可靠性以及延迟低的特性,更适用于推流。从防火墙通过性和前端播放兼容性考虑,HTTP-FLV和HLS更适合拉流。HTTP-FLV适合PC端和移动App,HLS适合原生iOS。对时延有要求的场景也可以使用RTMP作为拉流协议,但是播放器需