前言
今年移动直播行业的兴起,诞生了一大批网红,甚至明星也开始直播了,因此不得不跟上时代的步伐,由于第一次接触的原因,因此花了很多时间了解直播,今天我来教你从零开始搭建一个完整的直播app
,希望能帮助到更多的人更快的了解直播。
一、个人见解
个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通讯等技术,每一个技术都够你学几年的。当然我在这里一个劲说多难,也不是打击大家,只是希望大家,如果真的想学习这方面的知识一点要坚持,知识会给你带来无尽的财富。
我呢,也是比较看好新媒体这个行业,毕竟是一个未来的发展趋势,不用我说,相信大家也都能看得到。所以这几年我和身边一群志同道合的朋友,也会搜集一些关于 Android开发,音视频这方面的资料文件,和学习视频 ,我都已经整理成了系统的学习资料,需要的小伙伴,可以到文末去领取,我可以免费分享给你,希望大家能一起学习交流,一同在这个时代,发光发亮。
废话不多说,下面进入正题
二、了解直播
热门直播产品
抖音,快手,这些是这几年比较火的,映客,斗鱼,熊猫,虎牙,花椒等等这些事之前比较流行的直播平台
直播效果图
1.一个完整直播app功能(来自落影loyinglin分享)
-
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.一个完整直播app技术点
三、了解流媒体(直播需要用到流媒体)
-
流媒体开发
:网络层(socket或st)负责传输,协议层(rtmp或hls)负责网络打包,封装层(flv、ts)负责编解码数据的封装,编码层(h.264和aac)负责图像,音频压缩。 -
帧
:每帧代表一幅静止的图像 -
GOP
:(Group of Pictures)画面组,一个GOP就是一组连续的画面,每个画面都是一帧,一个GOP就是很多帧的集合- 直播的数据,其实是一组图片,包括I帧、P帧、B帧,当用户第一次观看的时候,会寻找I帧,而播放器会到服务器寻找到最近的I帧反馈给用户。因此,GOP Cache增加了端到端延迟,因为它必须要拿到最近的I帧</