SRS实现网页和手机端简单直播
一.SRS简介
SRS官方网站:https://github.com/ossrs/srs/wiki/v3_CN_Home,https://ossrs.net/lts/zh-cn/
SRS是一个开源的(MIT协议)简单高效的实时视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等协议。 SRS媒体服务器和FFmpeg、OBS、VLC、 WebRTC等客户端配合使用,提供流的接收和分发的能力,是一个典型的发布 (推流)和订阅(播放)服务器模型。 SRS支持互联网广泛应用的音视频协议转换,比如可以将RTMP或SRT, 转成HLS或HTTP-FLV或WebRTC等协议。
那什么是直播?其实一个简单的直播就是一个人去推流,许多人拉流形成一个直播间。
简介不做过多叙述,直接开整。
二.SRS部署
SRS主要运行在Linux系统上,如果想要在本地windows上运行,需要使用docker,具体操作在srs文档。
①本地windows
安装完docker后,先用Docker启动SRS:
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5
启动完成,打开http://localhost:8080, 可以查看SRS控制台和播放器
②云服务器
在云服务器中,可以选择docker或者直接安装配置SRS,我的是腾讯云,下载了宝塔面板
1.使用docker
具体请看:在宝塔面板下快速搭建SRS视频服务(支持RTMP/WebRTC/HLS/HTTP-FLV/SRT)
2.直接安装
具体请看:LInux搭建srs视频直播服务器
注意:在云服务器中,一定要将1935、1985、8080端口开放,宝塔和腾讯云都要开放端口,我之前调试只在宝塔开放了端口,结果一直connect失败。
③Android端
1.在android端调用yaesa库进行摄像头采集、编码,随后向srs服务器rtmp推流
2.在服务器端部署srs流媒体服务器
3.在android端调用vitamio实现取流播放
具体实现:参考大佬过程代码
Android实现直播的博文和流程(全过程,超详细/附源码)
三.推拉流
①FFmpeg推流视频或者摄像头麦克风
推流视频:
ffmpeg -re -i ./doc/source.flv -c copy -f flv rtmp://localhost/live/livestream
推流摄像头麦克风:需要先查出电脑的设备
ffmpeg -list_devices true -f dshow -i dummy
使用上述设备进行推流,命令如下
ffmpeg -f dshow -i video="USB2.0 PC CAMERA":audio="麦克风 (USB2.0 MIC)" -vcodec libx264 -acodec aac -f flv rtmp://localhost/live/livestream
只推流摄像头:
ffmpeg -f dshow -i video="USB2.0 PC CAMERA" -vcodec libx264 -f flv rtmp://localhost/live/livestream
②OBS推流
1.安装OBS Studio
2.点击设置
3.选择直播自定义,填写推流地址
4.将我的桌面进行推流
③前端拉流
网上有很多视频播放器,这里可以从Aliplayer的在线配置获取: 阿里云Aliplayer播放器 视频类型选直播,复制其中的代码
新建html,并把代码粘进去,其中source可以填写在srs播放器里的地址
④实现结果
在网页端实现直播
在手机端观看直播:
在手机端发起直播:
网页端查看
以上就是我的学习与实现,SRS还有许多功能,目前还在不断学习。
如有问题,可以与我交流。