历史上的今天

今天是:2024年10月26日(星期六)

2021年10月26日 | 音视频相关技术基础知识总结

发布者:静默思考 来源: eefocus关键字:音视频技术  视频  音频  ffmpeg 手机看文章 扫描二维码
随时随地手机看文章

前阵子写了很多笔记,由于忙于研究生课程学习,故很少有时间整理笔记分享到公众号上,今天整理的笔记是我之前学习音视频技术相关的笔记整理。

 

1、视频

 

1.1、视频帧

帧,是视频的一个基本概念,表示一张画面,一个视频就是由许许多多的帧组成的。

 

1.2、帧率

即单位内帧的数量,单位为:帧/秒 或 fps(frames per second),一秒内包含多少张图片,图片越多,画面越顺滑,过渡越自然。

 

常见的帧率典型值:

(1)24/25 fps:1秒24/25帧,一般的电影频率。

(2)30/60 fps:1秒30/60帧,游戏的频率,30帧可以接受,60帧会感觉更加流畅逼真

(3)85fps:这个帧率及以上人眼基本无法察觉出来,更高的帧率在视频里没有太大意义。

 

2、色彩空间

 

2.1、RGB

通过R、G、B三种基础色,可以混合出所有的颜色

 

2.2、YUV

也叫,YCbCr,是一种亮度与色度分离的色彩格式

(1)Y:亮度,就是灰度值,出了表示亮度信号外,还含有较多的绿色通道量

(2)U:蓝色通道与亮度的差值

(3)V:红色通道与亮度的差值

 

优势:

人眼对亮度敏感,对色度不敏感,因此减少部分UV的数据量,人眼却无法感知出来,这样可以通过压缩UV分辨率,在不影响感观的前提下,减少视频的体积。

 

2.3、RGB与YUV的换算

 

(1)RGB转YUV算法

Y = 0.299R + 0.587G + 0.114B

U = -0.147R - 0.289G + 0.436B

V = 0.635R - 0.515G - 0.100B

 

(2)YUV转RGB算法

R = Y + 1.14V

G = Y - 0.39U - 0.58V

B = Y + 2.03U

 

3、音频

 

3.1、基本知识

人类能够听到的所有声音都称之为音频,在计算机中,音频只是存储在计算机里的声音。

 

PCM:音频数据的承载方式最常用的是脉冲编码调制。

 

在自然界中,声音是连续不断的,是一种模拟信号,那怎样才能把声音保存下来呢?就是将这些模拟信号数字化,即模数转换,将模拟信号转换为数字信号。

 

声音是一种波,由自己的振幅和频率,那么要保存声音,就要保存声音在各个时间点上的振幅。而数字信号并不能连续保存所有时间点的振幅。

 

奈奎斯特采样定理:为了不失真地恢复模拟信号,采样频率应该不小于模拟信号频率中最高频率的2倍。

 

3.2、采样率和采样位数

 

(1)采样率

根据奈奎斯特采样定理,人耳能听到的最高频率为20KHz,所以为了满足人耳的听觉要求,采样率至少为40KHz,通常为44.1KHz,更高的通常为48KHz。

注意:人耳听觉频率范围[20Hz,20KHz]。

 

(2)采样位数

波形振幅在模拟信号上也是连续的样本值,而在数字信号中,信号一般是不连续的,所以模拟信号量化后,只能取一个近似的整数值,为了记录这些振幅值,采样器会采用一个固定的位数来记录这些振幅值,通常有8位、16位、32位。

注意:位数越多,记录的值越准确,还原度越高,但是占用的硬盘空间越大。

 

位数最小值最大值
80255
16-3276832767
32-21474836482147483647
 

3.3、音频编码

由于数字信号是由0、1组成的,因此,需要将幅度值转化为一系列0和1进行存储,也就是编码。

 

3.4、PCM的采集步骤

模拟信号->采样(奈奎斯特采样定理)->量化->编码->数字信号

 

 

3.5、声道数

 

声道数是指支持能不同发声(注意是不同声音)的音响的个数。

  • 单声道:1个声道双声道:2个声道立体声道:默认为2个声道立体声道(4声道):4个声道

 

3.6、码率

码率是指一个数据量中每秒钟能通过的信息量,单位bps(bit per second)

码率 = 采样率 * 采样位数 * 声道数

 

3.7、常见的音频格式

CD格式、WAVE(*.WAV)、AIFF、MP3、MIDI、AAC、WMA、OggVorbis

 

4、FFmpeg

 

4.1、FFmpeg是什么?

是一套可以用来记录、转化数字音频、视频、并能将其转化为流的开源计算机程序。它有着非常强大的功能,主要包括:视频采集功能、视频格式转换、视频抓图、给视频加水印等。

 

4.2、FFmpeg的组成

FFmpeg由三个部分组成:

 

(1)工具

分别是ffmpeg、ffplay、ffserver和ffprobe。

ffmpeg:音视频转码、转换器

ffplay:简单的音视频播放器

ffserver:流媒体服务器

ffprobe:简单的多媒体码流分析器

 

(2)SDK

 

提供开发者使用的SDK,我们可以根据自己的需求使用这些库开发自己的应用程序,这些库主要有:

libavcodec:包含音视频编码器和解码器

libavutil:包含多媒体应用常用的简化编程的工具,如随机数生成器、数据结构、数学函数等功能

libavformat:包含多种多媒体容器格式的封装、解封装工具

libavfilter:包含多媒体处理常用的滤镜功能

libavdevice:用于音视频数据采集和渲染等功能的设备相关

libswscale:用于图像缩放和色彩空间和像素格式转换功能

libswresample:用于音频量采样和格式转换等功能

libpostproc:用于后期处理,当我们使用filter的时候,需要打开这个模块,filter会用到这个模块里的一些基础函数

 

(3)源代码

整个工程的源代码,无论是编译出来的可执行程序还是SDK。

它的源代码由C语言实现,主要在Linux平台上进行开发。


关键字:音视频技术  视频  音频  ffmpeg 引用地址:音视频相关技术基础知识总结

上一篇:入耳式蓝牙耳机哪款音质好?入耳式质排行榜
下一篇:如何选择液晶显示模块

推荐阅读

在有些人眼里,徐击水是个“爱折腾”的人。25年前,他丢掉大学老师的铁饭碗,跑到千里之外的广东去给私营企业打工;拼到50岁,有了一家年产值过亿元的电力企业,本可安心享受生活了,他又搭上全部身家,跑去造工业机器人。“都快60岁了,成天搞研发、跑市场,操碎了心,何苦呢?”但理解他的人说,老徐是个“有追求”的人。30年前,对科研有浓厚兴趣的他,...
丰田汽车研究所(Toyota Research Institute, TRI)日前宣布,其 Platform 4(P4)自动驾驶测试车将于明年夏天驶上东京公开道路。具体来说,P4 将于 2020 年 7 月至 9 月(覆盖东京奥运会期间),在特定的 “移动出行即服务”(MaaS)驾驶环境中展示丰田的 SAE Level-4 级别自动驾驶功能。P4 的相关体验与展示将在东京的御台场(Odaiba...
集成电路界近日什么新闻最“火”?无疑是“南京集成电路大学”正式揭牌,这是我国首个以集成电路命名的大学。国家一系列政策的加码到集成电路一级学科的确立再到集成电路大学的成立,我国集成电路产业驶向了“快车道”。上海浦东新区政府的多措并举也推动了诸如张江科学城等产业集群的繁荣。面向未来,浦东着力打造中国芯、创新药、智能造、蓝天梦、未来车...
小鹏要在2024年量产百万元的飞行汽车,全行业蓄势待发,不少头部企业认为商业化近在眼前,但技术、商业和监管等多重问题仍未彻底解决。 ▲ 小鹏汇天旅航者X2 来源:戚展宁 飞行汽车要来了?售价100万? 10月24日,小鹏汽车董事长兼CEO何小鹏透露了旗下飞行汽车的最新进展,称2024年实现量产,且价格控制在100万元以内。此前,小鹏汇天CEO赵德力对出行一...

史海拾趣

问答坊 | AI 解惑

我决定了,自己学单片机!

总以军人自居,面对绝对权威的老师,老师是好老师,但是价格要1600,多亏考试时间紧就推迟了,当初我也没去捉摸,现在想来真是太浪费了。要自己搞!…

查看全部问答∨

我的大学六年(单片机大师郭天祥原创)

单片机大师郭天祥原创——我的大学六年 …

查看全部问答∨

【藏书阁】电磁场与电磁波

目录: 译者的话 序言 第1章 电磁场理论概述 1.1 引言 1.2 场的概念 1.3 矢量分析 1.4 微分和积分表示法 1.5 静态场 1.6 时变场 1.7 时变场的应用 1.8 数值解 1.9 进一步研究 第2章 矢量分析 2.1 引言 2.2 标量和矢量 2.3 矢量运 ...…

查看全部问答∨

四位超前进位加法器完整版图

四位超前进位加法器完整版图…

查看全部问答∨

在wince操作系统下如何进行数据操作?(Symbol开发)

我现在设备的是wince4.2的操作系统,设备是symbol mc1000的数据采集器.以前是通过rda的方式,将数据从sql server2000中pull到sqlce中的.现在需要在当我扫描到条码信息后,记录下来所扫描的信息,而且再上传到pc中.由于现在的数据是存在oracle中的,也不 ...…

查看全部问答∨

真的是一代不如一代吗

几天前和一位老师聊天,他谈到他招研究生的原则是“男生优于女生,有兄弟姐妹的优于独生子,有工作经验的优于没工作经验的”,而且这条经验非常管用。   闲话少说,他说起实验室的学生比起前些年来差了很多,先不说干活怎么样,就连带着学生 ...…

查看全部问答∨

2路有相位差的脉冲怎么做?求助

clk_a_process :process            begin                      clk_a <= \'0\';         wait for c ...…

查看全部问答∨

用msp430f×写一个数字时钟1602显示

高手,请教用MSP430F2132写一个时钟程序怎么写,只要显示年月日,时分秒???? 不用时钟芯片 很简单 入门的那种程序 用1602液晶显示…

查看全部问答∨

在beaglebone black上安装lighttp

以前写过一篇文章《基于beaglebone的lighttpd的使用(1)》这个是基于ubuntu的,这次我的环境是 硬件环境:Beaglebone black+ AT070TN83(群创7寸屏)软件环境:Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.12-beaglebone-2013.06.20.img.xz(下载 ...…

查看全部问答∨
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved