iOS开发之直播系列

闲扯:

作为一名iOS开发人员,对于当下最流行的技术一定要及时跟进,不才,花费大半年的时间学习以及总结,浅谈一下直播,欢迎大家指出不足之处。
直播说简单也简单,说难也难,看你想要达到的深度。
做好准备,你需要去学习音频、视频、图形的处理,音频、视频的压缩,CDN分发,以及即时通讯等技术。
当下已经有很多技术大牛封装好了直播框架,能够让我们快速的搭建一个直播的App,但是我们还是需要去真正了解直播的原理。

正题:

下面就让我们来一起学习

一、一个完整的直播类App所具备的功能有:(模糊总结)

1.用户系统(手机号登录、第三方登陆、注册、找回密码、用户信息的填写以及本地存档、关注、粉丝、修改个人信息、收入榜、检索等)
2.直播列表(热门的、关注的、最新的等)
3.直播间(直播间聊天、礼物、充值、内购、提现、收到礼物的特效、点亮、关注、私聊、弹幕、黑名单、主播、管理员、其他用户、创建房间、进入房间、退出房间、关闭房间、切换房间等)
推送
4.直播(录制、推流、解码、播放、美颜、滤镜、后台切换等)
5.其他(统计、推送、截屏、禁播、隐藏、审核等)

二、直播原理

主播方录制视频,推送到服务器上,再由服务器分发给直播间用户观看。
推流端(主播方)经过采集、美颜、滤镜、编码、推流的一系列处理交给服务端。
服务端(服务器)经过转码、录制、截图、鉴黄暴等分发给用户端。
用户端(播放器)通过拉流、解码、渲染。

三、直播实现流程

1.音视频采集 2.滤镜美颜处理 3.音视频编码 4.推流(流媒体服务器) 5.CDN分发 6.拉流 7.音视频解码 8.音视频播放 9.聊天互动看直播

四、直播架构

1.主播端:
音视频采集、视频处理、音视频编码压缩、把音视频封装FLV.TS
(AVFoundation数据管理、GPUIImage美颜滤镜、FFmpeg音频压缩、X264视频压缩、libemp推流)
2.服务器:数据分发(CDN)、鉴黄暴(鉴黄师)、截屏展示主播画面、录制视频、实时转码。(SNS、BMS、Nginx)
3.用户端:从FLV.TS分离音视频数据、音视频解码、播放(ijkplayer播放、FFmpeg视频解码、VideoToolbox视频硬解码、AudioToolbo音频硬解码)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容