一.常规直播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开发可以快速融入到市场,有较好的容错性,在各大直播平台瓜分市场的同时,将大部分资金用于运营 而不是开发,有利于提高产品的竞争力。

服务器项目技术方案,直播项目技术实现方案(工作室)相关推荐

  1. 技术沙龙直播 | 数据库技术探索及行业应用

    数据是企业的核心资产,数据库作为数据的载体,承担着至关重要的角色.它的性能.稳定性.可靠性.容灾以及安全成为企业应用的首要考量要素.数据库从技术上是如何实现以及实际中是如何服务于各个行业的呢?我们邀请 ...

  2. 抖音无人直播项目技术丨三大玩法你知道吗?

    得前段时间写过一篇关于快手无人直播的文章,我发现很多朋友都对无人直播项目很感兴趣,所以我们又在这个项目上深耕了一下,现在来跟大家分享一下这个项目的具体操作. 无人直播技术 无人直播并不是说直播过程中没 ...

  3. picc邮箱服务器,Picc南中心服务器管理系统(一期)项目采购需求及技术服务要求.docx...

    南中心服务器管理系统项目(一期) 采购需求及技术服务要求 功能需求 1.数据采集 (1)数据采集方式 支持主动方式定期轮询抓取各类受监控设备硬件运行状态(包括正常与告警状态)信息数据:支持被动方式实时 ...

  4. 某工业巨头MES+SCADA+APS技术方案及项目推进计划

    写在前面 大家好,我是小智,智能制造之家号主~ 前面我们分享了智能工厂相关的设计与规划.实施与建设相关的解决方案: 100页PPT,带你了解数字化.智能化车间规划与建设! 某智能工厂调研.规划.实施整 ...

  5. 贵州省新农合业务系统容灾技术支撑服务项目

    2.1项目背景 新农合业务是中国移动贵州公司在医疗卫生行业类的一大重要信息化应用.贵州省新农合项目建设至今,在线运营业务包括68个县(区).1224个乡(镇).16508个村:建档总人数3358.44 ...

  6. 全力支撑用友云产品 打造技术中台标杆项目

    前言 随着云计算技术的不断发展,容器和Kubernetes已经成为云原生应用的基石,容器的周边生态也日益成熟,微服务.服务网格.DevOps等技术相继涌现. 容器的出现,推动了软件开发.测试.部署.运 ...

  7. Android开发技术前线 (android-tech-frontier) --优质技术文章的聚合项目

    Android开发技术前线 ( android-tech-frontier ) Android开发技术前线一个定期翻译.发布国内外Android优质的技术.开源库.软件架构设计.测试等文章的开源项目, ...

  8. [项目管理-18]:项目实施中,项目经理、产品经理、运营经理、设计经理、技术经理、工程经理不同角色的比较

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  9. 服务器招投标项目验收,信息化系统项目测试验收方案..docx

    信息化系统项目测试验收方案. 信息化系统项目测试验收方案项目测试.验收方案项目测试计划测试是项目质量的重要保证,因此必须高度重视项目的测试工作.在本项目中,我们将着重进行以下三类测试:项目组内部测试主 ...

最新文章

  1. linux7.4安装语言包,CentOS 7.4安装时报错最简单最直接的解决办法
  2. opencv(4)图像滤波
  3. log4j.properties中的这句话“log4j.logger.org.hibernate.SQL=DEBUG ”该怎么写在log4j.xml里面呢?...
  4. 关闭裁剪功能_4个图片裁剪技巧,瞬间看出Word大神与小白的差距!
  5. 网站转移到新服务器后显示乱码,请问在国内制作的英文网站放到国外的服务器后在国外打开怎么全是乱码?...
  6. 抖音是用python写的吗_用 Python 实现抖音尬舞机
  7. 3. 机器学习中为什么需要梯度下降?梯度下降算法缺点?_浅谈随机梯度下降amp;小批量梯度下降...
  8. 机器学习(一)线性回归
  9. 『设计模式』外观模式--这篇博客也太明了吧
  10. Git使用六:版本对比
  11. windows 安装apex_Nvidia Apex安装
  12. 14.Adding Frontend Files to your Module
  13. python简明教程_04
  14. Trie树(字典树)从懵逼到入门
  15. windows桌面ui开发
  16. 金融行业文档加密方案
  17. Job Shop Schedule 生产调度问题 (一) 简介
  18. 计算机里为什么显示cpu主频高,cpu主频显示不对是什么原因怎么解决
  19. 【每日论文】GenCo: Generative Co-training for Generative Adversarial Networks with Limited Data
  20. 电脑回收站的东西删了怎么恢复?60%的人都用过这2个方法

热门文章

  1. 第四十五讲:神州防火墙P2P流量控制配置
  2. 使用 JavaScript 编写 Shell 脚本
  3. 模型高性能优化 | 两步数据预处理让Alphafold 提速一倍
  4. 机器人搭建和少儿编程的区别
  5. Unity Shader:实现菲涅尔+色散效果以及相关原理解析
  6. tkinter界面设计
  7. 输入数字,控制台打印输出大写,如:输入12 ,控制台打印输出:壹拾贰圆
  8. Redis String命令大全
  9. Python中的File(文件)操作
  10. Android AOP 编程实践 javapoet + autoService