一只视频程序猿的移动直播SDK初体验

音视频SDK选型指南:实时互动、直播、点播三大场景技术拆解 音视频技术正在重塑在线教育、电商直播与社交互动的体验边界。从实时通信(RTC)到流媒体分发,不同业务场景对延迟、流畅度与弱网对抗能力有着截然不同的技术要求。理解RTC引擎在400毫秒内的双向传输原理,掌握CDN直播在秒级延迟下的分发逻辑,并正确评估点播场景中的码率自适应与播放连续性,是做出理性选型的前提。商用SDK带来的稳定性与全链路服务,开源方案在灵活性与成本上的优势,以及自研路线的巨大投入,都需要结合团队阶段与业务目标综合权衡。本文从音视频底层机制出发,对比实时互动、直播、点播三大场景的技术本质,提供一 阅读详情

本文转自一只视频程序猿的移动直播SDK初体验,此处仅做排版改动。

今早老板召开站会,“移动直播这么火,市面上有一百多个APP,小斌,你下周交个原型APP瞅瞅!”

小弟心中一万匹草泥马奔过,这玩意儿哪儿是几天就能弄出来的?问候归问候,咱还是赶紧调研吧,端午还约了妹子游泳呢。

方案选项

作为公司音视频大神,对流媒体基本概念还是OK的。咱首先看看市面上火热的某客、某椒APP怎么工作的。主播端推流使用RTMP推向流媒体源站,服务器内部通过RTMP协议多级拉流至边缘CDN节点,播放端从边缘CDN节点获取直播内容,大致如下图:
这里写图片描述

其中上行RTMP推流很普遍了,很多游戏直播都使用obs推RTMP流。
在整个过程中,涉及很多流媒体的基本概念,先说说GOP。
GOP即Group of picture(图像组),指两个I帧之间的距离。即几秒有一个关键帧。分析线上主流的移动直播APP,大都在2、3秒之间。
这里写图片描述

一般的云服务公司都会提供多种协议的拉流方式,优缺点如下:

  • HLS协议,移动h5浏览器支持较好,但是延迟较大。移动端播放前需要产生三个分片,每个分片至少得是一个GOP。一个GOP即使是2秒,也意味着这个环节耗费了6秒的延时。
  • RTMP协议,需要访问1935端口,支持双向互动,实时性很好,PC flash原生支持。
  • HTTP-FLV,不支持双向互动,实时性和RTMP协议一致。

基于以下几点理由,小弟准备采用HTTP-FLV作为拉流协议:

  • 国内网络情况的恶劣程度,并不是每个网络防火墙都允许1935包通过。
  • RTMP协议和HTTP-FLV,实际传输的内容都是相同的FLV,实时性也一样。
  • RTMP协议握手方式比HTTP复杂。

确定好了拉流协议,再看看推流侧依赖的参数。

  • FPS,每秒编码传输的视频帧数;
  • 码率,每秒编码传输的音视频比特数;
  • GOP,关键帧间隔;
  • 分辨率。

在相同码率的情况下,FPS和分辨率越大,视频的图像质量越差。为了平衡主播上行带宽、用户观看下行带宽和图像质量的关系,需要很好处理这几个值。

SDK下载

首先,Android/iOS系统上,并不包含RTMP推流组件,这块需要自己开发。系统自带的播放器也不支持flv文件的播放。小弟只能去阿里云、腾讯云、百度云、金山云等大牛云服务公司找解决方案了。把每个帐号都注册一遍,大致情形如下。

这里写图片描述

其中,腾讯云ILVB实名认证后需要人工审核5个工作日,反正至今没有看到SDK。
更令人震惊的是,虽然阿里云提供多媒体云服务,但是至今尚未提供移动直播SDK。
总体来说,开放较好的是金山云,SDK放到了github上,每次change log都很清楚,几乎每周都有更新。 腾讯云就有些犹抱琵琶半遮面,给SDK试用都不痛快。

SDK功能对比

拿到SDK,首先对比一下相关功能。其中腾讯云LVB直播只提供了播放SDK,还仅只支持HLS播放,这个方案首先扑街。ILVB互动直播未拿到SDK,暂且不表。这样一来,可供选择的大型云服务商的方案就剩下金山云和百度云。

移动直播SDK涉及的功能比较多,我先解释一下几个基本功能点:

  • 推流编码,涉及软件编码和硬解编码。相同码率,软编图像质量更清晰,但是耗电更高;
  • 网络自适应,当网络抖动时根据网络情况调整发送速率;
  • 美颜,对主播图像进行美白、液化、磨皮等处理;
  • 混音,当主播聊天时,可以把背景音乐混到音视频里面;
  • 播放视频旋转,可以根据视频宽高,决定横屏还是竖屏播放;
  • 直播重加载,当播放状况不佳时,重新拉流播放。

为了对比其他方案,做了几张表格。

Android推流功能列表如下:

这里写图片描述

从表中可以看到,

  • 百度云接口还很粗糙,连移动直播必选的美颜功能都不支持,首先淘汰。
  • 小弟想有噪声抑制功能,但是这些SDK都没有支持,不过令人欣喜的是,金山云支持自定义音频数据处理,可以把自己的噪声抑制代码挂载进去。
  • 相比而已,金山云的接口较开放。其中金山云SDK支持的功能更丰富些,能满足当前移动直播的要求。

iOS推流功能列表如下:
这里写图片描述

  • 从表中可以看出,iOS推流功能丰富程度普遍较高,这和市面上主播大量使用iPhone推流有密切关系。
  • 从特色功能来看,只有金山云支持画中画和美声功能。
  • 自定义滤镜和原始数据处理,体现了SDK的开放程度,这方面百度云是严重失分的。
  • 在细节功能上,对声音和美颜的处理,体现了当前SDK对移动直播市场的重视程度。

Android播放功能列表如下:
这里写图片描述

iOS播放功能列表如下:
这里写图片描述

播放端关注点和推流端还有些不一样,播放侧除了考虑功能丰富以外,还需要考虑稳定性、功耗、包大小、开播速度等,静态对比可以作为参考。金山云支持直播重加载,能有效降低播放卡顿率。

总结一下,通过试用大型云服务商的移动直播SDK,得出以下结论:

  • 能完全运行起来的是金山云、百度云提供的SDK。腾讯云、阿里云尚未提供真正可用的移动直播SDK。
  • 从Android/iOS推流功能以及播放功能来看,金山云提供的功能最为丰富。
  • 百度云提供的推流功能还比较简单,离市面的要求有些距离。
腾讯云直播SDK含demo 腾讯云视屏直播sdk含demo,详细内容可下载后运行看demo 立即下载

相关推荐

从 SDK 到编解码:视频直播架构解析

GMTC全球移动技术大会ppt 作者:叶仲华 UCloud解决方案架构师 主题:从 SDK 到编解码:视频直播架构解析

视频直播类App SDK盘点

1、推流:即构、阿里云直播、七牛云等 即构科技由腾讯QQ团队创业,是市面暂时较好的推流SDK,但是费用太高,可以先做个对比。但美颜效果,连麦功能,狼人杀模式等确实相较其他SDK有很大的优势。 阿里云直播是由阿里集团推出的SDK,免费使用,但美颜效果一直都有问题,如果不满意的话,解决策略是接入另一个三方的美颜SDK。 七牛云效果还行,能满足市面上的大部分功能,就连麦方面的话,七牛云主体是客户端合流,...

PPCTC的博客 1万+

微信小程序消息推送全攻略:从模板消息到订阅消息的实战避坑指南

本文深入解析微信小程序消息推送机制,对比模板消息、订阅消息与客服消息的核心差异与适用场景。重点提供订阅消息从用户授权设计、前端代码实现到后端稳定发送的完整实战指南,并分享提升消息点击率的文案与运营技巧,帮助开发者构建高效、用户友好的消息推送体系。

b3n4m5q6w7的博客 336

一个 SDK,一套 API 实现音视频通话、多人连麦全互动直播

声网:https://www.agora.io/cn/

aiguoguo000的博客 1万+

SAP-PM设备模块-PM主数据之维护策略

预防性维护的一种计划方式,需要先建立维护策略什么情况下需要创建维护策略?

TRUIXIANG的博客 2571

X书关键词协议搜索

【代码】X书关键词协议搜索。

Codeooo 博客 6377

实时美颜的背后:视频直播美颜SDK的算法与原理

美颜技术的应用范围已经广泛扩展,从自拍照片到视频直播,都可以看到它的踪迹。然而,视频直播的实时性要求比静态图像高得多。要实现实时美颜,必须克服许多技术挑战。这就是视频直播美颜SDK的用武之地。

q1031691172的博客 442

隧道裂缝检测【C++PCL】

我们团队注重每一个细节,确保代码的可读性、可维护性和可扩展性达到最高标准。我们严格遵循行业最佳实践,采用模块化和面向对象的设计原则,使得我们的代码结构清晰且易于理解。我们的点云服务更是引以为傲。我们的技术团队拥有深厚的专业知识和丰富的经验,能够提供高度准确和高效的点云处理服务。无论是点云的获取、存储还是分析,我们都能够满足客户的需求,并提供出色的解决方案。我们的技术实力也是无与伦比的,拥有广泛的技术背景和深入的专业知识。

weixin_45196569的博客 848

即构ZegoLiveRoom SDK版本更新,新增多项功能及自定义设置

即构科技4月9日上线了最新的互动视频SDK,新增了多项功能,并对多项内容进行了优化。 升级完成后,用户基于ZegoLiveRoomSDK能做更多自定义设置,同时获得更丰富的音效体验。具体更新内容如下: 新版SDK新增功能 1、音频节约传输开关 新增enableVAD 接口用做语音活动检测的开关,在音频传输过程中,检测到语音时才发送语音包,可有效减少流量消耗,降低成本。...

ZEGO即构科技 2092

2万字长文:海豚调度器(DolphinScheduler)面试题深入了解

DAG图(有向无环图)是海豚调度器中表示工作流任务依赖关系的一种方式。在DolphinScheduler中,每个任务是一个节点,任务之间的依赖关系通过有向边连接这些节点来表示。无环:保证了工作流的执行顺序是确定的,避免了无限循环的问题。有向:箭头指示了任务的执行方向,即上一个任务的输出可以作为下一个任务的输入。依赖表示:通过图形化界面,用户可以通过拖拽连接线来定义任务之间的先后顺序和依赖关系。并行处理:DAG图可以表示出任务的并行关系,允许多个任务在没有直接依赖关系的情况下同时执行。条件分支。

大模型大数据攻城狮的专栏 1330

从Raw图像到超分辨率:真实场景下的图像增强全流程指南

通过本文的学习,您已掌握了利用Raw图像实现真实场景超分辨率的完整技术链——从数据生成的“真实感模拟”,到双分支CNN的“细节+色彩”协同建模,再到模型的训练与落地。本文将带您从理论到实践,掌握利用Raw图像实现真实场景超分辨率的核心技术,让您的图像在细节和色彩上都能“更上一层楼”。是相机传感器直接输出的原始数据,保留了最完整的亮度、色彩信息(如Bayer阵列的原始采样),这为超分辨率提供了“富矿级”的信息基础。该分支以低分辨率RGB图像为参考,学习“色彩变换矩阵”,让恢复的细节拥有真实的色彩表现。

FJN110的博客 142

一言不合你就用环信搞个直播APP

原文地址:http://community.easemob.com/article/825307904 里面还有我的更多开源项目干货,欢迎大家过来点赞 最近互联网直播平台催生了一批批网红大咖,作为程序猿,我们绝不甘于委身幕后做搬砖工,我们一定要闪亮登场!!!做一个属于我们程序猿的IOS版直播平台~~ 来吧!少年,跟着我们做完这个APP,下一个“朱碧石”,肯定就是你啦~先看看我们即将要做的

江南孤鹜——“知行合一”的Software Developer 1万+

Android车载蓝牙开发全攻略:从基础到高级优化

本文系统介绍了Android车载蓝牙开发的核心技术与实践指南。文章首先阐述了蓝牙在智能汽车中的关键作用,包括免提通话、音频流媒体等应用场景。随后详细解析了蓝牙协议基础,重点介绍了HFP、A2DP等车载常用协议。开发实战部分提供了设备发现、连接、数据传输的完整代码示例,并融入多线程和内存优化技巧。通过真实车载案例,展示了启动时间、流畅度和资源使用的优化策略。最后针对面试需求,提供了专业的技术问答,涵盖蓝牙开发全流程。全文紧密结合Android车载开发职位要求,为开发者提供了一套完整的蓝牙技术解决方案。

郑伟强dev的专栏 118

没想到!网络美女直播背后的真相居然是这样

有一次不经意进了优酷的美女直播间,被主播的乖巧卖萌和满屏的飞机大炮深深震撼。据调查报告显示中国网络直播平台大约有200家,且最高的美女主播年薪有300万,让人不禁感叹能靠颜值吃饭是件多么愉快的事情。然而作为程序猿,还是让我们来看一下直播背后的实现原理吧。

华为开发者社区的博客 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

直播、视频会议、屏幕共享—RTC实时音视频各大平台如何选择

最近在做一个聊天项目,除了简单的图文交互,逐渐接触到了直播,音视频通话,音视频会议等功能。开源的直播和音视频会议有好多解决方案,但是了解得越多,发现音视频服务涉及到的技术越来越深,自己和团队有些hold不住,像什么服务端混流,转码,编解码,美颜,去噪,加速等。 小团队就几苗人,即时开源方案搞起来,用户体验也不太好,后续遇到问题也不好解决。 于是考虑商业解决方案,目前有实力做音视频服务的也都是一些传统互联网平台企业,比如腾讯云,阿里云,华为云等。最近被马斯克捧起的Clubhouse据说由一家国内企业背后做

夏至海的博客 2779

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

从无到有开发连麦直播技术点整理

最新再跟老师手下的项目,碰到流媒体,流媒体服务器,视频编码技术,推流,拉流等概念,看到本篇博客整理的概念很全面,很自信,故转发留存,感谢原博主。       关键字 采集、前处理、编码、传输、解码、渲染,推流,拉流、连麦、直播、互动、RTMP 原理科普 为何一直推荐WebRTC?RTMP vs RTMFP大话直播android音视频点/直播模块开发一些基本概念【如何快速的开发一个完整的iOS直播app】(原理篇)...

publicstaticfinal的博客 367

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

网易云信周梁伟:聊聊搭建无上限人数直播聊天室

本文作者周梁伟,现任网易云信IM即时通讯云服务器端开发负责人。2011年加入网易,先后担任网易后台技术中心与网易大数据平台资深开发工程师,负责即时通讯领域的产品开发。一、直播聊天室的形式和应用场景在一般人的理解中,直播聊天室应该就是直播画面旁配一个聊天窗口,众多观看者在里面发表自己的评论(如图1),随着互联网技术的发展和消费者群体的转移,这种简单的聊天室已经满足不了广大网民的需求。 图1:...

codewoman的博客 1249

移动研发怎么做才能驱动研发效能提升?

在业务持续发展下,研发效能提升似乎已成为各研发团队头顶上的紧箍咒,日常超负荷的研发需求不免让程序猿也站上了迭代的流水线,到底移动研发应该怎么做,才能真正驱动研发效能的提升? 近日,FinClip 邀请到资深 iOS 研发工程师王华磊,唯捷众品技术总监吴耀东,米链信息前端负责人李阳作为嘉宾参与 「FinClip Open Day | 圆桌会议」,期间他们与 FinClip 产品经理王字就“移动研发效能提升”做了深入的沟通交流,活动也从开发者角度讨论了 FinClip 在移动研发效能提升中的方案和作用。

POHOU23的博客 496

网易云信周梁伟:聊聊无上限人数直播聊天室搭建

本文作者周梁伟,现任网易云信IM即时通讯云服务器端开发负责人。2011年加入网易,先后担任网易后台技术中心与网易大数据平台资深开发工程师,负责即时通讯领域的产品开发。一、直播聊天室的形式和应用场景在一般人的理解中,直播聊天室应该就是直播画面旁配一个聊天窗口,众多观看者在里面发表自己的评论(如图1),随着互联网技术的发展和消费者群体的转移,这种简单的聊天室已经满足不了广大网民的需求。 ...

codewoman的博客 1072

干货|「2016全球移动技术大会」演讲PPT都在这里啦

全球移动技术大会(GMTC)是由InfoQ主办的全球顶级技术盛会,大会的目的是促进全球移动技术交流,推动国内技术升级。GMTC为期两天,主要面向中高级移动开发技术人员,大会聚焦移...

滴水穿石,点石为金 299

前方有坑!独立移动开发者绕坑指南(安卓篇)

众所周知移动App行业已经在15年开始走下坡路了,行业格局基本已经确立,各行业巨头已牢牢把握住眼中的肥肉。   但是这也不能阻止热爱独立开发的程序猿们加入这场战斗,巨头吃肉,我们喝汤。   但是如果你以为喝汤是那么容易的事情,那么你又错了,游戏规则就是弱肉强食,如果你不了解其中的规则、陷阱,那就免不了一次又一次地掉入游戏规则中的“坑”中。   下面,笔者就从个人经验和大家谈谈

灯灯科技 1098

OpenGL ES在Android NDK环境中的使用及多线程开发

。。。。

liuderong0的博客 1635

FinClip 11月小报丨支持国际账户登录与注册;资源下载中心上线

2021 年只剩下不到一个月的时间了,大家年初制定的目标都达成了吗?而 FinClip 在 2021 年初所制定的工作也基本都要完成了,今年我们在产品研发,运营,市场与销售上都完成了一个又一个的小目标,那过去的11月我们又有哪些更新呢?一起来看看吧。 产品动态 FIDE 编辑器优化 在本月更新的 FIDE 中,我们基于 Visual Studio Code(VSCode) 优化升级了编辑器的使用体验。新版本编辑器现在支持了资源管理器与搜索功能,现在可以通过编辑器批量搜索或替换代码中的内容了。 FinC

凡泰极客Blog 456
上一篇: Tcp三次握手和四次挥手状态图
下一篇: 节选—Android 视频直播 ( 从快播到直播,从高清到无码 )十年视频开发项目
voidreturn
博客等级 码龄10年 53粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值