再次吐槽CSDN慢,真的好慢好慢好慢。
CSDN的博客会整理逐步搬迁。
随着直播行业越来越火。之前在优酷参与了优酷直播的开发。由于业务偏上层。设计核心知识不多。通过看资料,和相关人员讨论,相关技术视频。做一个整理。
直播分为前端APP
直播知识 | 直播SDK | IM |
---|---|---|
直播特点 | 发起直播 | 聊天消息 |
直播流程 | 观看直播 | 弹幕消息 |
礼物消息 |
后端服务器
Servlet实现接口 | MySql与接口 |
---|---|
直播列表 | 直播房间存储 |
用户信息 | 用户新存储 |
直播房间的管理 | 房间成员的控制 |
直播介绍 | 需求分析 | SDK的选型 | 开发编码 |
---|---|---|---|
直播特点 | 竞品分析 | IM SDK | 实现APP |
直播流程 | 功能拆解 | 直播 SDK | 服务端API |
界面模块 | 优化app | ||
技术模块 |
直播入门
2016, 2017 年非常火
点播 | 直播 |
---|---|
视频网站看电视剧 | 直播网站看主播 |
文件存在服务器上 | 数据实时发送 |
指定节目播放 | 内容可以更改 |
在移动互联网的语境下,通过互联网媒体媒介,将某人某物某事当下发生的及时情况给终端用户以满足用户各种需求的一种新的互动性的互联网新态势。
直播的基本流程
推流端 | 服务器 | 播放器 | 互动系统 |
---|---|---|---|
采集 | 转码 | 拉流 | 聊天 |
前处理 | 录制 | 解码 | 礼物 |
编码 | 截图 | 渲染 | 送礼 |
推流 | 鉴黄 |
直播流程之采集
音频采集 | 图像采集 | 采集源 |
---|---|---|
采样率 | 分辨率 | 摄像头 |
位宽 | 采样帧率 | 屏幕录制 |
声道数 | 采样格式 | 文件推流 |
音频帧 | 传输通道 |
采样率 8khz
双通道
位宽 16kit
20ms 为一帧
一帧的数据 8000 * 2 * 16 * 0.02 == 512bit = 640字节
Android采集 | IOS采集 | PC采集 |
---|---|---|
setPreviewCallback | AVFoundation.framework | 摄像头 |
MediaRecorder | mjpeg-stremer |
我们为了增强一些现场的特效,在编码之前做一些处理
打上时间戳,美颜,水印
视频的处理
美颜 磨皮 加 美白
滤镜 复古风
水印 视频的直播中必须要打上水印 国家规定 要保存下来之后检查用
混音 把多个视频混合起来 伴奏加人唱出来的声音进行混合 在推出去
降燥 人耳 20hz - 2000hz 之间 需要通过去除相关的
特效 变声
美白 识别皮肤,调整色值
添加白色 调整透明度
磨皮 模糊处理 均值模糊 高斯模糊 中值滤波
水印 图像和水印图片的合并
滤镜 GPUImage
混音
声音是由物体震动发出的一种波,我们通过麦克风转化程电信号,抽样量化。 各个采样的数据进行采样的叠加。 音频信号的叠加,采样值溢出的处理。 平均算法,对其算法。
降噪,傅里叶变换。 音频文件会有噪音, 改进
自然噪声 认为噪声 和 沉浸噪声
玻璃纶巾 根据波长分解颜色
根据音频的频率分解音频。 噪声回销法。
变声
通过改变声音的频率。 音色和音调 开源库,SoundTuch变声和变调。
视频的编码和封装(1)
编码的性能 压缩比
分辨率 1280*720 采样格式 YUV420sp
fps = 30帧每秒
1帧的数据 = 1280 * 720 * 1.5 bit = 1382400bit = 172800byte = 172kb
1秒的数据量 172 * 30 = 215=60 = 5M
H264编码 172kb + 30的p帧的话 是 500k.
网友评论