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



相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2天前
|
Ubuntu
SRS RTMP流媒体服务器搭建
SRS RTMP流媒体服务器搭建
159 0
|
网络协议 编译器 Linux
FFMPEG音视频开发: 发布RTSP流(采用EasyDarwin作为流媒体服务器)
FFMPEG音视频开发: 发布RTSP流(采用EasyDarwin作为流媒体服务器)
768 1
FFMPEG音视频开发: 发布RTSP流(采用EasyDarwin作为流媒体服务器)
|
9月前
|
Web App开发 应用服务中间件 API
srs搭建rtmp流媒体服务器
srs搭建rtmp流媒体服务器
881 0
srs搭建rtmp流媒体服务器
|
9月前
|
Web App开发 编解码 网络协议
Android平台一对一音视频通话方案对比:WebRTC VS RTMP VS RTSP
Android平台一对一音视频通话方案对比:WebRTC VS RTMP VS RTSP
292 0
|
10月前
|
编解码 网络协议 内存技术
实现输出h264直播流的rtmp服务器 flash直播服务器
实现输出h264直播流的rtmp服务器 flash直播服务器
145 0
|
Ubuntu
ffmpeg搭建一个简单的rtsp推流方案
ffmpeg搭建一个简单的rtsp推流方案
1928 0
ffmpeg搭建一个简单的rtsp推流方案
|
Web App开发 编解码 缓存
新一代直播传输协议SRT
SRT协议是基于UDT的传输协议,保留了UDT的核心思想和机制,抗丢包能力强,适用于复杂的网络。在LiveVideoStack线上分享中,新浪音视频架构师 施维对SRT协议的原理、优缺点特性以及在流媒体中的应用进行了详细解析。
2067 0
新一代直播传输协议SRT
|
机器学习/深度学习 存储 编解码
FFmpeg流媒体处理-收流与推流
流媒体 (streaming media) 是指将一连串的媒体数据压缩后,经过网络分段发送数据,在网络上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个媒体文件。
1640 0
FFmpeg流媒体处理-收流与推流
|
Linux Windows
一步一步实现直播软件源码的RTMP推流流媒体服务
第一步:准备工具 OBS推流工具下载及配置可以参见:OBS推流工具 第二步:安装流媒体服务 Windows/Linux系统环境中搭建直播流媒体服务 极速安装,下载解压一键启动即可,支持Windows和Linux双系统。
|
新零售 Web App开发 编解码
七牛云徐晶:低延迟互动时代看好WebRTC和SRT
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/82322760 ...
2786 0