当前位置: 首页 > news >正文

音视频入门

一个视频,一秒内普遍大于等于25帧。

入门知识:

1.帧,一张画面就是一帧。一个视频就是由许许多多帧组成的。

帧率,单位时间内帧的数量。单位:帧/秒 或 fps。

分类:I帧,P帧,B帧

I帧:不需要参考其他画面而生成,解码时仅靠自己就重构完整图像;

P帧:根据本帧与相邻的前一帧(I帧或P帧)的不同点来压缩本帧数据

B帧:B 帧图像采用双向时间预测,可以大大提高压缩倍数。

2.色彩空间

1)RGB:red, green, blue 三种颜色 

2)YUV:亮度值:Y,色彩度UV(U:蓝色通道与亮度的差值,V:红色通道与亮度的差值)(兼容黑白电视)

声音是由物体的振动产生的,这种振动引起了周围空气压强的振荡,我们称这种振荡的函数表现形式为波形.声音有振幅,振幅的主观感觉是声音的大小。计算机并不直接使用连续平滑的波形来表示声音,它是每隔固定的时间对波形的幅值进行采样,用得到的一系列数字量来表示声音。

3.采样率:即声音的采样频率,采样率要大于原声波频率的2倍,人耳能听到的为[20Hz, 20Khz],所以采样率为[40,40KHz]。

4.采样位数:计算机内有采样器来记录振幅,通常有8 16 32位(采样值的精度取决于它用多少位来表示)

如果对视频及音频不做压缩编码,那么对内存的消耗是极大的。

未经编码的原始音视频,数据量至底有多大?
以一个分辨率 1920×1280 ,帧率 30 的视频为例:
共: 1920×1280=2,073,600 Pixels 像素),每个像素点是 24bit
也就是: 每幅图片 2073600×24=49766400 bit 8 bit (位) =1 byte (字节);
所以: 49766400bit=6220800byte≈ 6.22MB
这是一幅 1920×1280 图片的原始大小( 6.22MB ,再乘以帧率 30
也就是说: 每秒视频的大小是 186.6MB 每分钟大约是 11GB

视频编码常见编码方式:H264,H265。

音频编码常见编码方式:AAC

ACC格式主要为两种:ADIF,ADTS.

        ADIF:只有一个统一的头,必须在得到所有数据后解码。

        ADTS:ADTS可以在任意帧解码,它每一帧都有头信息。

硬解码和软解码

软解码:利用CPU的来解码,使用统一的算法,兼容性很好。

硬解码:利用专门的解码芯片来解码,速度快,但是容易因为质量问题出现兼容性问题。

mp4, avi, mov等常见的音视频格式,是包裹了音视频编码数据的容器,用来把以特定编码标准编码的视频流和音频流混在一起,成为一个文件。

音视频同步方式:Audio Master:同步视频到音频         Video Master:同步音频到视频

External Clock Master:同步音频和视频到外部时钟。

一般情况下 Audio Master > External Clock Master > Video Master

http://www.lryc.cn/news/453013.html

相关文章:

  • C++随心记 续一
  • 消息中间件:RabbitMQ
  • sql-labs:42~65
  • KaTeX.js渲染数学公式
  • 算法训练营打卡Day19
  • H.264编解码工具 - FFmpeg
  • 60 序列到序列学习(seq2seq)_by《李沐:动手学深度学习v2》pytorch版
  • elementPlus的tree组件点击后有白色背景
  • 【Git】Git在Unity中使用时的问题记录
  • python学习记录6
  • MongoDB 的基本使用
  • 数据揭秘:分类与预测技术在商业洞察中的应用与实践
  • 学MybatisPlus
  • 如何使用工具删除 iPhone 上的图片背景
  • 软件工程-数据流图
  • 链式前向星(最通俗易懂的讲解)
  • 【C++设计模式】(四)创建型模式:简单工厂模式,工厂方法模式,抽象工厂模式
  • 浅析Golang的Context
  • 生日礼物C++代码
  • 使用python基于DeepLabv3实现对图片进行语义分割
  • 【漏洞复现】泛微OA E-Office do_excel.php 任意文件写入漏洞
  • 算法(食物链)
  • ubuntu20.04系统安装zookeeper简单教程
  • .NET Core 高性能并发编程
  • B 私域模式升级:开源技术助力传统经销体系转型
  • vue之vuex的使用及举例
  • 使用 vite 快速初始化 shadcn-vue 项目
  • 微信小程序:一个小程序跳转至另一个小程序
  • Java第二阶段---10方法带参---第二节 方法重载(Overloading)
  • Java Web 之 Session 详解