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

前言

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

直播原理

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

image.png

windows10/11 安装ubuntu

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

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

image-20230810181351327.png

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

image-20230810182804659.png

2.打开microsoft应用商店

image-20230810182614966.png

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

image-20230810183040056.png

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

然后来尝试跑一些命令。

1.切换到根目录

cd /

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

ls

如图:

image-20230811093801416.png

安装SRS

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

1.先把目录切换到mnt

cd /mnt

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

image-20230811094945851.png

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

cd d

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

mkdir ubuntu
cd ubuntu

image-20230811095522945.png

3.拉取srs源码

git clone -b develop https://gitee.com/ossrs/srs.git

然后切换到srs/trunk目录:

cd srs/trunk

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

sudo apt update
sudo rm -rf /etc/apt/apt.conf.d/20snapd.conf
sudo apt install build-essential

5.安装依赖

sudo apt install -y unzip automake tclsh cmake pkg-config

6.开始编译

./configure
make

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

# 没错误提示忽略此处
sudo -s

7.启动服务器

./objs/srs -c conf/srs.conf

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

image-20230811100509770.png

推流工具

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

image-20230811101625030.png

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

image-20230811102217836.png

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

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

观看直播

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

image-20230811102526902.png

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

image-20230811102650599.png

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

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

保存录像

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

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

D:\ubuntu\srs\trunk\conf

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

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

以下是srs.conf全部内容

# 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

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

./etc/init.d/srs reload

image-20230811113427093.png

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

image-20230811120036700.png

最后

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYsL5SYA' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片