分布式直播系统(一)【协议基础篇】

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

转载请注明出处:https://blog.csdn.net/impingo
项目地址:https://github.com/im-pingo/pingos

最简单的直播系统

在讲直播服务器之前我们先大概描述一下最简单的直播场景(单点流媒体服务器),如下图所示主播使用rtmp工具推流,观众使用相应的拉流协议拉流。
​​单点流媒体服务器

协议介绍

rtmp协议

流式协议,所谓流式是指rtmp协议在传输过程中是将一整帧完整数据分割成大小基本相等的小块(chunk)传输,支持推流和拉流操作,目前adobe已经停止对该协议进行升级,所以rtmp是不支持一些比较新的音视频编码的(例如 h265 vp8 vp9 等等,但是国内的CDN厂商一般会对rtmp协议做私有扩展,使其能够支持h265编码)。

http-flv协议

这是一种更简单直播方式,实现原理是对于http下载请求,如果http头中没有content-length字段,则http客户端就会一直接受服务器传来的数据,直到服务器将tcp连接断开。试想一下,如果http服务器在播放器请求的时候先返回flv文件头,然后接着返回最新的直播内容,播放器就可以一直直播下去,直到服务器断开连接。

hls协议

一种基于http下载操作的媒体协议,简单概括一下就是,服务器端会动态生成一个m3u8文本文件和多个mpegts(一种媒体封装格式)切片文件,m3u8文本中包含这些切片的路径,试想一下,如果服务器不停产生新切片并且删除老切片,通知更新m3u8文件,这样m3u8文件中描述的mpegts文件就是当前最新的直播内容。客户端的行为是只需要不停请求m3u8文件并且发现如果m3u8文件内容发生变化就下载新的mpegts文件进行播放。

其他协议

其他直播协议还有DASH、http-ts、http-fmp4,甚至当今比较火的实时性更高的webrtc协议。
这些协议和系统的教程将在完成rtmp、http-flv、hls协议系统的架构后开展。

总结

协议场景延时
rtmpflash、ffplay、vlc等终端播放器2s+((如果取消缓存也可以做到1s左右延时))
http-flvflash、ffplay、vlc等终端播放器,当然也有h5播放方案(利用mes方案,如flv.js,以后会介绍具体实现方式)2s+(如果取消缓存也可以做到1s左右延时)
hls几乎支持所有终端播放器(包括html5)5s+
http-ts与http-flv非常类似,只不过是利用http协议分发ts媒体流同http-flv

下一篇将介绍如何搭建一个支持http-ts、http-flv、rtmp、hls、dash协议的流媒体服务器。

QQ交流群:697773082

TS推流工具,操作简单方便直接使用 ts推流工具,udp推流工具,内附实用的使用说明书..... 立即下载

相关推荐

UDP发送TS流打包成RTMP推流到服务器

主要做对UDP发送的H264 AAC的音视频TS流做解包并重新打包成RTMP需要的格式,并推送至服务器,实现视频直播。 由于在前端是以H264 AAC编码,所以在后期实时封装RTMP时不需要重新编码,缩短了封装推流的时间。输入源为H264 AAC编码的视频流。

3步安装http-flv/rtmp/hls/hls+/http-ts直播系统

3步搭建直播系统介绍新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入段漂亮的代码片生成个适合你的列表创建个表格设定内容居中、居左、居右SmartyPants创建个自定义列表如何创建个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 介绍 izaizhiqi 文章分布式直播...

impingo的博客 4154

TS协议详细解析 通俗易懂

此解析容易懂,很好的解析说明,度被华为收录!!!

hls之m3u8、ts流格式详解

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33890499的博客 1740

分布式直播系统(四)【nginx-rtmp流媒体直播服务器单集群实现方式】

转载请注明出处:https://blog.csdn.net/impingo 项目地址:https://github.com/im-pingo/nginx-rtmp-module 目录关键词单集群方案静态回源QQ交流群:697773082(流媒体人) 关键词 回源:假设当前有两台服务器A和B,服务器A上存在某条流S,此时有播放端向服务器B请求流S,由于服务器B上不存在该条流所以服务器B只有向服务...

impingo的博客 6672

android 屏幕推流 ts,GitHub - lzzkdxc/EasyRTMP-Android: RTMP推流直播:A simple, robust, low latency RTMP video...

EasyRTMP-AndroidA simple, robust, low latency RTMP video&audio&screen stream pusher and recorder on android. 精炼、稳定、高效的安卓前/后摄像头/手机桌面屏幕采集、编码、RTMP/FLV直播推送工具,充分秉承了RTMP在即时通信领域中的技术特点,网络条件满足的情况下,延时控制...

weixin_30611667的博客 612

分布式直播系统架构

https://www.centos.org/download/

u012115197的博客 1525

分布式直播系统(七)【10分钟掌握高并发高可用直播集群架构】

带你捋顺直播CDN系统,快速搭建起直播集群。

impingo的博客 2417

直播系统平台开发在技术方面的要求很高

直播系统平台开发的了解、入门、熟练、精通并不容易 理解编写程序开发的功能文档是件容易的事,毕竟市场上有用那么多的优秀的程序可以借鉴。但是想要把直播程序功能实现的的门槛很高。用代码实现功能是个十分困难的任务。套优秀的程序,需要极强的使用上便利性,还有优秀的UI交互逻辑,完善的功能和便于理解操作逻辑;简洁优美的界面设计...... 可以说良好的直播源码 直播代码是高效稳定的基础,完善架构能力和有效易用的基础是程序开发的基石。用心开发的直播程序才能充分满足用户需求,每个技术步骤都做到稳定可行可以

mazz11的博客 805

直播系统定制开发中安卓直播间websocket协议破解还原

前言 现如今在直播系统定制开发中直播协议很多已经很少使用http轮询的方式获取直播间的弹幕、礼物、关注等,在用的目前知道的是某音的直播,其他的些app已经使用socket或者websoceket获取直播间的弹幕等,本次主要针对websocket提供协议破解思路。 设备:小米note8、windows 案例:具体不提供,仅提供破解思路。 抓包分析 本次抓包使用的Charles进行抓包websocket,Charles配置简单,抓包方便。 打开该app的直播间,在Charles中可以很清晰的看到,在

云豹直播源码 1198

构建高效稳定的短视频直播系统架构

通过弹性可扩展的云基础设施、分布式流媒体处理和强大的实时数据处理能力的考虑,可以实现短视频直播系统的高效运作和用户满意度。构建高效稳定的短视频直播系统需要建立弹性可扩展的云基础设施,以应对用户量的突然增加和流量的峰值。短视频直播近年来蓬勃发展,吸引了大量用户和广告主的关注。根据需求分析的结果,选择合适的技术组件和平台,设计短视频直播系统的技术架构,充分考虑云基础设施、流媒体处理和实时数据处理等关键要素。首先,需要对短视频直播系统的业务需求进行全面的分析,确定系统的功能和性能指标,并制定相应的规划和目标。

qq_33665793的博客 879

http协议简介

什么是 HTTP 协议 2 HTTP 协议的发展历程 3 HTTP 的主要特点 4 HTTP 协议的会话方式 5 HTTP1.0 和 HTTP1.1 的区别 6 HTTP 请求 7 HTTP 响应

【限时公开】某头部网校直播系统的Python架构设计细节曝光

揭秘教育直播Python开发核心架构,解决高并发与低延迟难题。适用于在线课堂、万人直播等场景,采用异步协程与微服务设计,提升系统稳定性与扩展性。某头部网校实战经验总结,值得收藏。

FuncTide的博客 1109

从零搭建直播系统的开源软件架构指南

本文介绍了基于开源技术的完整直播系统架构方案,涵盖推流、传输、处理和播放全流程。核心组件包括SRS/MediaMTX媒体服务器、FFmpeg转码集群、MinIO/Ceph存储系统、Nginx/Traefik CDN分发以及video.js等播放器。文章详细说明了各层技术实现,提供了SRS配置样本、FFmpeg转码命令和Nginx CDN配置示例,并设计了管理系统API。最后介绍了基于Prometheus的监控系统架构和关键指标,以及实时字幕等扩展功能的实现方式。该方案全部采用开源技术,适合中小型直播平台建设

csdn_tom_168的博客 1843

cdn搭建原理_直播系统搭建所用到的技术原理

在开发直播系统平台中,会运用到非常多的技术难点,例如视频/音频处理,图形处理、视频/音频压缩、CDN分发等,每个技术都够学好几年的。今天就跟大家介绍下开发套视频直播系统,整个流程中所运用到的技术原理大概是哪些。 首先我们来了解个完整的直播APP原理是:把主播录制的视频,推送到服务器,再由服务器分发给观众观看。 流程: 采集 —>处理—>编码和封装—>推流到服务器—&...

weixin_35316287的博客 247

手机直播系统 服务器,手机直播系统平台搭建部署开发

原标题:手机直播系统平台搭建部署开发如今网络发展如此迅速,除pc端直播开发的发展迅速外,手机直播系统也在不断进步,尤其是现在人们对手机的依赖程度增加,更多的人喜欢从手机上看直播,因为手机看直播更方便,能利用更多碎片化的时间观看直播。与pc端直播平台相同,手机直播系统同样需要自己的开发语言和后台采集系统,手机端安卓开发语言采用java,IOS苹果采用object c原生开发,后台管理采用PHP语言开...

weixin_42161497的博客 734

直播系统开发中如何优化API接口的并发

直播系统开发中,API接口并发的优化是非常重要的,因为它可以提高系统的稳定性和性能。本文将介绍些优化API接口并发的方法。

开源直播系统源码 4456

JAVA直播系统视频聊天直播语聊系统源码支持APP

Java直播系统源码解析:构建全平台视频聊天与语聊直播平台的技术实践

2301_76386147的博客 668
下一篇: 分布式直播系统(二)【搭建单点rtmp\http-flv\hls流媒体服务器】
im-pingo
博客等级 码龄7年 304粉丝 45原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值