美文网首页
直播项目技术实现方案(工作室)

直播项目技术实现方案(工作室)

作者: jiangfengzh | 来源:发表于2018-11-17 16:22 被阅读0次

    一.常规直播app功能

    1、聊天

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

    2、礼物

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

    3、直播列表

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

    4、自己直播

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

    5、房间逻辑

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

    6、用户逻辑

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

    7、观看直播

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

    8、统计

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

    9、超管

    禁播、隐藏、审核等;

    二、直播app原理

    直播原理:把主播录制的视频,推送到服务器,在由服务器分发给观众观看。
    直播环节:推流端(采集、美颜处理、编码、推流)、服务端处理(转码、录制、截图、鉴黄)、播放器(拉流、解码、渲染)、互动系统(聊天室、礼物系统、赞

    三、直播app实现流程

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

    app实现流程图

    四、直播app架构

    app架构

    五、核心功能实现方案

    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,自动解码播放.)

    9.聊天互动
    融云作为直播的聊天室的技术实现基础

    六.借助第三方SDK--核心功能实现方案

    1、利用第三方直播SDK快速的开发
    七牛云:七牛直播云是专为直播平台打造的全球化直播流服务和一站式实现SDK端到端直播场景的企业级直播云服务平台,主要将自研流程中的视频编码解码封装,推流,流媒体服务器,拉流等环节帮我们封装到sdk中,极大提高开发效率

    熊猫TV,龙珠TV等直播平台都是用的七牛云
    互联网直播是一种基于RTMP协议的业务。RTMP协议是一种基于TCP的协议。在实际的业务模型中,又分为客户端和服务端。客户端主要是利用RTMP协议进行数据包的发送,一般称之为推流。服务端主要用来接收客户端发送过来的RTMP协议数据包,并转发出去供订阅的客户播放,订阅直播播放的客户从服务端给出的一个地址请求数据,请求的过程也是基于RTMP的协议,这个过程称之为拉流。通常的情况下,直播的业务模型是一路推流到服务器,然后可能会有多路观看的拉流请求,即1:N的模型。

    七牛云直播服务的业务模型。

    直播业务模型

    七牛云收费情况

    七 两种技术实现方案的评估

    自研:

    技术门槛较高,需要招聘这方面的人才,后期维护成本较大,服务端CDN分发要在国内各地架设多台服务器作为节点,单这一块预估就好几百万。

    借助sdk开发:

    对于一个初创团队来讲,自研直播不管在技术门槛、CDN、带宽上都是有很大的门槛的,而且需要耗费大量的时间才能做出成品,不利于拉投资。但是借助sdk开发可以快速融入到市场,有较好的容错性,在各大直播平台瓜分市场的同时,将大部分资金用于运营 而不是开发,有利于提高产品的竞争力。

    相关文章

      网友评论

          本文标题:直播项目技术实现方案(工作室)

          本文链接:https://www.haomeiwen.com/subject/eufifqtx.html