音视频学习一

0.音视频编解码流程

一.图像基础概念

基础概念:分别率,像素,位深,码率(带宽),跨距Stride

一. 1920*1080 的分别率的 像素就是 1920 * 1080 = 200w多

二.每个色彩RGB 每个占8个bit 0-255 也可以为10bit比较贵

三.帧率越高 码率(带宽)越低

注:码率:视频文件在单位时间内使用的数据流量。比如1Mbps(bit/s)。

四. 三者不能同时兼顾

五.原始数据决定分辨率,ai是修复数据的,原始720p不能变为1080p

六.Stride跨距

■Stride:指在内存中每行像素所占的空间。为了实现内存对齐每行像素在内存中所占

的空间并不一定是图像的宽度。

■Stride就是这些扩展内容的名称,Stride也被称作Pitch,如果图像的每一行像素末尾拥

有扩展内容,Stride的值一定大于图像的宽度值,就像下图所示:

比如分辨率638x480的RGB24图像,我们在内存处理的时候如果要以16字节对齐,如果不够就补齐,但是他补全的padding的内容不会保存到本地

七.YUV

  • Y(亮度):负责形状和细节。

  • U 和 V(色度):负责颜色本身。

■打包(packed)格式:将每个像素点的Y、U、V分量交叉排列 并以像素点为单元连续的存放

在同一数组中,通常几个相邻的像素组成一个宏像素(macro-pixel)

■平面(planar)格式:使用三个数组分开连续的存放Y、U、V三个分量 ,即Y、U、V分别存

放在各自的数组中。

YUV420 是用的最多 (4+1 +1) / 4 = 1.5 字节

有YUV422 444 等可以了解

YUV解码失败分量为000 转为RGB,可能会变成绿色

因为R 为 负数,G为整数 ,B也为负数

二 音频基础概念:

■人耳能听见的声音 为 20Hz~20KHZ
但是计算机需要使用采样定理,两倍频率去采集,采集后可以再去还原出来的声音。

麦克风采集模拟世界20kh-》AD-》计算机采样2倍的20khz,48khz、44.1khz-》DA转换-》喇叭播放

音频每帧多少秒怎么算

2. 如果没有按照原本的 LR 或 LLLRRR 方式保存,会发生什么?

情况 1:声道错乱

  • 如果本来应该是 L R L R 交替的立体声,却变成了 L L R R 或其他顺序:

    • 声音会变"怪",左右声道的音频信息错位

    • 某些乐器的声音可能跑到错误的一边

    • 如果是人声,可能出现相位问题,听起来空洞或失真

情况 2:单声道变立体声

  • 如果本来是单声道(LLLLL),但强行按立体声(LR)保存:

    • 两个声道听到的是相同内容,但文件体积变大

    • 没有真正的立体声效果

下面这种就会和视频相差两秒就会出现,会出现画面和音频不一致的问题

相关推荐
cqbzcsq2 小时前
MC Forge1.20.1 mod开发学习笔记(个人向)
笔记·学习·mod·mc·forge
蒸蒸yyyyzwd2 小时前
cpp学习笔记
笔记·学习
来两个炸鸡腿2 小时前
【Datawhale组队学习202602】Easy-Vibe task03 动手做出原型
人工智能·学习·大模型·vibe coding
浅念-2 小时前
C++ STL vector
java·开发语言·c++·经验分享·笔记·学习·算法
锅包一切2 小时前
【蓝桥杯JavaScript基础入门】二、JavaScript关键特性
开发语言·前端·javascript·学习·蓝桥杯
前路不黑暗@13 小时前
Java项目:Java脚手架项目的文件服务(八)
java·开发语言·spring boot·学习·spring cloud·docker·maven
崎岖Qiu13 小时前
【计算机网络 | 第十一篇】图解交换机的自学习功能
网络·学习·计算机网络
科技林总14 小时前
【系统分析师】8.0 项目管理
学习
浅念-14 小时前
C++ string类
开发语言·c++·经验分享·笔记·学习