100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > SRS 4.0流媒体服务器开发环境搭建:包括推流 服务器配置 拉流测试

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

时间:2023-12-09 21:26:08

相关推荐

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

SRS 4.0流媒体服务器入门系列

结合SRS官方Wiki以及本人对SRS的理解,推出《SRS 4.0流媒体服务器入门系列》,包括内容:

SRS 4.0 开发环境搭建SRS 4.0 配置支持WebRTC推拉流SRS 4.0 RTMP推拉流转发原理,包括延迟分析SRS 4.0 支持WebRTC一对一通话,包括信令原理讲解SRS 4.0 支持WebRTC多人通话,包括信令原理讲解SRS 4.0 RTMP to WebRTC原理分析SRS 4.0 WebRTC to RTMP 原理分析SRS 4.0 配置支持GB28181推流.....其他待规划

本文档配套视频:1-SRS 4.0开发环境搭建:点击直达

云服务器:阿里云Ubuntu 16.04

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

推流端:ffmpeg + OBS

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

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

1.1 安装SRS流媒体服务器

SRS官网:/

github源:/ossrs/srs.git

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

选择当前最新的release版本4.0

第一步,获取SRS

git clone /ossrs/srs.git srs.4.0cd srs.4.0#直接使用当前最新的4.0release版本,写该文档时该branch最新的的tag是v4.0.98cd 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_connections1000;srs_log_tank file;srs_log_file ./objs/srs.log;daemon on;http_api {enabled on;listen1985;}http_server {enabled on;listen8080;dir ./objs/nginx/html;}vhost __defaultVhost__ {hls {enabled on;}http_remux {enabledon;mount [vhost]/[app]/[stream].flv;}}

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

这里的端口

1935端口对应的是rtmp服务1985对应的是http api服务,进一步学习:/ossrs/srs/wiki/v4_CN_HTTPApi8080对应的是http-flv、hls的服务器端口

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(/ossrs/srs/wiki/v4_CN_HTTPApi),比如源码里面对应的:

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/livestreamHTTP FLV:http://114.215.169.66:8080/live/livestream.flvHLS流地址为:http://114.215.169.66:8080/live/livestream.m3u8

1.4.2 使用ffplay播放

ffplay rtmp://114.215.169.66/live/livestreamffplay http://114.215.169.66:8080/live/livestream.flvffplay http://114.215.169.66:8080/live/livestream.m3u8

1.4.3 使用在线srs播放器拉流

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

http://114.215.169.66:8080/players/srs_player.html(改成自己ip地址)/srs.release/trunk/research/players/srs_player.html(官方提供的连接)

2 使用OBS推流

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

或者使用:/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 推流/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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。