直播带货app源码,实现直播连麦和PK
一、概述
连麦:是指直播带货app源码中,由观众向主播发起连线请求,在主播和该观众之间建立低延迟的通讯链路,而其他观众可以看到“主播+连麦观众”的合成音视频内容。
PK:是指直播过程中,由主播发起,选择与其他主播进行PK,主播间建立低延迟的通讯链路,在所有观众方可以看到两个主播的合成音视频内容。
二、产品形态及流程
2.1 连麦
¬ 主播端根据等级,确定发起的直播间是否可以接收观众的连麦请求;
¬ 播放端根据等级,确定观看直播时是否可以发起连麦请求;
¬ 播放端发起连麦请求后,需排队等待麦序,及等待主播响应后才能开始连麦;
¬ 主播端或连麦观众主动结束连麦,主播结束直播或连麦观众退出直播间,结束连麦。
2.2主播PK
¬ 主播创建直播,选择PK模式;
¬ 挑选PK对象(好友或系统随机匹配);
¬ 开始PK;
¬ 任一主播退出PK,结束。
三、方案选择
实际上,直播带货app源码连麦与PK在即时通讯部分的基础技术基本一致。但如何实现即时通讯,则有不同的方案。其差别主要体现在使用何种协议,是否对采集到的不同音视频进行混流,以及如何混流。
3.1 协议选择
a) RTMP,商业CDN广泛支持的一种协议,延迟相对较大。
b) RTP,WebRTC基于该协议通讯,延迟较小,但商业CDN不支持,业内使用较多。
c) 私有协议,延迟小,整套协议规范及传输方式、部署都需自己实现。
协议名称 | 传输层 | 延迟 | CDN支持 | 开发难度 |
---|---|---|---|---|
RTMP | TCP | 大,1-3s | 广泛 | 易 |
RTP | UDP | 小,<1s | 需自己部署 | 中 |
私有协议 | UDP | 小,<1s | 需自己部署 | 难 |
总结:直播带货app源码移动端保证较小延迟,应尽可能采用UDP传输,但由于商业CDN一般仅支持RTMP,所以推送到CDN需使用RTMP。
3.2 混流技术
a) 不混流,是指主播或连麦用户的直播流,直接推送到CDN。播放端拉取多路直播流,分屏同时渲染。
b) 主播端混流,是指在主播端拉取另一主播/连麦观众的直播流后,本地进行音视频合成,然后封装成RTMP格式推送,播放端可以兼容旧播放器。
c) 服务端混流,是指在直播带货app源码服务端将直播流解码,进行音视频混流后,再次编码,以RTMP流格式推送到CDN,播放端兼容旧播放器。
方案 | 瓶颈 | 播放端 | 延迟 | 下行带宽 | 体验问题 |
---|---|---|---|---|---|
不混流 | 带宽 | 需重新开发 | 小 | 成本翻倍 | 可能两路流不同步 |
主播端混流 | 主播端性能 | 兼容性强 | 很大 | 不变 | 主播端手机发烫,上行带宽不够,延迟过大 |
服务端混流 | 服务端资源 | 兼容性强 | 大 | 不变 | 中等 |
总结:
1).混流的过程中,由于要同步多路流的进度,考虑到网络抖动,相较于不混流的情况,延迟会增大,但下行带宽减半;
2).不同混流方案中,主播端混流不适用移动直播场景(将性能瓶颈分布到各个主播设备上,系统资源消耗少,但延迟很大,主播设备不稳定),服务端混流可能会消耗大量计算资源(由于服务端解码为冗余工作,且集中混流)。
3).整体而言,播放量较少场景下,直播带货app源码可采用不混流方案,播放量较大可采用服务端混流方案。
声明:本文由云豹科技转发自littleRabbit博客,如有侵权请联系作者删除
直播带货app源码,实现直播连麦和PK相关推荐
- 直播带货app源码搭建,从直播CDN原理说起
到处都在谈直播,直播带货app源码技术目前越来越大众化,但也面临着更多的挑战.本次分享主要介绍直播的一般流程,CDN的技术原理及架构,CDN直播技术的难点和对应的解决方案.希望能够给大家带来帮助,更希 ...
- 实现一个小程序端的直播带货app源码
直播组件的使用 配置直播 直接在app.json中引入插件 "plugins": {"live-player-plugin": {"version&q ...
- 直播带货app源码,实现直播的秒开和优化
一.概述 目前,移动视频直播正处于一个高速膨胀的时期.游戏直播,秀场直播.直播带货app源码等APP铺天盖地.如何在千军万马中脱颖而出,直播的实时性和流畅性是重中之重. 直播带货app源码的实时性对于 ...
- 运营级手机直播平台源码 短视频直播带货APP源码
短视频直播带货APP源码 全开源原生直播APP源码 前端:原生APP 安卓端:Java 苹果端:OC 后台:PHP 数据库:Mysql 技术框架:Thinkphp5.1 系统特色功能包括:礼物系统:提 ...
- 直播带货app源码,用代码来实现全屏
直播带货app源码,代码实现全屏用到的相关代码 Window window = getWindow();requestWindowFeature(Window.FEATURE_NO_TITLE);if ...
- 直播带货app源码,android 全透明式状态栏
直播带货app源码,android 全透明式状态栏实现的相关代码 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){//半透明头部状 ...
- 小程序直播带货app源码直播组件接入指引
小程序直播带货app源码直播组件接入指引 一.简介 小程序直播带货系统,是微信提供给小程序开发者的直播组件.通过调用该组件,商家可以在直播带货app源码中实现直播功能. 按下面的使用说明接入,在你的直 ...
- 直播带货app源码,进行直播平台的环境部署
直播项目环境部署 最近总是接到直播带货app源码的开发,在环境部署的过程中踩了不少坑.现在我将环境部署的完整教程分享给大家. 一 .搭建前期准备 注:操作系统centos7.0以上 64位,直播带货a ...
- 短视频直播带货app源码, 一套系统刷视频购物都能用
电商行业的发展,人们的购物方式悄悄的发生了细微的变化,越来越多的人更喜欢边刷短视频边购物,短视频带货源码平台应运而生,那么直播带货开发优势有哪些呢? 短视频电商优势: 一. 带货不只是直播 各类带货系 ...
最新文章
- 【S1官方核心】18128核心纯净雅黑H大全力打造的1.9精品
- 10061 mysql,Navicat无法连接到MySQL server的10061错误
- Linux下profile和bashrc四种的区别
- 精选30道Java多线程面试题
- 【APICloud系列|18】上架Android应用到腾讯应用包、百度手机助手、华为应用市场、小米应用商店、阿里应用分发平台需要准备哪些材料?
- vsCode 设置vue 保存自动格式化代码
- python模块导入_python模块导入
- PHP数据结构之四 一元多项式的相加PHP单链实现
- 4.3 深层网络中的前向传播
- BigDecimal.divide方法
- 经典机器学习系列(八)【支持向量机】
- Springboot集成JavaMailSender发送邮件
- 基于bootstrap的双边栏选择框_iphone自带Dock栏美化功能,你out了
- 浏览器对URL的长度限制
- 在VirtualBox安装Ubuntu虚拟机实现文件夹共享
- android 得到屏幕尺寸 状态栏尺寸 标题栏尺寸
- 欧几里德游戏(归纳总结)
- ENVI处理高分一号PMS影像数据
- DappRadar x BGA 7月链游报告:链游占行业用量近60%,融资额降至3亿美元
- C#查找Excel重复值(多列)
热门文章
- 域组策略与本地组策略
- 如何用Python给图片添加文字/图片水印的方法,特别简单好用,filestools和Pil模块
- 怎么让热图显示基因名_教你画一个掰弯的热图(Heatmap),展示更多的基因表达量...
- 力扣(LeetCode)236. 二叉树的最近公共祖先(C语言)
- 2012-03-16
- 测试POST传输工具【poster】。
- wps excel 中将一行多列数据转换为一行两列的格式 的方法函数
- NUnit2.0详细使用方法 选择自 cyp403 的 Blog
- 互联网寒冬!一线互联网移动架构师筑基必备技能之Java篇,附带学习经验
- php 计算工龄,excel如何计算工龄