零基础也能搭建直播平台,不需要任何Coding

前言

给大家分享一下如何使用srs搭建视频直播平台,本章不需要你有太多的编程知识,也不需要任何Coding,只需要你有一台手机,一台电脑(电脑不能是win7/xp)即可,我们目标非常简单,拥有一个属于自己的流媒体服务器。

直播原理

如果有直播经验的同学应该非常清楚,开播需要下载一个工具叫obs,obs主要是负责推流,采集的内容可以是你的电脑手机屏幕,或者是摄像头的信息,这些信息会通过obs编码后推送到一个流媒体服务器地址,通常该服务器地址的协议是RTMP(RTMP是目前应用最广泛的直播协议),而观看直播的客户端称之为拉流,客户端拉取的流已经是经过流媒体服务器重新转码后的数据,如经过了编辑,压缩,鉴黄等等一些列的操作,由此我们可以简单总结出直播服务里面重要的3个组成部分,obs推流-流媒体服务器-分发拉流。

windows10/11 安装ubuntu

srs是支持几乎所有系统的,包括windows、liunx、mac,但由于本人电脑系统是windows10,所以目前只有两种选择,windows或linux(windows内置的wsl),首先说下windows,srs在官网有编译好的exe安装包,可以下载直接安装,但问题是如果我们要部署到云服务器,而云服务器环境通常不会是windows server,大概率还是linux,所以我们直接选择linux(wsl)作为开发环境。

当前系统信息(供参考):

1.在启用或关闭Windows功能上勾选"适用于Linux的Windows子系统",重启电脑。

2.打开microsoft应用商店

搜索ubuntu,选择最新的22.04版本,再点击获取,安装完毕后打开,此时你就有拥有一个linux子系统了

第一次打开ubuntu系统时候会让你设置一个账号密码,这点和第一次设置windows是一样的,所以设置一个你能记住的账号密码即可,要注意,输入密码字符时候是不可见的,不会像表单那要出现*号字符,所以你尽管输入,完后按回车即可。

然后来尝试跑一些命令。

1.切换到根目录

bash 复制代码
cd /

2.查看系统下的文件列表

bash 复制代码
ls

如图:

安装SRS

官网推荐使用docker安装srs,但是由于WSL的ubuntu里面没有systemd,导致无法和原生ubuntu一样启动docker,所以我们直接采用源码安装的方式。

1.先把目录切换到mnt

bash 复制代码
cd /mnt

如果此时输入ls命令,你会发现输出的是你windows母系统的本地硬盘列表,这样一来我们把项目文件放到mnt下,就可以通过windows来操作文件了,简单快捷。

我这里是切换到d盘目录下,大家根据自己电脑的情况选择。

bash 复制代码
cd d

2.创建一个目录,用来存放子系统的文件

bash 复制代码
mkdir ubuntu
cd ubuntu

3.拉取srs源码

bash 复制代码
git clone -b develop https://gitee.com/ossrs/srs.git

然后切换到srs/trunk目录:

bash 复制代码
cd srs/trunk

4.安装gcc工具,依次执行以下命令

bash 复制代码
sudo apt update
sudo rm -rf /etc/apt/apt.conf.d/20snapd.conf
sudo apt install build-essential

5.安装依赖

arduino 复制代码
sudo apt install -y unzip automake tclsh cmake pkg-config

6.开始编译

bash 复制代码
./configure
make

如果到这步全程没报错的话那就离成功不远了,记住在linux命令下,没报错就是正确。(如果有权限的错误提示,可以尝试切换到root下,再重新执行上面错误的命令)

bash 复制代码
# 没错误提示忽略此处
sudo -s

7.启动服务器

bash 复制代码
./objs/srs -c conf/srs.conf

检查SRS是否成功启动,可以打开 http://localhost:8080/ ,如果你能看到这样的界面,那就表示服务启动成功了,rtmp://localhost/live/livestream是推流地址,接下来我们会用到。

推流工具

服务器搞定之后就可以开始推流了,如果想推送电脑画面或者电脑摄像头可以使用Open Broadcaster Software | OBS (obsproject.com),如果是推送手机摄像头,可以在对应的平台下载推流软件,安卓系统可以使用"易live",iphone用户可以选择"易推流",类似的软件有很多,大家自行下载,我这里使用的是"易推流"。

注意设置推流地址时候,需要把localhost改成本地ip地址,并且手机和电脑必须在同一局域网内 ,本机ip地址可以在ubuntu使用命令hostname -I查看,也可以在windows的命令行输入ipconfig查看。

以上是我本机的局域网ip地址。

设置好推流地址后点击进入直播,接着点击开始直播就会开始推流了。

观看直播

拉流也就是观看直播可以通过控制台进入直播列表。

点击视频流,预览便可以进入直播画面,

直播大约有3~5秒的直播延迟,这是rtmp导致的,属于正常情况。

如果要直播流部署到其他站点,只需要把视频播放器的链接设置为上图的url即可。

保存录像

假设我们把这套系统作为监控系统部署的话,还需要把视频保存为本地录像,不然贼跑了都没证据,直播回放也是如此。

修改配置文件(如果你熟悉使用vim的话可以在linux下操作,这里我是切到window下修改),找到项目目录下的conf文件夹,以下是我的路径地址。

makefile 复制代码
D:\ubuntu\srs\trunk\conf

用编辑器打开srs.conf,在最后新增一个dvr配置,然后保存

ini 复制代码
# dvr config
dvr {
    enabled      on;
    dvr_path     ./objs/nginx/html/[app]/[stream].[timestamp].mp4;
    dvr_plan     session;
}

以下是srs.conf全部内容

ini 复制代码
# main config for srs.
# @see full.conf for detail config.

listen              1935;
max_connections     1000;
#srs_log_tank        file;
#srs_log_file        ./objs/srs.log;
daemon              on;
http_api {
    enabled         on;
    listen          1985;
}
http_server {
    enabled         on;
    listen          8080;
    dir             ./objs/nginx/html;
}
rtc_server {
    enabled on;
    listen 8000; # UDP port
    # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#config-candidate
    candidate $CANDIDATE;
}
vhost __defaultVhost__ {
    hls {
        enabled         on;
    }
    http_remux {
        enabled     on;
        mount       [vhost]/[app]/[stream].flv;
    }
    rtc {
        enabled     on;
        # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtmp-to-rtc
        rtmp_to_rtc off;
        # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtc-to-rtmp
        rtc_to_rtmp off;
    }

    play{
        gop_cache_max_frames 2500;
    }
	
	# dvr config
    dvr {
        enabled      on;
        dvr_path     ./objs/nginx/html/[app]/[stream].[timestamp].mp4;
        dvr_plan     session;
    }
}

接着在liunx下重启srs服务,重启前先切换到root权限

复制代码
sudo -s

输入密码后执行重启命令,

bash 复制代码
./etc/init.d/srs reload

再去手机端重新直播推流,直播结束后就可以在D:\ubuntu\srs\trunk\objs\nginx\html\live看到mp4录像文件了

最后

srs是一个非常强大的流媒体服务器,srs内置了很多api,可以获取直播间列表,鉴权等等,最新版本也提供了云服务,想了解更多信息可以查看srs官网,如果觉得有用,麻烦大家点个赞,谢谢。

相关推荐
乐神嘎嘎嘎几秒前
接口测试面试题
后端
AAA修煤气灶刘哥5 分钟前
ES数据同步大乱斗:同步双写 vs MQ异步,谁才是王者?
分布式·后端·elasticsearch
hashiqimiya5 分钟前
html实现右上角有个图标,鼠标移动到该位置出现手型,点击会弹出登录窗口。
前端·html
古夕6 分钟前
前端文件下载的三种方式:a标签、Blob、ArrayBuffer
前端·javascript·vue.js
纯真时光7 分钟前
Vue3中pinia状态管理库的使用(Composition API 风格)
前端
万少16 分钟前
可可图片编辑 HarmonyOS(5)滤镜效果
前端
Yvonne爱编码1 小时前
后端编程开发路径:从入门到精通的系统性探索
java·前端·后端·python·sql·go
GIS之路2 小时前
GDAL 读取遥感影像数据
前端
bobz9652 小时前
ovn 厂商使用的规模
后端
JiayinX3 小时前
django连接minio实现文件上传下载(提供接口示例)
后端·python·django