直播平台搭建中关于直播推流的三种常见协议

简介:

直播行业经过爆发式增长后“荷尔蒙经济”逐渐减退,如今的直播行业商业模式已经趋于成熟,并开始进入发展的新阶段。直播平台搭建项目也早已成为热门开发项目,但是在进行项目开发之前,关于直播的推拉流也是需要进行了解的。而推流是直播的第一步,所以今天给大家简单分享一下推流中都有哪些推送协议和他们的现状及优缺点。

1.  RTMP

实时消息传输协议该协议基于 TCP是一个协议族。其中包括 RTMP 基本协议及 RTMPT/RTMPS/RTMPE 等多种变种。RTMP 是一种设计用来进行实时数据通信的网络协议,主要用来在 Flash/AIR 平台和支持 RTMP 协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括 Adobe Media Server/Ultrant Media Server/red5 等RTMP 是目前主流的流媒体传输协议,广泛用于直播领域,可以说市面上绝大多数的直播产品都采用了这个协议。

优点CDN 支持良好,一般主流的 CDN 厂商都支持协议简单,在各平台上实现也很容易

缺点基于 TCP ,传输成本高,在弱网环境丢包率高的情况下问题显著不支持浏览器推送

2.WebRTC

是一个支持网页浏览器进行实时语音对话或视频对话的 API。它于 2011 年 6 月 1 日开源并在 Google、Mozilla、Opera 支持下被纳入万维网联盟的 W3C 推荐标准。目前主要应用于视频会议和连麦中

优点W3C 标准主流浏览器支持程度高,不仅有Google 在背后支撑,而且在各平台有参考实现底层基于 SRTP 和 UDP,弱网情况优化空间大可以实现点对点通信,通信双方延时低

缺点传统 CDN 没有提供类似的服务

3.基于 UDP 的私有协议

有些直播应用会使用 UDP 做为底层协议开发自己的私有协议,因为 UDP 在弱网环境下的优势通过一些定制化的调优可以达到比较好的弱网优化效果,但同样因为是私有协议也势必有一些问题。

优点:支持更多空间进行定制化优化

缺点开发成本高并且对CDN 不友好,需要自建 CDN 或者和 CDN 达成协议

以上就是直播平台搭建过程中直播推流经常会用到的三种协议,而这三种协议的优缺点适应不同的功能和直播需求,所以在使用时也需要认真做出考量,从而顺畅的完成直播的推拉流,给用户带来良好的直播观看体验。

本文声明原创,转载请注明出处。

相关文章
|
Shell 网络安全 文件存储
Tailscale:随时随地远程和使用服务器
Tailscale:随时随地远程和使用服务器
|
6月前
|
人工智能 算法 API
多模态模型卷王诞生!InternVL3:上海AI Lab开源78B多模态大模型,支持图文视频全解析!
上海人工智能实验室开源的InternVL3系列多模态大语言模型,通过原生多模态预训练方法实现文本、图像、视频的统一处理,支持从1B到78B共7种参数规模。
987 6
多模态模型卷王诞生!InternVL3:上海AI Lab开源78B多模态大模型,支持图文视频全解析!
|
11月前
|
安全 算法 网络安全
SSL/TLS协议是什么?
SSL/TLS协议是什么?
1146 57
|
4月前
|
数据采集 存储 Web App开发
多线程爬虫优化:快速爬取并写入CSV
多线程爬虫优化:快速爬取并写入CSV
|
编解码
FFmpeg开发笔记(三十三)分析ZLMediaKit对H.264流的插帧操作
《FFmpeg开发实战》书中3.4.3节讲解如何将H.264流封装成MP4。H.264流通常以SPS→PPS→IDR帧开始,这一说法通过雷霄骅的H264分析器得到验证。分析器能解析H.264文件但不支持MP4。ZLMediaKit服务器在遇到I帧时会自动插入SPS和PPS配置帧,确保流符合标准格式。若缺少这些帧,客户端拉流时会报错。FFmpeg开发实战:从零基础到短视频上线》书中提供了更多FFmpeg开发细节。
435 0
FFmpeg开发笔记(三十三)分析ZLMediaKit对H.264流的插帧操作
|
10月前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
2420 16
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
Java 数据安全/隐私保护
Java ffmpeg 实现视频加文字/图片水印功能
【10月更文挑战第22天】在 Java 中使用 FFmpeg 实现视频加文字或图片水印功能,需先安装 FFmpeg 并添加依赖(如 JavaCV)。通过构建 FFmpeg 命令行参数,使用 `drawtext` 滤镜添加文字水印,或使用 `overlay` 滤镜添加图片水印。示例代码展示了如何使用 JavaCV 实现文字水印。
1033 1
|
Python
【ERROR】asyncio.run(main())报错:RuntimeError: Event loop is closed
【ERROR】asyncio.run(main())报错:RuntimeError: Event loop is closed
816 0
|
Java API C++
【C++ 与Qt 线程】C++ std::thread 与Qt qthread多线程混合编程
【C++ 与Qt 线程】C++ std::thread 与Qt qthread多线程混合编程
893 1