零基础也能搭建直播平台,不需要任何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官网,如果觉得有用,麻烦大家点个赞,谢谢。

相关推荐
CRPER几秒前
告别繁琐配置:一个现代化的 TypeScript 库开发模板,让你高效启动项目!
前端·typescript·node.js
Embrace13 分钟前
NextAuth实现Google登录报错问题
前端
小海编码日记15 分钟前
Geadle,Gradle插件,Android Studio and sdk版本对应关系
前端
粤M温同学19 分钟前
Web前端基础之HTML
前端·html
love530love25 分钟前
是否需要预先安装 CUDA Toolkit?——按使用场景分级推荐及进阶说明
linux·运维·前端·人工智能·windows·后端·nlp
泯泷1 小时前
「译」为 Rust 及所有语言优化 WebAssembly
前端·后端·rust
LinXunFeng1 小时前
Flutter - GetX Helper 如何应用于旧页面
前端·flutter·开源
紫薯馍馍2 小时前
Dify创建 echarts图表 (二)dify+python后端flask实现
前端·flask·echarts·dify
梦想很大很大2 小时前
把业务逻辑写进数据库中:老办法的新思路(以 PostgreSQL 为例)
前端·后端·架构
李三岁_foucsli2 小时前
从生成器和协程的角度详解async和await,图文解析
前端·javascript