1、前置知识
-
流式传输
-
所谓流媒体是指采用流式传输的方式传输在Internet播放的媒体格式;
-
流式传输的方式是将视频和音频等多媒体文件经过特殊的方式分成一个个的压缩包,由服务器向客户端连续、实时传输,客户端通过解压操作对这些数据进行解压,多媒体就会像发送之前那样显示出来
-
转码就是将直播流转化成不同的协议格式,以便支持不同的客户端设备
-
分发到CDN网络则是为了解决直播服务器的拥堵,响应慢等问题
-
直播中运用到的技术有:音频/视频处理、图形处理、视频/音频压缩、CDN分发、即时通讯、信令服务等相关技术;
-
一个完整直播APP实现流程
-
采集 → 滤镜处理 → 编码 → 推流 → CDN分发 → 拉流 → 解码 → 播放互动
-
-
完整直播APP的原理
-
直播原理
-
将主播录制的视频推送到服务器,再由服务器分发给观众观看
-
-
直播环节
-
推流端:音视频采集、美颜处理、3A处理、编码、推流等
-
服务端:转码、录制、截图、鉴黄等
-
播放器:拉流、解码、渲染等
-
互动系统:聊天室、礼物系统、弹幕系统、点赞等
-
-
-
一个完整的直播APP所要具备的功能
-
聊天
-
私聊、普通聊天室、点亮、推送、黑名单、禁言、直播间关闭评论等
-
-
礼物
-
礼物、红包、排行榜、充值、内购、提现等
-
-
直播列表
-
关注、热门、最新、分类直播用户列表、直播间预约等
-
-
自己直播
-
录制、推流、解码、播放、美颜、心跳、后台切换、桌面共享、直播间内人员操作等
-
-
房间逻辑
-
创建房间、加入房间、退出房间、关闭房间、切换房间、房管、房间用户等
-
-
用户逻辑
-
普通登录、第三方登录、操作个人信息、个人相关列表、关注等
-
-
观看直播
-
聊天、弹幕、礼物、直播间状态、用户状态等
-
-
统计
-
业务统计、第三方统计等
-
-
超管
-
禁播、隐藏、审核等
-
-
2、直播原理浅析
2.1 音视频处理相关
-
视频采集处理后推流到流媒体服务器
-
首先从前端采集设备中获取原始的音频和视频数据
-
对音视频进行额外的处理,如音频的混音、降噪等处理;对视频进行水印、滤镜和时间戳等处理
-
按照相关规范要求对处理后的音视频数据进行编码
-
对编码后的数据进行相关封装处理,使得不同多媒体内容可以同步播放,且提供另外的处理如添加索引
-
通过流媒体协议将封装好的内容推送到流媒体服务器上
-
-
流媒体服务器
-
对流媒体内容进行采集(接收推流)、缓存、调度和传输播放(以流式协议实现用户分发)
-
-
观看端
-
只需要拥有支持对应流媒体传输协议的播放器即可
-
需要关注的是服务端是通过什么协议返回的直播流,然后选取相应的播放器进行播放即可
-
-
常见音频编码方式
-
WAV(无损)
-
就是在PCM数据格式的前面加上44字节,分别用来描述PCM的采样率、声道数、数据格式等信息
-
优点:音质非常好、大量软件都支持
-
缺点:没有经过压缩处理,内存占用比较大
-
适用场景:多媒体开发的中间文件
-
-