2021-02-23 直播类APP功能及技术难点

2021-02-23  本文已影响0人  认真的草莓

目前市面上直播app有的基本功能

1、聊天:私聊、聊天室、点亮、推送、黑名单等;

2、礼物:普通礼物、豪华礼物、红包、排行榜、第三方充值、内购、礼物动态更新、提现等;

3、直播列表:关注、热门、最新、分类直播用户列表等;

4、自己直播:录制、推流、解码、播放、美颜、心跳、后台切换、主播对管理员操作、管理员对用户等;

5、房间逻辑:创建房间、进入房间、退出房间、关闭房间、切换房间、房间管理员设置、房间用户列表等;

6、用户逻辑:普通登陆、第三方登陆、注册、搜索、修改个人信息、关注列表、粉丝列表、忘记密码、查看个人信息、收入榜、关注和取关、检索等;

7、观看直播:聊天信息、滚屏弹幕、礼物显示、加载界面等;

8、统计:APP业务统计、第三方统计等;

9、超管:禁播、隐藏、审核等;

一个完整直播app原理

直播原理:把主播录制的视频,推送到服务器,在由服务器分发给观众观看。

直播环节:推流端(采集、美颜处理、编码、推流)、服务端处理(转码、录制、截图、鉴黄)、播放器(拉流、解码、渲染)、互动系统(聊天室、礼物系统、赞)

一个完整直播app实现流程

1.采集、2.滤镜处理、3.编码、4.推流、5.CDN分发、6.拉流、7.解码、8.播放、9.聊天互动

image

一个完整直播app架构

image

一个完整直播app技术点

image

一、流媒体(直播需要用到流媒体)

二、直播所用到的基础知识:

1.采集视频、音频

1.1 采集视频、音频编码框架

AVFoundation:AVFoundation是用来播放和创建实时的视听媒体数据的框架,同时提供Objective-C接口来操作这些视听数据,比如编辑,旋转,重编码

1.2 视频、音频硬件设备

2.视频处理(美颜,水印)

视频处理原理: 因为视频最终也是通过GPU,一帧一帧渲染到屏幕上的,所以我们可以利用OpenGL ES,对视频帧进行各种加工,从而视频各种不同的效果,就好像一个水龙头流出的水,经过若干节管道,然后流向不同的目标

现在的各种美颜和视频添加特效的app都是利用GPUImage这个框架实现的。

视频处理框架

3.视频编码解码

3.1 视频编码框架

3.2 视频编码技术

3.3 音频编码技术

AAC,mp3:这些属于音频编码技术,压缩音频用

3.4码率控制

多码率:观众所处的网络情况是非常复杂的,有可能是WiFi,有可能4G、3G、甚至2G,那么怎么满足多方需求呢?多搞几条线路,根据当前网络环境自定义码率。列如:常常看见视频播放软件中的1024,720,高清,标清,流畅等,指的就是各种码率。

3.5 视频封装格式

4.推流

4.1 数据传输框架

librtmp:用来传输RTMP协议格式的数据

4.2 流媒体数据传输协议

RTMP:实时消息传输协议,Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议,因为是开放协议所以都可以使用了。

chunk:消息包

5.流媒体服务器

5.1常用服务器

5.2数据分发

6.拉流

image

7.解码

7.1 解封装

7.2 音频编码框架

7.3 解码介绍

8.播放

9.聊天互动

IM:(InstantMessaging)即时通讯:是一个实时通信系统,允许两人或多人使用网络实时的传递文字消息、文件、语音与视频交流。IM在直播系统中的主要作用是实现观众与主播、观众与观众之间的文字互动。

10.目前需求中存在的疑点

登录医生身份验证用户分类应该分为医生和普通用户,医生是否需要认证,如果需要认证如何认证登录方式普遍直接采用手机号加验证码的登录方式,此方式安全性高,并且不需要注册,能够轻松的做到一人一号(号为手机号)医生手术直播:观看。直播房间分为三种我创建的直播房间别人进入观看的直播房间直播结束后,点击进入观看回放的房间文字回复评论给房主评论是否可以给别人的评论回复?进入房间的时候是否需要加密功能?或者收取一定门票等限制进入直播房间的策略?视频功能(此功能即为直播房间功能)图文内容分栏目月度可回复可留言每月一星(专题页面)投票评比功能(针对谁?)站内搜索(搜索视频?搜索医生?)push推送(针对个人?针对全平台?还是有其他要求?)社区(兴趣小组。是否需要分门别类?)

我的技术栈 php +uniapp
推荐的一个课程:Thinkphp6+nginx-rtmp实现大型娱乐互动直播平台-19-19-直播服务器部署和配置-刘友谊的在线视频教程

上一篇 下一篇

猜你喜欢

热点阅读