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日志并进行多维度分析。
目录
打赏
0
0
0
0
0
分享
相关文章
音视频学习之rtsp推拉流学习2(流媒体服务器ZLMediaKit)
音视频学习之rtsp推拉流学习2(流媒体服务器ZLMediaKit)
753 0
Android平台基于RTMP或RTSP的一对一音视频互动技术方案探讨
随着智能门禁等物联网产品的普及,越来越多的开发者对音视频互动体验提出了更高的要求。目前市面上大多一对一互动都是基于WebRTC,优点不再赘述,我们这里先说说可能需要面临的问题:WebRTC的服务器部署非常复杂,可以私有部署,但是非常复杂。传输基于UDP,很难保证传输质量,由于UDP是不可靠的传输协议,在复杂的公网网络环境下,各种突发流量、偶尔的传输错误、网络抖动、超时等等都会引起丢包异常,都会在一定程度上影响音视频通信的质量,难以应对复杂的互联网环境,如跨区跨运营商、低带宽、高丢包等场景,行话说的好:从demo到实用,中间还差1万个WebRTC。
193 0
FFMPEG音视频开发: 发布RTSP流(采用EasyDarwin作为流媒体服务器)
FFMPEG音视频开发: 发布RTSP流(采用EasyDarwin作为流媒体服务器)
888 1
FFMPEG音视频开发: 发布RTSP流(采用EasyDarwin作为流媒体服务器)
Windows平台C#版RTSP转RTMP直播推送定制版
前几年我们发布了C++版的多路RTMP/RTSP转RTMP转发官方定制版。在秉承低延迟、灵活稳定、低资源占用的前提下,客户无需关注开发细节,只需图形化配置转发等各类参数,实现产品快速上线目的。如监控类摄像机、NVR等,通过厂商说明或Onvif工具,获取拉流的RTSP地址,图形化配置,完成拉流转发等操作,轻松实现标准RTMP服务器对接。
131 2
Unity下实现跨平台的RTMP推流|轻量级RTSP服务|RTMP播放|RTSP播放低延迟解决方案
自2018年起,我们成功实现了Unity环境下的低延迟RTSP|RTMP播放,达到毫秒级延迟,获得业界广泛认可。现已覆盖Windows、Android、iOS与Linux平台的RTMP推送、轻量级RTSP服务及RTSP|RTMP播放。通过高效采集Unity窗口或摄像头数据,并利用原生SDK进行编码与推送,确保了数据传输的高速性。此外,播放器支持多路视频同时播放,适应不同分辨率,并保持长时间运行稳定。更多技术细节和技术博文,请参考相关链接。
335 1
Android平台RTSP|RTMP直播播放器技术接入说明
大牛直播SDK自2015年发布RTSP、RTMP直播播放模块,迭代从未停止,SmartPlayer功能强大、性能强劲、高稳定、超低延迟、超低资源占用。无需赘述,全自研内核,行业内一致认可的跨平台RTSP、RTMP直播播放器。本文以Android平台为例,介绍下如何集成RTSP、RTMP播放模块。
256 0
[笔记]音视频学习之RTSP篇《一》rtsp协议简介
[笔记]音视频学习之RTSP篇《一》rtsp协议简介
利用RTMP或RTSP实现跨平台一对一互动功能
目前市面上大多一对一互动都是基于WebRTC,缺点如下: 1. 服务器部署非常复杂,不利于私有部署,在一些私密性高的场景下,无法使用,如公安、市政等体系; 2. 传输基于UDP,很难保证传输质量,由于UDP是不可靠的传输协议,在复杂的公网网络环境下,各种突发流量、偶尔的传输错误、网络抖动、超时等等都会引起丢包异常,都会在一定程度上影响音视频通信的质量; 3. 难以应对复杂的互联网环境,如跨区跨运营商、低带宽、高丢包等场景; 4. 整个框架体系不够灵活,代码复杂度高,行话说的好:从demo到实用,中间还差1万个WebRTC。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等