srt流媒体搭建

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: srt流媒体搭建

srt是建立在udp基础上的,相对于建立在tcp基础上的rtmp,在弱网情况下有很多优势。

官网拉取srt源码

git clone https://github.com/Haivision/srt.git


打开目录进行编译

默认的安装路径是/usr/local,默认静态动态一起编译。

./configure
make
make install


为防止找不到新加入的srt库,刷新一下系统库连接。

sudo ldconfig


如果执行./configure 报错

-bash: ./configure:/usr/bin/tclsh:解释器错误: 没有那个文件或目录


执行:

sudo apt-get install tcl  cmake make automake


任意路径打开终端,运行srt流媒体(这个流媒体是一推一拉,一推多拉见下sls流媒体)

srt-live-transmit srt://:4200 srt://:4201 -v


如果想用ffmpeg命令或代码推拉流srt,编译ffmpeg配置srt模块,见:ffmpeg编译配置srt模块

此命令下:

推流URL: srt://本机IP:4200

拉流URL: srt://本机rIP:4201

例如推mp4

ffmpeg -re -i test_video.mp4 -f mpegts srt://127.0.0.1:4200


播放

ffplay -fflags nobuffer -analyzeduration 1000000 srt://127.0.0.1:4201


此流媒体也可以完成udp到srt的转换,运行:

srt-live-transmit -s:10 udp://:5000 srt://:1234


推流端:

ffmpeg -re -i westLife.mp4 -f mpegts udp://127.0.0.1:5000?pkt_size=1316


或者

ffmpeg -re -i westLife.mp4 -pkt_size 1316 -f mpegts udp://127.0.0.1:5000


注意?pkt_size=1316一定要添加,不然拉流端播放会出先严重丢包,导致视频异常。

拉流端:

ffplay -fflags nobuffer -analyzeduration 1000000 srt://127.0.0.1:1234


sls并发srt流媒体搭建,可一推多拉取,但需要先安装好上面的srt库。

sudo git clone https://github.com/Edward-Wu/srt-live-server.git
cd srt-live-server
sudo make
cd bin


运行流媒体:

./sls -c ../sls.conf


查看更多执行命令

./sls -h


安装好之后默认使用当前主机的ip,8080端口,默认推流地址如下,推流

ffmpeg -re -i test_video.mp4 -f mpegts srt://127.0.0.1:8080?streamid=uplive.sls.com/live/test


拉取视频流命令,注意推流比拉流地址多了“up”。

ffplay -fflags nobuffer -analyzeduration 1000000 srt://127.0.0.1:8080?streamid=live.sls.com/live/test


注意-fflags nobuffer -analyzeduration 1000000 能大幅度降低播放器的延时,如果不加这两个参数的话延时在5s左右,之前有详测博文。

用vlc播放srt建议格式(ffmpeg不建议url带streamid,它的url是不规范的。–自称是vlc和ffmpeg的srt模块的维护人员说的):

ffplay -srt_streamid xxx srt://xxx

关于vlc:

vlc 3.0不支持streamid,4.0可以

关于用VLC播放SRS的SRT流的方法,在其他群问到的,与大家分享一下:

vlc srt://IP:port --streamid=#!::r=live/livestream,m=request

搭建srs+rtmp的流媒体服务器,另一篇博客:srs搭建rtmp流媒体服务器

编译带h264编码和aac编码的ffmpeg库,另一篇文章:libfdk-aac和x264安装编译


用udp推流延时测试,见:rtmp改udp推流,并测试延时性能

srt流媒体搭建:srt流媒体搭建

ffmpeg编译配置srt模块:ffmpeg编译配置srt模块

srs+rtmp和nginx+rtmp推流延时比较



相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
7月前
|
编解码 Android开发 iOS开发
HLS直播协议详解
HLS直播协议详解
393 2
|
7月前
|
网络协议 Linux
音视频学习之rtsp推拉流学习2(流媒体服务器ZLMediaKit)
音视频学习之rtsp推拉流学习2(流媒体服务器ZLMediaKit)
676 0
|
7月前
|
Ubuntu
SRS RTMP流媒体服务器搭建
SRS RTMP流媒体服务器搭建
307 0
|
Web App开发 数据采集 物联网
Android平台基于RTMP或RTSP的一对一音视频互动技术方案探讨
随着智能门禁等物联网产品的普及,越来越多的开发者对音视频互动体验提出了更高的要求。目前市面上大多一对一互动都是基于WebRTC,优点不再赘述,我们这里先说说可能需要面临的问题:WebRTC的服务器部署非常复杂,可以私有部署,但是非常复杂。传输基于UDP,很难保证传输质量,由于UDP是不可靠的传输协议,在复杂的公网网络环境下,各种突发流量、偶尔的传输错误、网络抖动、超时等等都会引起丢包异常,都会在一定程度上影响音视频通信的质量,难以应对复杂的互联网环境,如跨区跨运营商、低带宽、高丢包等场景,行话说的好:从demo到实用,中间还差1万个WebRTC。
165 0
|
网络协议 编译器 Linux
FFMPEG音视频开发: 发布RTSP流(采用EasyDarwin作为流媒体服务器)
FFMPEG音视频开发: 发布RTSP流(采用EasyDarwin作为流媒体服务器)
868 1
FFMPEG音视频开发: 发布RTSP流(采用EasyDarwin作为流媒体服务器)
|
1月前
|
编解码 监控 网络协议
HLS 和 RTSP 的优势
【10月更文挑战第25天】HLS和RTSP各自的优势使其在不同的应用场景中发挥着重要作用。HLS适用于需要广泛兼容性、自适应码率和简单部署的场景,如在线视频点播、直播等;而RTSP则更适合对实时性、精确播放控制和互操作性要求较高的专业级实时流媒体应用。了解它们的优势有助于根据具体的项目需求选择最合适的流媒体传输协议。
57 6
|
4月前
|
编解码 网络协议 开发工具
Android平台RTSP|RTMP直播播放器技术接入说明
大牛直播SDK自2015年发布RTSP、RTMP直播播放模块,迭代从未停止,SmartPlayer功能强大、性能强劲、高稳定、超低延迟、超低资源占用。无需赘述,全自研内核,行业内一致认可的跨平台RTSP、RTMP直播播放器。本文以Android平台为例,介绍下如何集成RTSP、RTMP播放模块。
180 0
|
网络协议 算法 网络性能优化
【流媒体】推流与拉流简介
【流媒体】推流与拉流简介
513 0
|
7月前
|
存储 缓存 编解码
C++ 音视频流媒体浅谈
C++ 音视频流媒体浅谈
223 0
C++ 音视频流媒体浅谈
|
Web App开发 应用服务中间件 API
srs搭建rtmp流媒体服务器
srs搭建rtmp流媒体服务器
1127 0
srs搭建rtmp流媒体服务器

热门文章

最新文章