iOS 视频直播的学习之路 ---- 直播大时代

首先,今天偶尔看了庄明浩先生的一篇演讲,大概内容如下(想看完整版的在这里 https://zhuanlan.zhihu.com/p/20717041):

直播大概是最近一段时间被资本市场疯狂关注,现在我们看到的这些公司上线都已经有段时间.以斗鱼为代表的直播平台,自14年创立到 现在已经有俩年的时间了。映客这一波为代表公司 ,创立的时候应该是15年年初。在15年下半年的时候,他们火过一波。今天为什么关注呢?有很多的原因,有资本市场的原因,有行业发展的原因,当然也有这些公司估值的原因等等。作为一个观察者,可能更多是一个用户。直播这俩年行业发展的很快,所以有很多新的事情。

个人感觉:

1.直播未来会成为所有人的“标配”,甚至不局限在视频行业;

2.远期是整个大视频领域的竞争;

3.所有人的目标其实只有一个:抢占用户的时间;

4.所有公司对直播的出发点只是秒开,流畅,美颜这三点;

那么问题来了,对于创业公司 ,“直播系”的大时代有可能成为平台吗?大视频领域也好,大社交领域也好,都已经有巨头存在了。独立的直播类公司比较难以独立生存。在中国,直播分为俩个派系,一是游戏拓展娱乐领域的在线直播平台;其次就是以映客 、花椒直播为代表的以手机为载体、强调人人参与、更强调社交的移动社交直播,这俩类公司有可能成为独立的平台,跟所有的娱乐也好,社交也好,并行在发展,创业公司基本集中在这俩个类目里面。中国有几个数据,大家可能没有听说过。1.中国真正意义上的直播,在各家直播平台做直播,或者注册经营的公司,大概在150万人左右,这是什么意思?比中国的出租司机都要多。我们所有的直播平台加在一起,覆盖的用户大概在三四千万左右,一天可能比打车的人还要多。简单的来讲,中国的网民大概有六点几亿,游戏用户大概有四点几亿,不到点五亿,一天所有的平台加起来,已经跑到3000万了。俩年的时间,游戏的人群吃完之后呢?

好了,下面进入正题:

如何搭建一个完整的视频直播系统?一个完整的直播系统大致包含这几个环节:采集,前处理 ,编码,传输,解码和渲染。在两端 传输的过程中再加上一个服务端处理。大致模型如下:

在主播推流端涉及到的环节有采集、前处理和编码,在观众端涉及到的环节就是解码和渲染,在这俩个端之间建立起传输通道的则是服务端,它负责接收主播端的推流,将其处理之后分发给观众播放端 :

1.采集

对iOS是比较简单的,Android则要做些机型适配工作,PC最麻烦各种奇葩摄像头驱动,出了问题特别不好处理,建议放弃PC只只支持手机 主播,目前几个新近的直播平台都是这样的。

参考教程:斗鱼游戏直播教程-OBS直播软件篇[推荐]

2.前处理

现在直播美颜已经是标配,80%的主播 没有美颜根本没法看。美颜算法需要用到 GPU编程,需要懂图像处理算法的人,没有好的开源实现,要自己参考论文去研究 。难点不在于美颜效果,而在于GPU占用 和美颜效果之间找平衡。GPU虽然性能好,但是也是有功耗的,GPU占用太高会导致手机发烫,而手机发烫会导致 摄像头采集掉帧,iPhone6尤其明显,因为iPhone6的CPU和前置摄像头很近。

3.编码

肯定要采用硬编码,软编码720p完全没希望,勉强能编码也会导致CPU过热烫到摄像头。硬编码 兼容性又是一个大坑,Android上要有人去填。编码 要在 分辨率,帧率,码率,GOP等参数设计上找到最佳平衡点。

4.传输

自己做不是很现实,交给 CDN服务器商,也就是贵了点,相信 有志于做直播平台改变世界的你不差钱。假设2W PCU大约每月带宽费用 100万左右,因为清晰流畅的720p要1.5mbps左右。CDN只提供了带宽和服务器见得传输,发送和接收端的网路 连接抖动缓冲还是 要 自己写的。不想要卡顿,必然要加大缓冲,会导致延迟高,延迟高影响互动性,要做权衡。

5.解码

也肯定要硬解码,目前手机支持硬解了,只是安卓上还有兼容性 大坑要填。

6.渲染

这个难点不在于绘制,而在于音画同步,目前几个直播做的都不好, 此外音频还有几个坑要填,比如降噪,音频编码器的选择,各种蓝牙耳机,各种播放模式的适配等,如果你想做主播和观众连线聊天,还要有个回声消除的问题。

后台还有数据库 ,缓存,分布式文件存储,消息队列,运维系统等。

时间: 2024-10-10 23:59:49

iOS 视频直播的学习之路 ---- 直播大时代的相关文章

Android 音视频深入 七 学习之路的总结和资料分享

说个实话一开始我对基于Android如何开发音视频很迷茫,甚至对音视频开发都不是很明白,我看了Android 音视频开发入门指南 http://blog.51cto.com/ticktick/1956269这篇博客,我觉得我也许不太懂音视频能干啥,但是我找到了学习音视频的门槛,对了写这个博客的人,他的博客很多都是关于音视频的很有借鉴 开始把Android原生音频API AudioFormat.AudioRecord.AudioTrack底层三剑客搞一下,不说代码非常熟,至少整个作用和相关的参数和

Linux学习之路4-强大的find命令

强大的find命令:     find [OPTION]... [查找路径] [查找条件] [处理动作] 查找路径:默认为当前路径: 查找条件:指定的查找标准,可以根据文件名.大小.属主属组.类型等进行:默认为找出指定路径下的所有文件: 根据文件名进行查找: -name "文件名称": 支持使用glob: *, ?, [] -iname "文件名称":不区分字符大小写,支持使用glob: -regex"PATTERN":以PATTERN匹配整个文

ACM学习之路————一个大整数与一个小整数不得不说得的秘密

这个相对于两个大整数的运算来说,只能说是,low爆了. 只要利用好除法的性质,这类题便迎刃而解.O(∩_∩)O哈哈~ //大整数除一个int数 #include<iostream> #include<cstdio> #include<cstring> using namespace std; char s[1000],result[1000]; int main() { long long divis; int n,i,k,flag,len; char c; while

入门大数据领域需要哪些技能|大数据工程师学习之路

入门大数据领域需要哪些技能?大数据学习之路. 大数据是当时时代下一门炙热的IT学科,行情十分火爆,不论是阿里巴巴.百度这样的大公司,还是中小企业都很重视,甚至是第一个纳入国家战略的技术,政府扶持力度大,支持甚多!面对这样的大环境下,大数据相关岗位薪水高,就业前景好.因此也吸引了一大批有志之士,想学习并从事大数据相关工作.那么,大数据应该如何学习呢? 互联网科技发展蓬勃兴起,人工智能时代来临,抓住下一个风口.为帮助那些往想互联网方向转行想学习,却因为 时间不够,资源不足而放弃的人.我自己整理的一份

最近这么火的iOS视频直播

快速集成iOS基于RTMP的视频推流 http://www.jianshu.com/p/8ea016b2720e iOS视频直播初窥:高仿<喵播APP> http://www.jianshu.com/p/b8db6c142aad 做一款仿映客的直播App?看我就够了 http://www.jianshu.com/p/5b1341e97757

iOS 视频开发学习

原文:浅谈iOS视频开发 这段时间对视频开发进行了一些了解,在这里和大家分享一下我自己觉得学习步骤和资料,希望对那些对视频感兴趣的朋友有些帮助. 一.iOS系统自带播放器 要了解iOS视频开发,首先我们从系统自带的播放器说起,一.我们可以直接播放视频,看到效果,不然搞了半天还播放不了视频,会让大家失去兴趣.二.其实对于很多需求来说,系统的播放器就能够胜任.简单介绍下 1.MPMoviePlayerController 在iOS中播放视频可以使用MPMoviePlayerController类来完

Android直播推流学习

Android直播推流学习 Android直播推流学习 第一部 第二部 第三部 第四部 第一部 本文也主要是一步步分析spydroid源码. 首先spydroid的采用的协议是RTSP,目前我知道支持RTSP协议的服务器是Darwin,但是Darwin比较复杂,所以大家可以选择EasyDarwin,大家可以去搜搜看看.还是继续说spydroid吧,spydroid这个项目大家可以在github上搜到的,不过作者也是很久没有更新了,如果大家只做推流的话可以看看原作者的另外一个项目Spydroid.

IOS学习之路- 运行过程

1. 执行Main函数(在main.m文件中) 2. 加载MainStoryborad.storyboard文件 * 创建ViewController文件 * 根据storyboard文件中描述创建ViewController中的UIView(父层) * 创建UIView内部的所有子控件 * 将创建好的所有UIView对象跟ViewController做相应的关联(IBAction,IBoutlet  ) 3. 将程序的第一个控制器内部的UIview显示到手机屏幕上. IOS学习之路- 运行过程

iOS学习之路--下拉刷新和上拉加载更多

iOS学习之路--下拉刷新和上拉加载更多 简介 本文中笔者将和大家分享应用app中常用到的表单内容的下拉刷新和上拉加载更多的功能实现的方法. 内容 1.有哪些实现方法与各方法的优劣 使用过美团,大众点评的朋友们应该有注意到,当你向上滑动表单的时候会有更多的店铺加载进你的表单中,而当你下滑表单顶的时候,则会刷新表单的内容并从网络上获取最新的信息.通过下拉刷新和上拉加载更多的功能,使app可以获取更多用户想要的信息和获取最新的信息.那么这种功能如何实现呢,还请跟着笔者继续往下看. 目前来说,主要的实