srt流媒体搭建

简介: 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推流延时比较



相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
Web App开发 应用服务中间件 Go
尝鲜:如何搭建一个简单的webrtc服务器
前几天我一朋友问我有关webrtc的事,简单了解了下相关知识,搭建了一个webrtc的服务,以及经历的各种踩坑事件,感觉踩坑主要是Python、Node、OpenSSL等版本问题和证书问题导致。本来以为很简单的搭建,但在搭建的过程中遇到各种阻碍,写一篇文章梳理一下。
13961 0
|
网络协议 算法 Ubuntu
BBR一键安装脚本 BBR/魔改/暴力/BBRplus/锐速(Lotsever)
BBR是 Google 提出的一种新型拥塞控制算法,可以使 Linux 服务器显著地提高吞吐量和减少 TCP 连接的延迟
74461 5
BBR一键安装脚本 BBR/魔改/暴力/BBRplus/锐速(Lotsever)
|
网络协议 Docker 容器
Docker容器内不能联网的6种解决方案
Docker容器内不能联网的6种解决方案   注:下面的方法是在容器内能ping通公网IP的解决方案,如果连公网IP都ping不通,那主机可能也上不了网(尝试ping 8.
13403 2
|
Web App开发 Android开发
FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo
实时数据传输在互联网中至关重要,不仅支持即时通讯如QQ、微信的文字与图片传输,还包括音视频通信。一对一通信常采用WebRTC技术,如《Android Studio开发实战》中的App集成示例;而一对多的在线直播则需部署独立的流媒体服务器,使用如SRT等协议。SRT因其优越的直播质量正逐渐成为主流。本文档概述了SRT协议的使用,包括通过OBS Studio和SRT Streamer进行SRT直播推流的方法,并展示了推流与拉流的成功实例。更多细节参见《FFmpeg开发实战》一书。
1130 1
FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo
|
缓存 视频直播 Linux
FFmpeg开发笔记(四十三)使用SRS开启SRT协议的视频直播服务
《FFmpeg开发实战》书中介绍了轻量级流媒体服务器MediaMTX,适合测试但不适用于生产环境。SRS是一款国产开源服务器,支持RTMP、SRT等协议,适合生产使用。要启用SRS的SRT推流,需配置`srt.conf`,开启SRT服务并配置端口。在确保FFmpeg集成libsrt后,拉流则使用类似但带有`m=request`的地址。在Windows上,同样需要集成libsrt的FFmpeg来使用ffplay拉流。SRS的日志确认了推拉流的成功。书中提供更深入的FFmpeg开发知识。
1326 2
FFmpeg开发笔记(四十三)使用SRS开启SRT协议的视频直播服务
|
11月前
|
人工智能 分布式计算 大数据
MCP、MaxFrame与大数据技术全景解析
本文介绍了 MCP 协议、MaxFrame 分布式计算框架以及大数据基础设施建设的相关内容。MCP(Model Context Protocol)是一种开源协议,旨在解决 AI 大模型与外部数据源及工具的集成问题,被比喻为大模型的“USB 接口”,通过统一交互方式降低开发复杂度。其核心架构包括 Client、Server、Tool 和 Schema 四个关键概念,并在百炼平台中得到实践应用。MaxFrame 是基于 Python 的高性能分布式计算引擎,支持多模态数据处理与 AI 集成,结合 MaxCompute 提供端到端的数据处理能力。
|
Linux
FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist
《FFmpeg开发实战》书中介绍了直播的RTSP和RTMP协议,以及新协议SRT和RIST。SRT是安全可靠传输协议,RIST是可靠的互联网流传输协议,两者于2017年发布。腾讯视频云采用SRT改善推流卡顿。以下是Linux环境下为FFmpeg集成libsrt和librist的步骤:下载安装源码,配置、编译和安装。要启用这些库,需重新配置FFmpeg,添加相关选项,然后编译和安装。成功后,通过`ffmpeg -version`检查版本信息以确认启用SRT和RIST支持。详细过程可参考书中相应章节。
654 1
FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist
|
编解码 Java Android开发
FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流
​SRT Streamer是一个安卓手机端的开源SRT协议直播推流框架,可用于RTMP直播和SRT直播。SRT Streamer支持的视频编码包括H264、H265等等,支持的音频编码包括AAC、OPUS等等,可谓功能强大的APP直播框架。另一款APP直播框架RTMP Streamer支持RTMP直播和RTSP直播,不支持SRT协议的直播。而本文讲述的SRT Streamer支持RTMP直播和SRT直播,不支持RTSP协议的直播。有关RTMP Streamer的说明参见之前的文章《使用RTMP Streamer开启APP直播推流》,下面介绍如何使用SRT Streamer开启手机直播。
366 4
FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流
|
视频直播 Windows
FFmpeg开发笔记(四十一)结合OBS与MediaMTX实现SRT直播推流
《FFmpeg开发实战》书中介绍了直播中的RTSP、RTMP和SRT协议,SRT提供更低延迟和稳定性。FFmpeg从4.0版起支持SRT,OBS Studio和MediaMTX等工具也已支持。在Windows环境下,通过集成libsrt的FFmpeg,可以建立SRT直播系统。MediaMTX日志显示SRT服务监听8890端口,OBS Studio设置SRT推流至"publish:live"。ffplay和VLC通过"read:live"拉流成功,验证了SRT推拉流功能。更多详情见《FFmpeg开发实战:从零基础到短视频上线》。
1313 2
FFmpeg开发笔记(四十一)结合OBS与MediaMTX实现SRT直播推流
|
编解码 测试技术
srt推拉流延时性能测试
srt推拉流延时性能测试
1017 0
srt推拉流延时性能测试