您的位置:首页 > 其它

[置顶] 直播项目技术实现方案

2016-10-27 11:12 253 查看
1.常规直播app功能

1、聊天

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

2、礼物

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

3、直播列表

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

4、自己直播

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

5、房间逻辑

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

6、用户逻辑

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

7、观看直播

聊天信息、滚屏弹幕、礼物显示、加载界面等

8、统计

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

9、超管

禁播、隐藏、审核等;

2.直播app原理

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

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

3.直播app实现流程

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



4.直播app架构



5.自主研发--核心功能实现方案

1.采集视频、音频

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

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

使用GPUImage实现: GPUImage是一个基于OpenGL ES的一个强大的图像/视频处理框架,封装好了各种滤镜同时也可以编写自定义的滤镜,其本身内置了多达120多种常见的滤镜效果。

3.视频编码解码封装

FFmpeg框架:是一个跨平台的开源视频框架,能实现如视频编码,解码,转码,串流,播放等丰富的功能。其支持的视频格式以及播放协议非常丰富,几乎包含了所有音视频编解码、封装格式以及播放协议。

4.推流

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

5.流媒体服务器

利用nginx来配置流媒体服务器,其中cdn分发技术是将网站的内容发布到最接近用户的网络”边缘”,使用户可以就近取得所需的内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度.

6.拉流

选择rtmp直播协议.

8.播放

使用b站开源的ijkplayer(API易于集成;编译配置可裁剪,方便控制安装包大小;支持硬件加速解码,更加省电 简单易用,指定拉流URL,自动解码播放.)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: