音视频学习一

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)保存:

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

    • 没有真正的立体声效果

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

相关推荐
handler015 小时前
从源码到二进制:深度拆解 Linux 下 C 程序的编译与链接全流程
linux·c语言·开发语言·c++·笔记·学习
电子云与长程纠缠5 小时前
UE5 两种方式解决Decal Actor贴花拉伸问题
学习·ue5·游戏引擎
red_redemption6 小时前
自由学习记录(172)
学习·cache line 64b·重用距离
阿荻在肝了6 小时前
Agent学习六:LangGraph学习-持久化与记忆一
python·学习·agent
民乐团扒谱机7 小时前
【微实验】基于matlab的音频提取与信号滤波处理
开发语言·matlab·音视频
寒秋花开曾相惜8 小时前
(学习笔记)4.1 Y86-64指令集体系结构(4.1.4 Y86-64异常&4.1.5 Y86-64程序)
开发语言·jvm·数据结构·笔记·学习
莹宝思密达8 小时前
【AI学习】 playwright-cli + SKILL 替换 chrom-devTools-MCP
学习
cyr___9 小时前
Unity教程(二十七)技能系统 黑洞技能(下)黑洞状态
学习·游戏·unity·游戏引擎
clear sky .10 小时前
[linux]视频实时推流项目
linux·服务器·音视频
豆瓣鸡10 小时前
Gradle学习
学习