美文网首页
android 音视频基础知识普及

android 音视频基础知识普及

作者: 敬畏的寂静_61 | 来源:发表于2019-02-27 11:50 被阅读0次

    推流端  采集 处理 编码 推流

    服务端  转码 录制 截图 鉴黄

    播放端  拉流 解码 渲染

    互动系统 聊天 礼物 点赞

    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 (平坦编码 /半平坦编码)

    相关文章

      网友评论

          本文标题:android 音视频基础知识普及

          本文链接:https://www.haomeiwen.com/subject/emoppttx.html