热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

直播带货系统中的推流技术详解

本文介绍了RTMP(实时消息传输协议)及其在直播带货系统中的应用,并详细探讨了带货直播系统的连麦方案,包括服务端合流和客户端合流的优势与劣势。

什么是RTMP?

RTMP(Real Time Messaging Protocol)是实时消息传输协议的缩写。该协议基于TCP,是一组协议的集合,包括基本的RTMP协议以及RTMPT、RTMPS和RTMPE等多种变体。RTMP主要用于在Flash/AIR平台和RTMP协议支持的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server、Ultrant Media Server和Red5等。RTMP与HTTP一样,属于TCP/IP四层模型的应用层。


RTMP传输协议

RTMP是由Adobe Systems开发的开放协议,用于在Flash播放器和服务器之间传输音频、视频和数据。它有多种变体:

1. RTMP工作在TCP之上,默认使用端口1935;

2. RTMPE在RTMP基础上增加了加密功能;

3. RTMPT封装在HTTP请求中,可以穿透防火墙;

4. RTMPS类似于RTMPT,增加了TLS/SSL的安全功能。

RTMP协议像一个容器,可以封装AMF格式的数据或FLV中的视/音频数据。一个单一的连接可以通过不同的通道传输多路网络流,这些通道中的数据包按固定大小传输。


带货直播系统的连麦方案

目前市场上带货直播系统的连麦方案主要有两种:CDN连麦和RTC连麦。以下是RTC连麦方案的详细介绍。

方案一:服务端合流

优势:

- 发热量低,电量损耗小;

- 在客户端网络不佳时,对直播的影响较小。

劣势:

- 成本高:云服务商按分钟计费;

- 延迟大:音视频流需经过服务端中转并进行合成转码再推流。

方案二:客户端合流

优势:

- 节省成本:无需支付旁路推流费用;

- 延迟小:主播端直接推流,减少传输过程中的延迟。

劣势:

- 手机发热量大:手机端直接推流,对性能有一定损耗;

- 在弱网环境下,影响直播效果,主播端需同时推送两路流,考验上行网络。


推流小助手

推流小助手采用客户端合流方案,虽然会导致手机发热量增加,但为了节省成本,这一点牺牲是可以接受的。


何时使用推流小助手?

- 音频连麦:带货直播系统音频连麦对设备性能消耗小,带宽占用低,能实现低延迟和低成本;

- 视频PK模式:两人进行直播连麦,对带宽和性能消耗较小,适合使用;

- 单主播模式:单主播模式客户端无需转码,直接推流,不损耗客户端性能;

- 多人连麦(超过2人):连麦人数超过2人时,建议连麦人数不超过6人,超过6人建议使用服务端旁路推流。


高效的省钱连麦方式

市场上大多数连麦方式采用服务端合流,这对RTC提供商非常有利。然而,随着RTC市场的竞争加剧,许多提供商开始通过增值服务增加收入,因此市场上较少见到客户端合流的方案。

在网络条件较差时,可以关闭本地推流,开启服务端旁路推流;在网络条件良好时,关闭服务端旁路推流,开启本地推流。


推流小助手功能介绍

推流方式:

- 视频直播,音频连麦方式;

- 视频直播,视频连麦方式;

- 音频直播,音频连麦方式;

- 视频直播,音频连麦/视频连麦可相互切换;

- 设置直播推流转码。


功能描述
用户视图布局自定义视图布局
背景颜色可自定义背景颜色
水印可在直播房间内添加水印(包括网站logo或名称和时间)
拓展信息-SEI直播:推流端将歌词/字幕分发到播放端,播放端实时绘制出歌词
音频采样率/声道/音频编码格式保证声音还原真实自然
视频分辨率/码率/帧率以及输出的视频编码格式保证视频流畅度和清晰度

CDN旁路推流

CDN(Content Delivery Network)是内容分发网络,旨在避免互联网上的传输瓶颈和不稳定环节,使内容传输更快、更稳定。其目标是让带货直播系统的用户能够就近获取所需内容,解决Internet网络拥堵问题,提高用户访问网站的响应速度。

简而言之,CDN利用遍布各省份和运营商的节点资源,优化跨运营商和跨区域的访问问题。在网络稳定的情况下,延迟时间可控制在80ms~100ms,几乎可以认为是同步的。

CDN的主要流程如下:

1. 主播开始直播,向调度服务器发送请求,调度服务器返回推流域名和sn;

2. 主播端采集音视频数据,发送给CDN节点,CDN节点进行处理;

3. 观众端要观看主播的视频,向调度服务器发送请求,返回拉流域名;

4. 观众端向CDN节点请求音视频数据。

带货直播系统对网络要求极高,任何问题都会导致卡顿、花屏或掉线。CDN通过负载均衡系统将内容推送到接近用户的边缘节点,显著提高了用户的访问速度和稳定性,非常符合直播的需求。


推荐阅读
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 本文深入解析了 Kubernetes 控制平面(特别是 API 服务器)与集群节点之间的通信机制,并对其通信路径进行了详细分类。旨在帮助用户更好地理解和定制其安装配置,从而增强网络安全性,确保集群的稳定运行。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • Keepalived 提供了多种强大且灵活的后端健康检查机制,包括 HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK 和 MISC_CHECK 等多种检测方法。这些健康检查功能确保了高可用性环境中的服务稳定性和可靠性。通过合理配置这些检查方式,可以有效监测后端服务器的状态,及时发现并处理故障,从而提高系统的整体性能和可用性。 ... [详细]
  • 深入探索HTTP协议的学习与实践
    在初次访问某个网站时,由于本地没有缓存,服务器会返回一个200状态码的响应,并在响应头中设置Etag和Last-Modified等缓存控制字段。这些字段用于后续请求时验证资源是否已更新,从而提高页面加载速度和减少带宽消耗。本文将深入探讨HTTP缓存机制及其在实际应用中的优化策略,帮助读者更好地理解和运用HTTP协议。 ... [详细]
  • 在iOS开发中,基于HTTPS协议的安全网络请求实现至关重要。HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer)是一种旨在提供安全通信的HTTP扩展,通过SSL/TLS加密技术确保数据传输的安全性和隐私性。本文将详细介绍如何在iOS应用中实现安全的HTTPS网络请求,包括证书验证、SSL握手过程以及常见安全问题的解决方法。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
author-avatar
浪子一品香_938
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有