问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

SRS流媒体服务器从入门到精通(其一,环境搭建)

创作时间:
作者:
@小白创作中心

SRS流媒体服务器从入门到精通(其一,环境搭建)

引用
CSDN
1.
https://blog.csdn.net/weixin_61503529/article/details/142108710

一、SRS简介

SRS(Simple Realtime Server)是一个简单高效的实时视频服务器,支持多种直播和录播场景。SRS由国内开发者创建,是一款开源流媒体服务器软件。它支持RTMP、WebRTC、HLS、HTTP-FLV等多种协议,适用于直播、录播和视频客服等多种场景。

SRS的主要特点包括:

  1. 高效性能:SRS设计简洁,具有高性能的特点,能够处理大量的并发连接和流媒体数据。
  2. 多种协议支持:SRS支持多种流媒体协议,包括RTMP、WebRTC、HLS、HTTP-FLV等,能够满足不同场景的需求。
  3. 易用性:SRS提供了简单的配置文件,用户可以通过修改配置文件来快速部署和定制自己的流媒体服务器。
  4. 稳定性:SRS在设计和实现上注重稳定性,能够保证长时间稳定运行,适用于生产环境。
  5. 社区支持:作为一个开源项目,SRS拥有活跃的社区,用户可以在社区中获取支持、分享经验,并参与项目的贡献。
  6. 扩展性:SRS支持插件机制,用户可以根据需要开发自己的插件来扩展SRS的功能。

SRS适用于多种应用场景,包括但不限于:

  • 直播:支持直播流的发布和分发,适用于在线教育、游戏直播、体育赛事直播等。
  • 录播:支持视频的录制和点播,适用于视频网站、在线教育平台等。
  • 视频客服:支持视频通话和屏幕共享,适用于在线客服、远程协作等。

二、SRS的应用场景

SRS是一个简单高效的实时视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT、GB28181等协议。传统的视频监控客户端都是Windows PC桌面客户端,现在很多公司需要实现通过Web查看远程的视频监控,此时可以通过RTSP/GB28181推流发送到SRS服务器,然后通过RTMP或者HTTP-FLV协议进行拉流查看远程摄像头的视频。传统的推流端都需要安装应用软件才能实现推流,但是目前也有Web化的趋势,需要通过浏览器网页将音视频画面推送给观众,此时就可以通过WebRTC推流到SRS流媒体服务器,然后观众通过RTMP、HTTP-FLV等方式观看直播。

三、环境搭建

参考环境:Windows10 + VMware虚拟机下配置好Ubuntu20.04(包括网络)、Windows 和 Ubuntu系统都要配置好FFmpeg工具。

ffmpeg的搭建可参考以下博客:
FFmpeg的入门实践系列一

  1. SRS的源代码下载:
    github源:https://github.com/ossrs/srs.git
    码云源:https://gitee.com/ossrs/srs.git (如果GitHub较慢可以使⽤码云的源)

在Ubuntu20.04中,选择一个自定义的文件夹,进入输入以下命令:

git clone -b 4.0release https://gitee.com/ossrs/srs.git
  1. 进入到trunk文件夹,开始编译
sudo cd srs/trunk
sudo ./configure
sudo make -j4
  1. 启动服务器
    注: -c 后面是srs的系统配置文件,可以修改里面的属性来灵活配置srs系统
./objs/srs -c conf/srs.conf
  1. 查看SRS的状态
./etc/init.d/srs status

或者看SRS的日志

tail -n 30 -f ./objs/srs.log
  1. 关闭服务器
    srs服务器默认都是后台运行的,所以要退出,可以输入以下命令:
sudo kill -SIGQUIT srs_pid

至此,环境搭建好了,可以看出,srs的搭建非常容易。

四、推流和拉流

使用ffmepg推流和拉流

Windows10系统充当推流方和拉流方,Linux系统充当服务器,如图:

  1. win+R 输入cmd创建命令行
    输入:
ffmpeg -re -i fuzhou.mp4 -c copy -f flv rtmp://192.168.159.128/live/livestream

注意:-i 后面是要推流的文件路径,-re 是以输入文件的实际帧率进行推流,保持原始速度,-f 指定输出格式为flv。后面的网络地址要填写linux的网络,其它不变。live是应用实例的名称,而livestream是流名称,这两个都可以在srs系统的配置文件(srs.conf)中更改。

想详细了解ffmpeg的命令,可参考以下博客:
FFmpeg命令详解

  1. 再次win+R 输入cmd创建命令行
    输入:
ffplay rtmp://192.168.159.128/live/livestream

此时,会播放上面的.mp4文件,则说明成功~

使用OBS推流(推荐)

OBS (Open Broadcaster Software) 是一款开源的视频直播和屏幕录制软件。它允许用户捕捉、合成、编码、录制和流式传输视频内容。OBS 广泛应用于游戏直播、在线教育、体育赛事直播、远程会议、实时视频制作等多种场景。

以下是 OBS 的一些主要特点:

  1. 跨平台:OBS 支持多个操作系统,包括 Windows、macOS 和 Linux。
  2. 免费开源:OBS 是完全免费的,并且其源代码可以在 GitHub 上找到,任何人都可以自由使用、修改和分发。
  3. 多源输入:OBS 支持多种输入源,包括:
  • 游戏捕获
  • 摄像头
  • 屏幕捕获
  • 媒体播放器(如 VLC)
  • 图像源
  • 文本源(使用 HTML)
  1. 实时合成:用户可以将多个输入源组合在一起,创建复杂的场景布局。
  2. 编码器支持:OBS 支持多种编码器,如 x264、x265、AAC、MP3 等。
  3. 流式传输:OBS 可以将视频流式传输到多种目的地,包括 RTMP 服务器、YouTube、Twitch、Facebook Live 等。
  4. 录制:除了直播,OBS 还可以录制视频到本地文件,支持多种格式,如 MP4、FLV、MKV 等。
  5. 插件系统:OBS 提供了一个插件系统,允许用户安装额外的插件来扩展其功能。
  6. 社区支持:OBS 拥有一个活跃的社区,用户可以在社区中寻求帮助、分享经验、贡献代码。

OBS 的使用相对简单,用户可以通过以下步骤来设置和使用 OBS:

  1. 下载并安装 OBS。
  2. 设置场景和输入源。
  3. 配置输出设置,包括流式传输目的地和录制选项。
  4. 开始捕获和流式传输。

OBS 是直播和录播领域的热门工具之一,其开源和免费的特点使其成为许多用户和开发者的首选。

OBS官网:https://obsproject.com/download

下载好后,点击如下:

选择本地文件:

然后是重点:(配置服务器地址,当诸位想在b站直播时,使用该软件也是在此地设置b站提供的服务器的)

  • 上面的推流码就是流名称,这里是livestream。

最后点击开始直播,就可以推流了。拉流的步骤同上,这里不再多讲。

扩展:如果想推流桌面,或者摄像头的画面,可以在来源中选择:

总之,OBS是一款很好用的推流软件,非常推荐~

五、补充

修改ffplay的缓存,降低延迟

(1)码流分析时间设置,单位为微秒

ffplay -i rtmp://114.215.169.66/live/livestream -analyzeduration 500000
ffplay -i rtmp://114.215.169.66/live/livestream -analyzeduration 10000

(2)减少缓冲

ffplay -i rtmp://114.215.169.66/live/livestream -fflags nobuffer

至此,结束~

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号