android 音视频基础知识普及

推流端  采集 处理 编码 推流

服务端  转码 录制 截图 鉴黄

播放端  拉流 解码 渲染

互动系统 聊天 礼物 点赞

1fps = 1280*720*1.5bit =1382400bit = 172800byte = 172KB

1秒 = 30fps = 5160KB = 5M

1秒5m数据量就可以看了

H264 = 172K+30 P帧 = 500K

编码压缩数据空间,减少传输空间

H264 空间 时间  编码  视觉  4个冗余

NALU 网络提取层单元

sps 图片序列 pps 图片信息 I帧 帧内 P帧 前向 B帧 双向

GOP 两个I帧图像组 秒开原理

H264主流 H265 VP8 VP9

音频编码:sac ppm wav ogg

视频编码:fav ts avi等

推流协议:

rtmp 最广泛  cdn 简单 基础tcp 传输成本高

webrtc w3c 基于udp  cdn支持差

ump 定制化空间大 成本高 cdn 不友好

优化:保证音频传送 调整码率 fps 分辨率  减少数据

服务端: 转码 录制截图 点播 分发协议分发到客户端

拉流: rump http-flv hls

解码:编码逆过程 提取原始数据

渲染

交互: 聊天 礼物

常用工具:

推流 OBS Studio

播放端 cutv 测试工具

softe aac /h264bsanalyzer /flvparse /yuvplayer

直播sdk:

阿里云 腾讯云 金山云 ucloud 七牛云

rtmp 实时消息传输: tcp/ip 应用层协议  推送/直播  基本数据单元为消息

1B 消息类型  2B 长度  3B 时间 4B  流id 消息体

传输时 消息回被拆分成消息块 chunk chunk header + chunk data

flv: 大块音视频 加入标记头信息  延迟表现和大规模并发成熟

HLS:分成5-10s 用m3u8索引管理 用于朋友圈分享 

m3u8索引: 直播信号源--视频编码器(后台视频处理)--流切片器--各种ts媒体文件(分发模块)--索引文件(数据库)--客户端

cdn网络 为了解决用户访问资源慢出现的技术

边缘节点  二级节点(大城市) 源站

搭建流媒体服务:

准备流媒体服务器 linux max 编译安装nginx服务  配置rtmp服务并启动nginx服务

声音三要素:音调 音量 音色

音频量化(模数转换):模拟数据 采样  量化 编码  数字信号  == 0101001110

码率 = 采样率(1.6w/44.1/48k)x 采样大小(8位-电话/16位-常见) x 声道数(单/双)

音频压缩: 有损消除冗余数据  哈夫曼无损编码

音频编码: 时域转频域---心里声学模型---量化编码---比特流格式化---比特流

音频编解码 : opus(口 耳 实时互动 最快)  aac(直播用 次快)  speed(回音 降噪等)  g.711(固话)

aac : 取代mp3 加入 sir ps 技术 

aac lc 128k / aac he v2 64k /  aac he v2 32k/

aac 格式 : adif 从头开始解码,用在磁盘文件中  adts 每一帧都有一个同步字,可以在任何位置解码

aac 编码库 : libfdk_aac > ffmpeg aac >libfaac> libvo_aacenc

H264: I帧 关键 帧内压缩  / p帧 向前参考1帧 / B帧 双向参考帧

sps: 序列参数集/pps:图像参数集

GOF: 一组帧数  p帧丢失 会花屏卡顿

视频编码器: x264/x265 /open h264(svc)/vp8/vp9

h264 压缩技术-编码原理: 帧内预测压缩,空域冗余数据/帧间预测压缩,时域冗余数据/dcp整数离散余炫变换,傅立叶变换/cabac压缩

h264结构:视频序列--图像--片--宏块--子快

h264编码分层:nal 视频数据网络抽象层--vcl 视频数据编码层

码率:sodb 原始比特流 / rbsp sodb最后补1 / ebsp 起始码增加一个起始位0x03 /  nalu nal+ebsp

nal unit = nalu 头部 + 一个切片(头/数据) 切片

yuv格式:4:4:4/4:4:2/4:2:0 (平坦编码 /半平坦编码)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 直播流程: 1、 采集视频、音频摄像头 NV21 camera麦克风 pcm数据2、 视频处理美颜、水印、滤镜3、...
    书文换酒钱阅读 1,483评论 0 1
  • 什么是视频直播? 直播就是将每一帧数据(Vide/Audio/Data Frame),打上时序标签(Timesta...
    Paul_Cent阅读 4,680评论 0 1
  • 直播的过程包括:采集、处理、编码、封包、推流、传输、转码、分发、拉流、解码、播放。每一个环境都会有很多的坑,都需要...
    Paul_Cent阅读 1,290评论 0 0
  • CDN全称为Content Delivery Network即内容分发网络,是一个策略性部署的整体系统,主要解决由...
    Paul_Cent阅读 498评论 0 1
  • [TOC] 音视频&流媒体 是什么促使我要写这一篇音视频入门文章?那是因为和一妹子打赌码率的概念,结果输了;对一个...
    AllenWu阅读 4,961评论 1 24