音视频开发入门之极简基础知识笔记

更多音视频开发文章,请看:音视频开发专栏
介绍一个自己刚出炉的音视频播放录制开源项目

以下是我最学习音视频基础的笔记,写的比较乱,不太详细,主要是自己方便以后查阅~

播放器基础原理:

在这里插入图片描述

常见基本概念:

封装格式: 将音频视频合在一起
播放网上音视频: 解协议–解封装–音视频解码–音视频同步
流媒体协议: 客户端和服务器通信的协议
封装格式: 将视频码流和音频码流按照一定格式存储在一个文件中
视频编码: 将视频像素数据压缩为视频码流,以降低视频数据量
音频编码: 将音频采样数据压缩为音频码流
音视频同步: 根据解封装得到的信息,将音视频分别用声卡和显卡播放
CDN网络: 为了解决用户访问网络资源慢的技术

  1. 网络慢的原因:链路太长
  2. 解决方案:
    1. 用户访问边缘节点(最近的可获取资源的节点)
    2. 二级节点:缓存主干节点数据
    3. 源站:

音频基础:

音频编码:

  1. 采样(采样率:AAC一般是44.1k)
    1. 码率=采样率采样大小声道数
  2. 量化(y轴(声音振幅),量化大小:可以表达的y轴的高度,一般16bit表示)

音频压缩:

  1. 消除冗余数据:
    1. 人无法识别的数据:
    1. 超过人可以识别的声音频率
    2. 被遮蔽的声音:
    3. 频域遮蔽:高频大声音可以将附近的低频声音遮蔽(注意是附近频率,即如果频率相差远反而不会被遮蔽)
    2. 视域遮蔽:
    1) 同一时间大声音(前后会多加有几十毫秒的区间)遮蔽小声音

    有损压缩 :删除人不能识别的数据,无法恢复
    无损压缩:删除人不能识别的数据,可以恢复

音频编码器:

AAC:实时性不高,但是高保真。最适合泛娱乐化
OPUS:效果最好,但是还未推广。最适合实时互动

AAC:

  1. 应用范围很广,市面百分之90都是使用AAC
  2. 高保真
  3. rtmp协议不支持OPUS
  4. AAC取代了MP3
    1. 使用MPEG4 BRS PS使得压缩率高,损失却小
  5. AAC格式
    1. ADIF:将格式数据放在文件头部,每一帧都是用头部数据来处理。所以只能从头部解码
    2. ADTS:每一帧都有格式信息,所以可以从任何一帧开始解析,但是占用空间大

视频基础:

1. H264基础:

1. I帧:关键帧,帧内压缩技术
	a. 为了压缩视频,第一帧作为I帧完整保存
2. P帧:向前参考镇,帧间压缩技术,压缩参考前一帧
3. B帧:前后参考帧,压缩参考前后帧(好处是压缩率高,坏处是在实时互动时会延迟(要参考后一帧),时间不可控)
4. GOP:一组帧,指的是两个I帧之间的帧,即变化很小的一组帧(包括第一个I帧)。一组帧包含SPS,pps的解码信息

2. 视频常见问题:

1. 花屏:一般是P帧丢失
2. 解决花屏就是如果遇到P帧丢失则丢掉该组帧所有帧。但是会导致卡顿

3. H264压缩:

1. 帧内预测压缩
	2.空域冗余数据:人眼睛不能识别的信息
	3.压缩方案:
		通过算法计算出一帧的预测模式,然后传输预测模式和残差值?
    	预测模式+残差值可以恢复原图?
 2. 帧间预测压缩 		
	 	a. 时域冗余数据: 			
	 		i. 去除帧间重复数据
	 		1. 运动估算:
	 			2. 一组类似的帧,只留下运动矢量和剩余图片信息
3. 整数离散余弦变换(DCT):将空间的相关性转化为时间的无关性然后进行量化?
4. CABAC压缩

H264宏块划分?
1. 每一帧划分为多块区域?

4. H264结构码流:

1. 一帧包含多个片,一片包含多个宏块,一个宏块包含多个子块
	a. 分层:
		i. NAL层(视频数据网络抽象层):拆包组包
			1) NAL单元(NALU):
				a) NAL头部:
				b) 切片:
					i) 切片头
					ii) 切片数据
		ii. VCL:视频编码层

5. YUV:

1. Y:亮度
2. UV:色彩
3. 最常使用:YUV4:2:0(不是说没有V分量,而是每一个扫描行,只有一种色度分量,即一行Y:U=2:1,相邻行Y:V=2:1)
4. 存储格式所以不同的平台因为存储格式不同会出现不兼容问题):
    a. 平面:I420,YV12
	b. 打包:NV12,NV21

6. 行业痛点:

1. 视频秒开
2. 音频降噪
3. 回音消除
4. 视频卡顿花屏绿边
5. 手机发烫
6. 音视频同步
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值