最近一星期一直在研究直播原理和推流操作,网上的教程十分零散,你会发现每个搜索页面点进去都是同个文章,这... 经过我独立研究和网上学习,终于终于走完了基本的直播推流操作。我将互联网零散的知识和自己的理解全部集成在这。此文章为原创,当中会引用不少大佬伟大的项目 感谢以下伟大的项目
前段时间推送了SRS遇到K8S系列,现在SRS3已经提供了完整的K8S+Docker支持,SRS正式走进Could Native时代,这意味着更便捷的部署、更高的弹性、更快的扩容和缩容、无中断服务的发布和灰度能力。 这篇文章,让我们一起看看SRS,以及一个应用,要达到弹性能力需要做出多少关键的改变吧(更详细的说明可以点阅读原文链接哦)。 Daemon Daemon就是后台启动服务的意思,一般使用安装包和二进制部署时,都要求程序实现daemon启动的功能,这样可以防止退出terminal时进程也退出。比如N
最近一星期一直在研究直播原理和推流操作,网上的教程十分零散,你会发现每个搜索页面点进去都是同个文章,这... 经过我独立研究和网上学习,终于终于走完了基本的直播推流操作。我将互联网零散的知识和自己的理解全部集成在这。此文章为原创,当中会引用不少大佬伟大的项目
搭建流媒体服务的方式一般会采用nginx+rtmp和srs服务两种,前者是nginx加上插件所用,而后者是专门为了为了流媒体而生,在这一节中我们将从头搭建srs流媒体服务
SRS是一个简单、高效的优秀的开源实时音视频服务器,支持 RTMP/WebRTC/HLS/HTTP-FLV/SRT/MPEG-DASH/GB28181、Linux/Windows/macOS、X86_64/ARMv7/AARCH64/M1/RISCV/LOONGARCH/MIPS 等协议和技术。
下载地:https://download.docker.com/mac/stable/Docker.dmg
📷 Written by 马鹏飞, Winlin 什么才是更好的配置方法?NGINX的conf,还是MySQL的ini,还是新潮的yaml,或者JS友好的json?它们都有各自的问题,最好的方式是co
直播平台自建,大多选择开源的项目,比如SRS,Nginx+RTMP,RED5等,如果对直播的质量要求不高,用户量又少,当然可以自建。如果用户量大,质量要求高,还是找个成熟的方案,多花点钱。
SRS 的配置文件是 srs.conf,它位于 conf 文件夹下。配置文件描述了SRS 的配置和开启功能的情况。
最近我发现有个趋势哈,就是ARM server越来越多,但是ARM好像不像x64平台那么好识别,总是有各种各样的arm识别不了。如果SRS能出ARM的docker镜像,那会比较容易跑起来。 SRS已经支持了多CPU架构的docker镜像,如下图所示: 下面是用法和技术背景。 Usage 现在SRS支持了多个CPU架构,参考ossrs/srs[1]: • linux/amd64 这就是x86_64架构,Intel的64位服务器,目前主要的Linux服务器都是这种类型,无论任何操作系统只要是这个芯片都可以用
ARM可以算编译之坑的王中王,最常见的地狱之门,SRS目前的编译问题,大部分都是ARM的问题。 ARM主要有armv7和aarch64(armv8),SRS支持了aarch64的编译和docker镜像,支持了ARM的交叉编译,大概八成的ARM场景都能支持了吧。天堂之路又多了一条,希望大家日子好过点。 Why 为什么要支持ARM?因为现在八成的编译问题,都是大家在捣腾ARM时引起的。常见的误区: •在ARM服务器(RaspberryPi和鲲鹏等)上跑SRS使用交叉编译,扑街。正确姿势:ARM服务器上直接编译,
好的用户体验就是没有体验。 复杂性并不会消失,只会经过不断的理解学习和改善,让复杂性隐藏在一个configure和docker命令中。就像毛坯房并不能拎包入住,还需要装修、配套的商场、菜市场和学校,以及完善的交通。 致谢 SRT从无到有,是施维大神的努力。 SRT从有到好用,是志宏大神的努力。 两位大神有动力做SRT,原因之一是群里热情的SRT用户,在不断尝试和使用SRT。 问题在哪里 FFmpeg要自己编译出来,很难。 SRT要自己编译出来,比较难,因为有个钻石依赖问题(如下图),任何一步的设置或者版
Written by 赵文杰. SRS for Windows SRS 5.0.89+正式支持Windows,基于Cygwin64平台,支持代码编译,以及流水线,每个5.0的版本都会提供安装包。 Build from code 如果你需要自己从代码编译Windows版本的SRS,请先安装Cygwin64[1]。 另外,还需要安装工具gcc-g++ make automake patch pkg-config tcl cmake,可以参考流水线说明[2]。 安装好环境后,在Cygwin终端中执行命令: git
你是否有以下烦恼: 流媒体服务器依赖太多,编译总出错,下载太慢? 如何快速扩容缩容,比如用k8s和docker管理服务? 环境太复杂,要在Windows和macOS跑,要在其他OS开发调试? 这些问题在SRS3将不复存在,docker和云化会解决所有这些问题。 SRS目前已经支持了直接docker运行,直接提供服务,比如: docker run -p 1935:1935 -p 1985:1985 -p 8080:8080 ossrs/srs:3 敲黑板,划重点,SRS2和SRS3都是可以用docker跑
Photo by Andre Furtado from Pexels 作为开发者,我们需要有一个服务器来支持新视频行业的互联网化,有哪个开源方案能支持新爆发的业务?该方案需要支持哪些关键的能力或需求?
A lightweight open-source video cloud based on Nodejs, SRS, FFmpeg, WebRTC, etc.
最近有朋友提Issue,在OSX 10.14 Mojave上无法运行,调研发现是因为ST不支持OS10.14,也就是SRS嗝屁了,参考:https://github.com/ossrs/srs/issues/1250。 有个可选的方案就是用docker跑CentOS,包括其他OS例如Windows,使用方法如下: Install docker Download docker from here then start docker. Build docker image docker pull ossrs/d
**(1) 启动一个HTTP服务 从SRS源代码中找到文件夹 trunk/research/api-server ,这里有个 python 脚本,把它跑起来。注意它依赖 ffmpeg 工具。
https://ossrs.net/lts/zh-cn/docs/v5/doc/http-callback
📷 Written by Winlin, 李鹏 在很多网络条件下,WebRTC不适合使用UDP传输,因此支持TCP传输是极其重要的能力;而且SRS支持的是直接TCP传输的方式,避免使用TURN中转带来
SRS(Simple RTMP Server) 是国人写的一款非常优秀的开源流媒体服务器软件,可用于直播/录播/视频客服等多种场景,其定位是运营级的互联网直播服务器集群。
SRS控制台是单机版的,能图形化显示SRS的状态,对刚刚入坑SRS的朋友很友好。它对接的是SRS的HTTP-API,便捷的系统对接。 解决什么问题 启动SRS后,如何知道SRS是否正常工作?对Linux老鸟来说很简单,通过命令行查看,比如下面这黑黢黢的玩意儿: homeMacOS:srs winlin$ ./objs/srs -c conf/srs.conf[2021-04-24 20:12:57.552][Trace] XCORE-SRS/4.0.90(Leo)[2021-04-24 20
📷 Written by 张俊勤, 孟晓伟. SRS的可观测性是支撑业务的运营的能力,主要指监控(Prometheus Exporter)、分布式链路追踪(APM)、上下文日志(Cloud Loggi
SRS4支持了WebRTC播放,John(志宏)大神实现了RTC框架,Bepartofyou(B神)实现了aac转opus,刘连响大神主持定义的协议保持RTMP、HLS、FLV、WebRTC的高度一致性,另外Native Demo正在路上,后续还有更多惊喜。 Scenarios SRS支持WebRTC后,将获得下面新的应用场景: 低延迟直播:RTMP延迟在3到5秒,WebRTC可以在1秒之内,可以基于云计算部署比较稳定的低延迟直播服务;也可以接入CDN厂商,目前阿里云和腾讯云CDN都支持了WebRTC直播
https://ossrs.net/lts/zh-cn/docs/v5/doc/webrtc#room-to-live
EdgeCluster实现了合并回源,对于某一路流,不管有多少客户端播放,EdgeServer都只会从OriginServer取一路流,这样可以通过扩展EdgeCluster来增加支持的播放能力,也就是CDN网络具备的重要能力:高并发。
自由与开源软件的理念,从不解、争议、接受到如今如火如荼,经历了长期的历程。国内开源软件起步较晚,但进展迅速。腾讯经过几年的开源协同运动,也取得了不少成绩。其中,腾讯云音视频在FFmpeg、SRS等重要多媒体开源社区的贡献,颇具代表性。 SRS是开源实时视频服务器、全球流服务器中Star最多也最活跃的开源项目,主要应用在直播、WebRTC、安防和交通等领域,支持常用的流媒体协议和转换,以好用易用赢得了全球开发者的良好口碑。开箱即用的云SRS开源音视频方案赋能众多行业创造了新的可能。同时,SRS由工信部木兰开源
目前市面上有很多开源的流媒体服务器解决方案,常见的有SRS、EasyDarwin、ZLMediaKit和Monibuca等,我们应该怎么选择呢?
本篇概览 自己的mp4文件,如何让更多的人远程播放?如下图所示: 📷 这里简单解释一下上图的功能: 部署开源流媒体服务器SRS 开发名为PushMp4的java应用,该应用会读取本机磁盘上的Mp4文件,读取每一帧,推送到SRS上 每个想看视频的人,就在自己电脑上用流媒体播放软件(例如VLC)连接SRS,播放PushMp4推上来的视频 今天咱们就来完成上图中的实战,整个过程分为以下步骤: 环境信息 准备MP4文件 用docker部署SRS java应用开发和运行 VLC播放 环境信息 本次实战,我这边涉及
并发编程是什么,进程?线程?其实还有协程,尤其是服务器并发。随着Go的普及,估计大伙儿都知道有协程这个玩意儿了,其实早就有了C里面叫Coroutine,SRS就是用的这个玩意儿。 上图借用的是Kotlin的图,不仅仅是Go,各种的语言都有协程的支持。 协程历史 还是放一张图出来,看看协程的发展历史。 中国文化中,由于历史悠久,所以特别强调继承,如果这个想法是来自远古时代,那才叫真宗。 各位朋友看呐,协程初祖Donald Knuth,60年前的神功秘籍,有啥好怀疑的,赶紧拥抱协程吧,哈哈哈。 SRS的协
服务的更新、回滚和灰度,是个简单的问题,如果加上一个条件"不中断服务的前提下",那么就是一个难题,如果再加上"大规模",那么就是K8S要解决的核心问题之一。坏消息是这个难搞的问题还真是流媒体服务的核心的、关键的、不可忽视的关键能力之一,好消息是K8S和云计算让这个难题稍微好一点点了。
随着志宏大神合并完DASH的功能,SRS 5.0正式完成功能,进入一年左右的稳定性提升阶段,预计在2023年底正式发布,现在已经可以开始体验SRS 5.0的Alpha版本了。 SRS 5.0 Alpha 0 Features 下面是5.0新增的功能列表: • 优化SRT,支持协程原生架构。#3010[1] • 支持amd/armv7/aarch64多CPU架构的Docker镜像。#3058[2] • Forward增强,支持动态Forward,可以灵活定制转发策略。#2799[3] • GB281
该项目由群友推荐,他说他通过这个工具在鼠鼠那里直播,平均每天涨粉百来人。收益的话也就是薅一个保底吧,不过总比没有好是吧。而且这也不需要你操作什么,每天凭空涨粉,何乐而不为呢?于是今天我研究了一下之后今天便发出这个教程。
Photo by Oscar Ivan Esquivel Arteaga on Unsplash
SRS是一个简单高效的实时视频服务器,支持RTMP/,等多种格式。工作用用到 SRS 服务,本文是我在学习过程中的学习笔记。
SRS3目前在发布流程中,就意味着SRS4要来了,一起来看一看SRS的未来吧。说到流媒体的未来,重心还是国内,我们只需要问我们自己想要什么就可以了。 SRS3正在提升稳定性、紧锣密鼓的发布中,这意味着SRS3不会支持主要的变更,只会提升稳定性,当然就说明了SRS4要来了。 SRS4的代号是Leo,感谢这十多年一起奋斗的兄弟姐妹们,关于代号Leo的故事可以看这里。 这个Issue是为了和大家探讨SRS4应该要支持什么,我知道目前新协议比如WebRTC、SRT、QUIC、KCP的呼声比较大,但我已经确定不会以支
SRS的集群,终于补齐了最后一块拼图,就是基于NGINX的HTTP文件分发集群,比如HLS分发集群。 并且,HLS分发集群,可以和HTTP-FLV一起工作。高并发,高扩展性的NGINX,YYDS。 边缘集群(Edge Cluster)就是为了解决很多人观看的问题,可以支持非常多的人观看直播流。注意: •SRS Edge只支持直播流协议,比如RTMP或HTTP-FLV等,参考RTMP Edge Cluster[1]。•SRS Edge不支持HLS或DASH等切片的直播流,本质上它们不是流,就是文件分发。•SR
SRS达到20K Star,感谢大家的认可,由于时间有限和大家交流比较少,趁这个机会给大家汇报下SRS的一些状态。 About Star Star仅仅能代表大家知道,或许能代表一些用户在使用开源项目,并不能代表项目的活跃度和持续更新的能力。 Community 开发者社区的参与度,才是决定项目是否能持续更新,SRS加入工信部木兰社区后,在各位专业开源大咖的带领下,活跃度持续在提升。 感谢所有三百多位开发者,以及技术委员会的核心开发者,特别感谢 TOC[1] 持续的努力, 大家一起在不断做出自己的贡献。
当我们用SRS快速搭建了视频服务,业务也开始上线运行了,很快就会遇到一个问题:如何支持更多的人观看?如何支持更多的人推流?这本质上就是系统的水平扩展能力,SRS当然是支持的,而且有多种扩展的方法,这篇文章就就详细分析各种扩展的方案,以及各种方案的应用场景和优缺点。 从哪里开始 我们看最简单的视频服务,推一个流,只有一个播放器消费流,我们只需要一个SRS Origin源站服务就可以: listen 1935;max_connections 1000;vhost __
Why 路由器是离用户最近的一个服务器,如果能推流到路由器(192.168.1.1)会怎样? •高带宽推流:提高传输带宽,数据通过多网卡传输到服务器。目前有些聚合路由器已经实现,还没有开源的方案。请关注 #2637[1]•直播推流不卡:提高抗抖动能力,路由器同时拷贝到不同服务器。和聚合路由器不同,路由器会拷贝成多路流发送到服务器。请关注 #2637[2]•企业媒体网关,降低企业网络出口压力。如果播放的是同一路流,那么路由器可以只从CDN取一路流,拷贝多份流给不同的播放器。 Note: 高带宽推流,目前有聚合
Story 经常听到一些故事: •我只想有个能推拉流的服务器,却要被迫看一堆的文档,就不能三分钟给我一台已经准备好的流媒体服务器么?•我在公网部署了一台SRS,竟然没有鉴权?谁都能推流上来啊?要用HTTP Callback自己搞啊?好难,还要学Nodejs/Go。•WebRTC要跑通太难了,要开放特殊的端口,不仅有HTTPS,还有特殊的API,而且还有CANDIDATE,跑不起来太难了。 这次发布的LightHouse+SRS产品,解决了这些问题: •只要会点鼠标,三分钟就可以有一台SRS,带公网IP,专用
https://ossrs.net/lts/zh-cn/docs/v5/doc/webrtc
本文测试的服务器环境: 腾讯云服务器Ubuntu Server 18.04.1 LTS 64位 2C4G100M
云SRS上线几个月了,大家反馈很好用,不过怎么在内网机器上部署呢?怎么在其他云部署呢?怎么在已经部署了网站的主机上部署呢? 宝塔在手,全部拥有! 举个例子,我就有两个云主机,用宝塔部署了网站和云SRS,一鱼多吃,爽啊!之前海外两台机器,每个月10刀,现在只要5刀,每年可以省60美元,一百万年就可以省6000万美元啊,赚大发了: • 腾讯云Lighthouse,部署了wp.ossrs.net[1]网站,写写一些杂七杂八的东西,还部署了lh.ossrs.net[2]云SRS,每周六做直播用的。 • Digita
万物皆可上云,air-conditioner 是上周火爆小鱼干朋友圈和公众号信息流的云空调项目。第一眼的时候,你会觉得和这个云空调还挺别致的,第二眼,si~~感到了一丝丝的“冷”,为项目作者的脑洞打了个冷颤。此外,Lima 也有点“冷”,它是一个 macOS Linux 子系统,简单来说是一个 Linux 虚拟机…真的有点“冷”幽默在里面。
经过三个月时间,SRS星球的用户超过一百了,这意味着SRS开源社区可以正常生长了。 如果有一天我干不动了,或者不想干了,SRS也可以持续成长,它已经可以自己养活自己,不再需要我养着了。 这无疑是非常重要的一天,作为一个纯开源社区,SRS已经可以活下来了。 我们逐步会提高星球的门槛,所以如果需要加星球的朋友要赶紧了。 Why Important 为什么开源社区活下来这么难?因为开源社区非常好,就是没钱,所以活下来很难。 为什么不能直接做开源商业化?因为商业化赚钱比开源社区多,但是容易死,SRS的目标不是赚钱而
可以直接下载release的binary,提供了几个常见系统的安装包,安装程序会安装系统服务,直接以系统服务启动即可。参考:Github: release或者国内镜像: release
📷 经过七年的酝酿和开发,SRS在6.0中终于正式支持了HEVC(H.265),几乎全面支持,包括RTMP、FLV、SRT、TS、HLS、DASH、GB28181、WebRTC(Safari)、DVR
领取专属 10元无门槛券
手把手带您无忧上云