SRS实现网页和手机端简单直播

一.SRS简介

SRS官方网站:https://github.com/ossrs/srs/wiki/v3_CN_Homehttps://ossrs.net/lts/zh-cn/

SRS是一个开源的(MIT协议)简单高效的实时视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等协议。 SRS媒体服务器和FFmpegOBSVLC、 WebRTC等客户端配合使用,提供流的接收和分发的能力,是一个典型的发布 (推流)和订阅(播放)服务器模型。 SRS支持互联网广泛应用的音视频协议转换,比如可以将RTMPSRT, 转成HLSHTTP-FLVWebRTC等协议。

那什么是直播?其实一个简单的直播就是一个人去推流,许多人拉流形成一个直播间。

简介不做过多叙述,直接开整。


 二.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还有许多功能,目前还在不断学习。

如有问题,可以与我交流。

posted @ 2024-02-05 15:39  睡觉不困  阅读(817)  评论(6编辑  收藏  举报