首页 > 其他分享 >SRS 4.0开发环境搭建:包括推流、服务器配置、拉流测试

SRS 4.0开发环境搭建:包括推流、服务器配置、拉流测试

时间:2024-04-19 16:36:28浏览次数:27  
标签:http 4.0 169.66 srs 114.215 SRS 拉流 推流

SRS 4.0开发环境搭建:包括推流、服务器配置、拉流测试

SRS 4.0开发环境搭建:包括推流、服务器配置、拉流测试

音视频开发技术 音视频开发技术     2 人赞同了该文章

云服务器:阿里云Ubuntu 16.04

服务器:SRS(Simple Realtime Server,支持RTMP、HTTP-FLV、HLS、WebRTC)

推流端:ffmpeg + OBS

拉流端:ffplay +VLC + srs播放器

1 安装和测试SRS流媒体服务器

1.1 安装SRS流媒体服务器

SRS官网:http://www.ossrs.net/

github源:https://github.com/ossrs/srs.git

码云源:https://gitee.com/ossrs/srs.git (如果GitHub较慢可以使用码云的源)

选择当前最新的release版本4.0

第一步,获取SRS

git clone https://github.com/ossrs/srs.git srs.4.0
cd srs.4.0
#直接使用当前最新的4.0release版本,写该文档时该branch最新的的tag是v4.0.98
cd trunk

第二步,编译SRS。详细参考Build

./configure --gb28181=on && make

配置支持常见的协议:RTMP/HLS/RTMP/GB28181/WebRTC

更多的配置信息参考可以用help命令:./configure --help

第三步,查看SRS配置文件。详细参考RTMP分发

配置文件在trunk/conf目录,服务器启动时指定该配置文件(srs的conf文件夹有该文件)。

我们这里先使用srs.conf,支持rtmp推流,支持rtmp、hls、http-flv拉流。

# 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;
}
vhost __defaultVhost__ {
hls {
enabled on;
}
http_remux {
enabled on;
mount [vhost]/[app]/[stream].flv;
}
}

对应配置的解释可以参考full.conf文件

这里的端口

PS:云服务器一定要在后台开放对应的端口。

第四步,启动SRS。

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

第五步,查看日志

tail -f ./objs/srs.log

1.2 查看控制台

在浏览器输入

http://114.215.169.66:1985/console/ng_index.html

我们就可以通过Web查看SRS相关的状态信息。

如果有客户端推流

对应的api(https://github.com/ossrs/srs/wiki/v4_CN_HTTPApi),比如源码里面对应的:

相关视频推荐

2024最新整理,快速掌握c/c++音视频流媒体高级开发,大厂实战项目(FFmpeg/WebRTC/RTMP/RTSP/SRS/NDK/Android)_哔哩哔哩_bilibili​www.bilibili.com/video/BV1Mw411g7FN/

【免费】FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发免费学习地址

【纯干货免费分享】C++音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击671977938加群免费领取哦~

1.3 需要重点阅读的官方Wiki

如官方的README.md所示:

Fast index for Wikis:

  • How to deliver RTMP streaming?(CN,EN)
  • How to build RTMP Edge-Cluster?(CN,EN)
  • How to build RTMP Origin-Cluster?(CN,EN)
  • How to deliver HTTP-FLV streaming?(CN,EN)
  • How to deliver HLS streaming?(CN,EN)
  • How to deliver low-latency streaming?(CN,EN)
  • How to use WebRTC? (CN,EN)

srs作者提供了详细的中英文参考文档,配置问题基本上都可以从对应的文档可以找到答案,大家能查文档的尽量去查文档。

1.4 测试SRS流媒体服务器

1.4.1 使用FFmpeg推流

ffmpeg -re -i time.flv -vcodec copy -acodec copy -f flv -y rtmp://114.215.169.66/live/livestream

注: 上述命令中的flv完整路径,以及srs server ip,大家根据情况自行替换为实际值。另外:默认情况下srs的rtmp采用1935端口,如果该端口被占用或修改了srs.conf中的端口,注意根据情况调整;防火墙如果开了,也要检测下1935是否允许访问。

对应的RTMP/HLS/HTTP-FLV拉流地址

  • RTMP流地址为:rtmp://114.215.169.66/live/livestream
  • HTTP FLV: http://114.215.169.66:8080/live/livestream.flv
  • HLS流地址为:http://114.215.169.66:8080/live/livestream.m3u8

1.4.2 使用ffplay播放

ffplay rtmp://114.215.169.66/live/livestream
ffplay http://114.215.169.66:8080/live/livestream.flv
ffplay http://114.215.169.66:8080/live/livestream.m3u8

1.4.3 使用在线srs播放器拉流

在线SRS播放器播放, 由于RTMP已经被禁用了,请使用HTTP-FLV链接。

2 使用OBS推流

ffmpeg的命令行方式不太友好,推荐使用主流的OBS开源推流软件,可从官网https://obsproject.com/ 下载最新版本,目前很多网络主播都是用它做直播。该软件支持本地视频文件以及摄像头推流。

或者使用:https://pc.qq.com/detail/4/detail_23604.html 去下载。

2.1 文件推流

先添加一个:“媒体源”

然后新建一个名称(随便输入)

选择本机视频文件

接下来是关键的部分,进入设置:

在串流->服务器这里,输入srs的地址:rtmp://114.215.169.66:1935/live (注意这里不要带livestream), 然后在串流密钥这里,才是输入livestream (地址要注意换成自己的ip地址,局域网ip就用局域网地址,云服务器就用公网地址)

设置好以后,就可以点击“开始推流”了。如果顺利,下面的状态栏,会显示一些实时数据:

注意:OBS进行推流占用率比较高,原因在于obs在推流时对源文件进行了解码再编码的操作。

2.2 摄像头推流

跟上面的其实差不多,区别只是添加“视频捕捉设备”

然后选择本机检测到的摄像头设备(比如:下图为Dell笔记本自带的Integrated Webcam)

接下来的操作就一样了:

2.3 更多设置

参见:OBS 推流 https://cloud.tencent.com/document/product/267/32726

3 补充

修改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

发布于 2024-02-26 21:38・IP 属地湖南 SRS流媒体服务器 流媒体 FFmpeg

标签:http,4.0,169.66,srs,114.215,SRS,拉流,推流
From: https://www.cnblogs.com/sexintercourse/p/18146237

相关文章

  • 2024.04.18每日收获之联合体结构体内存分配
    今日学习组内前辈留下的代码,数码管动态扫描显示,发现前辈们用的是联合体定义扫描引脚,如:typedefunion{unsignedchara[2];typedefstruct{unsignedchardata0;unsignedchardata1;}data;}seg;此时数组a[2]和结构体里的data0和data1共用地址空间,修改数组或者data会产生相......
  • graalvmjs 24.0.1 nodejs 镜像
    graalvmjs已经支持jdk22了,基于官方提供的更新了新版本的docker镜像,方便使用DockerfileFROMdebian:bullseye-backportsLABELauthor="rongfengliang"LABELemail="[email protected]"WORKDIR/opt/RUN/bin/cp/usr/share/zoneinfo/Asia/Shanghai/etc......
  • Ubuntu 24.04 LTS (Noble Numbat) 下载
    Ubuntu24.04LTS(NobleNumbat)下载Ubuntu24.04LTS开启Beta测试,正式版即将发布请访问原文链接:Ubuntu24.04LTS(NobleNumbat),查看最新版。原创作品,转载请保留出处。作者主页:sysin.org无耻抄袭者YuTao,请立遁!!!Ubuntu24.04LTS首个Beta已发布。本次Beta测......
  • Adobe Animate 2024 v24.0.2 (macOS, Windows) - 动画制作
    AdobeAnimate2024v24.0.2(macOS,Windows)-动画制作Acrobat、AfterEffects、Animate、Audition、Bridge、CharacterAnimator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、LightroomClassic、MediaEncoder、Photoshop、PremierePro、AdobeXD请访问原......
  • Adobe Bridge 2024 v14.0.3 (macOS, Windows) - 集中管理创意资源
    AdobeBridge2024v14.0.3(macOS,Windows)-集中管理创意资源Acrobat、AfterEffects、Animate、Audition、Bridge、CharacterAnimator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、LightroomClassic、MediaEncoder、Photoshop、PremierePro、AdobeXD......
  • 2024.04.11 树上问题回顾
    2024.04.11树上问题回顾P2015二叉苹果树树形背包板子题。需要注意的是,枚举儿子\(v\)的选择数量\(k\)时,一定要先转移\(k=0\)的情况,否则就会用新状态来重复更新新状态,违背\(0/1\)背包的思路。#include<bits/stdc++.h>usingnamespacestd;template<typenameT>in......
  • 2024.04.11NOIP模拟赛 #1 记录
    2024.04.11NOIP模拟赛#1记录AT_arc160_e[ARC160E]MakeBiconnected给你一棵\(n\)个节点由无向边组成的二叉树,树上每个点有权值\(w_i\)。你可以把两个点之间连无向边,如果将\(u\)与\(v\)连边,代价是\(w_u+w_v\)。请给出一种连边方式,使得连边后,图中去掉任何一个点仍然......
  • 模拟机4.0
    这次新加了一个手机,有更多内容了对话也没有那么僵硬了还修复了星期0的bug星期改为汉字显示#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<cstdlib>usingnamespacestd;inthuida;charmi[100],weekdays[7][7]={"一","二"......
  • 员工管理系统4.0
    Author:Zenodate:2024/4/10time:13:00判断输入值是否在指定范围内defisin(input,list):ifinputinlist:returnTrue,f'{input}'else:returnFalse,f'{input}notfound!'输入用户名和密码,并进行判断defgetnp(func):name_ipt=input(f'pleaseinputyour{......
  • VS2022 解决方案打不开 .NET Framework 4.0 、 4.5 等老项目
    vs2022开发工具最低支持net4.8,以下的如net3.5、4.0、4.5项目,加载不上怎么处理。一、下载.NETFramework框架.NETFramework4.5.2.NETFramework4.5.1.NETFramework4.5.NETFramework4.0,把框架放到vs安装目录下的对应包中。microsoft.netframework.referenceassemblies.......