热门标签 | 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通过负载均衡系统将内容推送到接近用户的边缘节点,显著提高了用户的访问速度和稳定性,非常符合直播的需求。


推荐阅读
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文介绍如何在QT框架中使用QWebSocket和QTcpSocket实现SSL加密通信,涵盖单向认证设置。单向认证常见于Web通信场景,其中客户端验证服务端证书,而服务端不验证客户端证书。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
  • 本主题面向IT专业人士,介绍了Windows Server 2012 R2和Windows Server 2012中的组托管服务账户(gMSA),涵盖了其应用场景、功能改进、硬件和软件要求以及相关资源。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 本文回顾了2017年的转型和2018年的收获,分享了几家知名互联网公司提供的工作机会及面试体验。 ... [详细]
  • 本文将详细探讨 Java 中提供的不可变集合(如 `Collections.unmodifiableXXX`)和同步集合(如 `Collections.synchronizedXXX`)的实现原理及使用方法,帮助开发者更好地理解和应用这些工具。 ... [详细]
  • 本文详细介绍了虚拟专用网(Virtual Private Network, VPN)的概念及其通过公共网络(如互联网)构建临时且安全连接的技术特点。文章探讨了不同类型的隧道协议,包括第二层和第三层隧道协议,并提供了针对IPSec、GRE以及MPLS VPN的具体配置指导。 ... [详细]
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社区 版权所有