深入解析音频:格式、同步及封装容器

物理音频和数字音频

物理音频

定义:物理音频就是声音在自然界中的物理表现形式,本质上是一种机械波,通过空气或其他介质传播。例如,当我们说话、乐器演奏或物体碰撞时,都会产生振动,这些振动会引起周围介质(如空气)分子的疏密变化,形成疏密相间的声波,以一定的速度向四周传播,这就是物理音频的产生和传播过程。
特性

  • 频率:决定了声音的音调高低,单位是赫兹(Hz)。例如,高音的频率较高,低音的频率较低。人耳能够听到的声音频率范围通常在 20Hz 到 20000Hz 之间。
  • 振幅:与声音的响度相关,振幅越大,声音越响亮。它表示声波中介质分子振动的幅度大小。
  • 波形:不同的声源发出的声音具有不同的波形,波形决定了声音的音色。例如,钢琴和小提琴演奏相同音高和响度的音符时,我们能够区分它们,就是因为它们具有不同的波形,即不同的音色。

数字音频

定义:数字音频是将物理音频的模拟信号经过一系列处理,转换为数字数据的形式,以便于计算机等数字设备进行存储、处理和传输。
实现步骤

  • 采样:按照一定的时间间隔对模拟音频信号进行抽样,获取离散的样本点。采样频率决定了每秒采集样本的数量,例如,常见的采样频率有 44.1kHz、48kHz 等。采样频率越高,对原始音频信号的还原度就越高,但同时占用的存储空间也越大。

(人耳能听到的声音频率范围通常是 20Hz 到 20kHz。根据奈奎斯特采样定理,为了能够准确地还原原始信号,采样频率必须至少是信号最高频率的两倍。选择 44.1kHz 的采样频率)

  • 量化:将采样得到的样本点的幅度值映射到有限个离散的量化电平上,把连续的模拟量转换为离散的数字量。量化位数决定了每个样本点能够表示的精度,如 8 位量化可以表示 256 个不同的电平,16 位量化则可以表示 65536 个不同的电平。量化位数越高,音频的动态范围越大,声音的细节和层次感就越丰富。
  • 编码:将量化后的数字信号按照一定的编码格式进行编码,以便于存储和传输。常见的编码格式有 MP3、WAV、AAC 等。不同的编码格式在压缩比、音质和兼容性等方面有所不同。例如,MP3 是一种常用的有损压缩编码格式,它通过去除人耳难以察觉的音频信息来减小文件大小,但会在一定程度上损失音质;而 WAV 是一种无损编码格式,它保留了原始音频的所有信息,音质较好,但文件体积较大。

相互转化

在这里插入图片描述
上面无疑是从物理到数字,下面则是相反。

音频基本概念

  • 采样频率的概念: 每秒钟采样的点的个数。常用的采样频率有

22000(22kHz):无线广播。
44100(44.1kHz): CD音质。
48000(48kHz):数字电视, DVD。
96000(96kHz):蓝光,高清DVD。
192000(192kHz):蓝光,高清DVD。

  • 采样频率的作用

采样频率越高,对原始音频信号的细节捕捉就越精确,在回放时就越能接近原始声音。例如,对于具有丰富高频细节的音乐,较高的采样频率可以更好地保留这些细节,使音乐听起来更加清晰、真实。

  • 采样精度(采样深度) :每个“样本点”的大小

常用的大小为8bit, 16bit, 24bit。

  • 采样精度的作用

决定音频的动态范围:采样精度决定了数字音频能够表示的声音强度的范围。它以位(bit)为单位,比如 8 位、16 位、24 位等。每增加一位,可表示的数值范围就翻倍。例如,8 位采样精度可以表示 256 个不同的量化电平,而 16 位采样精度则能表示 65536 个电平。这意味着 16 位采样精度的音频动态范围更大,能够更精确地捕捉和还原从非常微弱的声音到非常响亮的声音之间的各种细节,使音频听起来更加饱满、丰富,有更强的层次感和真实感。(简要 没必要太了解)

  • 通道数: 单声道,双声道(立体声),四声道, 5.1声道

通道数是数字音频中的一个重要概念,它表示在音频录制、传输和播放过程中所使用的独立音频信号路径的数量,常见的有单声道、立体声和多声道等形式,不同的通道数在音频的空间表现、沉浸感和信息丰富度等方面有着不同的作用:

  • 比特率: 每秒传输的bit数,单位为: bps(Bit Per Second)。
    间接衡量声音质量的一个标准。

没有压缩的音频数据的比特率 = 采样频率 * 采样精度 * 通道数。

  • 码率: 压缩后的音频数据的比特率。常见的码率:

96kbps: FM质量
128-160kbps:一般质量音频。
192kbps: CD质量。
256-320Kbps:高质量音频
码率越大,压缩效率越低,音质越好,压缩后数据越大。
码率 = 音频文件大小/时

  • : 音频的帧的概念没有视频帧那么清晰,几乎所有视频编码格式都可
    以简单的认为一帧就是编码后的一张图像。但是音频帧长:可以指每帧采样数播放的时间, mp3音频协议 采样频率为:48k, 1152个采样点,每帧则为
    24ms; aac则是每帧是1024个采样点。攒够一帧的数据才送去做编码

1.也可以指压缩后每帧的数据长度。所以讲到帧的时候要注意他适用
的场合
2.每帧持续时间(秒) = 每帧采样点数 / 采样频率(HZ)

  • 帧存放模式:就是帧的存放模式
    • 交错模式: 数字音频信号存储的方式。数据以连续帧的方式存放,即首先记录帧1的左声道样本和右声道样本,再开始帧2的记录
      在这里插入图片描述
    • 首先记录的是一个周期内所有帧的,左声道样本,再记录所有右声道样本
      在这里插入图片描述

音频封装格式

  • WAV
    特点:是一种无损的音频格式,具有较高的音频质量,能够保留原始音频的所有细节。它支持多种采样频率和采样精度,并且可以包含多个声道的音频数据。WAV 文件通常未经过压缩或者采用简单的 PCM(脉冲编码调制)方式进行存储,因此文件体积较大。
    应用场景:常用于专业音频录制、音频编辑以及对音频质量要求较高的场合,如电影制作、音乐制作等。由于其无损的特性,也适合作为音频素材的原始存储格式,以便后续进行各种处理和转换。
  • MP3
    特点:是一种广泛使用的有损音频压缩格式。它采用了感知编码技术,能够在相对较小的文件体积下保持较好的音频质量。MP3 通过去除人耳难以察觉的音频信息,如高频部分的一些细节和掩蔽效应下被掩盖的声音,来实现压缩。用户可以根据需要选择不同的比特率来控制压缩比和音频质量,比特率越高,音频质量越好,文件体积也越大。
    应用场景:由于其文件体积小、兼容性强,被广泛应用于音乐下载、在线音乐播放、便携式音乐播放器等领域,是目前最流行的音频格式之一,方便用户在各种设备上存储和播放大量的音乐文件。
  • AAC
    特点:也是一种有损音频压缩格式,在相同的比特率下,AAC 的音频质量通常优于 MP3。它采用了更先进的编码算法,能够更精确地模拟人耳的听觉特性,更好地保留音频的细节和音色。AAC 支持多声道音频,并且具有更高的压缩效率,能够在较低的比特率下提供出色的音频质量。
    应用场景:常用于数字音频广播(DAB)、数字电视、在线视频以及苹果设备的音乐播放等领域。许多视频网站也采用 AAC 作为音频编码格式,以在保证音频质量的同时,减少视频文件的整体大小,提高网络传输效率。
  • FLAC
    特点:是一种无损音频压缩格式,它能够在不损失任何音频信息的前提下对音频数据进行压缩,压缩后的文件可以完全还原为原始的音频信号。FLAC 的压缩比通常比 WAV 文件小,文件体积相对适中,既能够节省存储空间,又能保证音频质量。
    应用场景:受到追求高品质音频的用户和音乐发烧友的喜爱,常用于音乐收藏、高清音频播放等场景。一些专业音频设备也支持 FLAC 格式,方便用户在享受高品质音频的同时,不必担心因压缩而导致的音质损失。
  • OGG
    特点:是一种开源的音频格式,采用了 Vorbis 编码算法。它具有良好的音频质量和压缩性能,能够在不同的比特率下提供稳定的音频表现。OGG 格式支持多声道音频,并且具有动态比特率(VBR)功能,可以根据音频内容的复杂程度自动调整比特率,从而在保证音频质量的同时进一步减小文件体积。此外,OGG 格式还具有良好的跨平台性和版权免费的优势。
    应用场景:在一些开源软件、游戏以及网络音频应用中得到了广泛应用。由于其版权免费和开放的特性,也受到一些独立音乐人和开发者的青睐,用于音频的创作、发布和传播。

混合封装容器

  • 封装格式(也叫容器) 就是将已经编码压缩好的视频流、音频流及字幕按
    照一定的方案放到一个文件中,便于播放软件播放。
    一般来说,视频文件的后缀名就是它的封装格式。
    封装的格式不一样,后缀名也就不一样。
    比如:同样的陷可以做成饺子也可以做成包子。对于视频也是一个道理,
    同样的音视频流可以用不同容器来承载。
    在这里插入图片描述

H264+AAC封装为FLV或MP4是最为流行的模式

音视频同步基础

  • DTS( Decoding Time Stamp) : 即解码时间戳,这个时间戳的
    意义在于告诉播放器该在什么时候解码这一帧的数据。
  • PTS( Presentation Time Stamp) : 即显示时间戳, 这个时间
    戳用来告诉播放器该在什么时候显示这一帧的数据。

在视频编码过程中,由于编码格式如H.264可能对帧进行重新排序,因此解码顺序和显示顺序可能不一致。DTS和PTS的存在就是为了解决这个问题。DTS标识读入内存中的bit流在什么时候开始送入解码器中进行解码,而PTS标识解码后的视频帧什么时候被显示出来。
PTS和DTS共同确保音视频流的正确处理和播放。解码器使用DTS来决定帧的解码顺序,而播放器使用PTS来决定帧的显示顺序。这种同步工作机制确保了帧在正确的时间点被解码和播放,从而实现了音视频同步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/75263.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI与.NET技术实操系列(四):使用 Semantic Kernel 和 DeepSeek 构建AI应用

1. 引言 在人工智能技术飞速发展的今天,大型语言模型(Large Language Models, LLMs)已成为智能应用开发的核心驱动力。从智能客服到自动化内容生成,LLMs的应用正在深刻改变我们的工作和生活方式。 对于.NET开发者而言,…

导出cad实体所有信息到txt并打开(生成唯一文件名) ——c#cad二次开发

效果如下: 建议在保存时指定编码为UTF-8: using (StreamWriter sw new StreamWriter(filePath, false, Encoding.UTF8)) { // 写入内容 } 最终 using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD…

Redis 源码硬核解析系列专题 - 第一篇:Redis源码入门与整体架构

1. 引言 Redis作为一个高性能的内存键值数据库,其源码以简洁高效著称。通过解析Redis源码,我们可以深入理解其单线程模型、事件驱动机制以及模块化设计的精髓。本篇将从Redis的源码目录结构入手,剖析其整体架构,并聚焦启动流程和事件循环的核心实现。 2. Redis源码目录结构…

异步加载+内存分析

异步加载 Resources和AB包的同步加载与异步加载对比代码: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class AsyncLoad : MonoBehaviour {// Start is called before the first frame updatev…

将视频m4s文件转换为mp4格式

将视频m4s文件转换为mp4格式 一般情况:偏大的文件为视频,偏小的文件为音频。 环境要求:下载并安装ffmpeg,并配置好环境变量,如下图: 转换代码: import subprocessdef merge_m4s_to_mp4(vide…

EXCEL报错:无法共享此工作薄,因表包含excel表或xml映射的解决方法

在分享工作薄是,如果出现了“无法共享此工作薄,因表包含excel表或xml映射”的报错,那么有两个原因: 1.包含Excel表格,这个也是相对比较常见的原因。 首先选中表格。如果你不知道表的位置在哪,那么在Excel左…

w2ui 水平滚动移动 虚拟列 数据丢失

https://w2ui.com/web/docs/1.5/w2grid.disableCVS https://github.com/vitmalina/w2ui/issues/1398 解决方案来源 问题现象: 窗口缩小 导致多列 出现水平滚动,滚动时触发本地样式重绘,导致record undefined,从而引发多列报错 解决方案: 使用 disableCVS : true 一次加载到d…

在ensp进行OSPF+RIP+静态网络架构配置

一、实验目的 1.Ospf与RIP的双向引入路由消息 2.Ospf引入静态路由信息 二、实验要求 需求: 路由器可以互相ping通 实验设备: 路由器router7台 使用ensp搭建实验坏境,结构如图所示 三、实验内容 1.配置R1、R2、R3路由器使用Ospf动态路由…

基于mediapipe深度学习和限定半径最近邻分类树算法的人体摔倒检测系统python源码

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 Mediapipe人体姿态检测原理 4.2 限定半径最近邻分类树算法原理 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 人工智能算法python程序运行环…

deep-sync开源程序插件导出您的 DeepSeek 与 public 聊天

一、软件介绍 文末提供下载 deep-sync开源程序插件导出您的 DeepSeek 与 public 聊天,这是一个浏览器扩展,它允许用户公开、私下分享他们的聊天对话,并使用密码或过期链接来增强 Deepseek Web UI。该扩展程序在 Deepseek 界面中添加了一个 “…

苹果签名是否一定安全呢?

苹果签名是一种数字签名技术,用于验证应用程序的来源和完整性。当开发者将应用程序提交到苹果应用商店时,苹果会对应用进行签名,这个签名包含了开发者的身份信息以及应用的相关数据。用户安装应用时,设备会验证签名的有效性&#…

Outlook客户端无法连接到服务器,添加账户显示“无网络连接,请检查你的网络设置,然后重试。[2603]”

1、先切换一下到手机热点或者其他网络,判断是不是现在所连接的网络的问题。如果有VPN代理软件,网银软件,加密软件在后台运行,麻烦退出一下。 2、打开电脑上的 控制面板——网络和Internet——Internet选项——高级——先点击还原…

Laravel 中使用 JWT 作用户登录,身份认证

什么是JWT: JWT 全名 JSON Web Token,是一种开放标准 (RFC 7519)。 用于在网络应用环境间安全地传输信息作为 JSON 对象。 它是一种轻量级的认证和授权机制,特别适合分布式系统的身份验证。 核心特点 紧凑格式:体积小&#x…

51. “闲转易”交易平台小程序(基于springbootvue)

目录 1.系统的受众说明 2 关键技术介绍 2.1 SSM框架 2.2 Java技术及架构介绍 2.3 MYSQL数据库 2.4微信小程序框架 2.5 B/S架构 3 需求分析与可行性分析 3.1功能需求分析 3.2 性能需求分析 3.3系统设计规则与运行环境 3.4系统流程分析 3.5 可行性分析 4 系统设计 …

【STM32】GPIO输入(按键)

目录 一、如何分辨GPIO输入使用什么电频二、输入抖动问题如何消抖三、示例代码 一、如何分辨GPIO输入使用什么电频 先看原理图 即可知道他的初始输入状态需要高电平 判断可知使用上拉输入 二、输入抖动问题如何消抖 电路图中, 按键输入有额外的电容电阻, 是为了消抖 消抖方…

【Android Studio】配置教程以及解决过程中的问题(详细版本)

目录 前言 一、下载安装 二、配置 三、简单使用 新建项目 创建默认项目 四、解决过程中的问题 前言 如果你目前不是第一次安装,那需要完全卸载它。 因为一般电脑卸载 Android Studio 时容易落下一堆配置文件没删,卸载不干净导致无用文件占用空间…

EtherNet/IP转ProfiNet协议转换网关驱动西门子PLC与流量计的毫秒级压力同步控制

一、案例背景 汽车涂装线的静电喷涂工艺对压缩空气流量稳定性要求极高。原系统中Alicat流量计与西门子PLC因协议差异无法联动,导致涂料浪费率高达8%。通过JM-EIPM-PN网关实现供气系统与PLC的深度集成。从而实现了EtherNet/IP转ProfiNet的通讯。 二、设备连接与配置…

如何从0-1的建设云上稳定性?

一、系统架构 整个系统包含了私有云和公有云两个节点。前端和服务端存在私有云和公有云两套系统交互,公有云上的系统为三方黑盒系统。 带着上面的五点风险和挑战,我们从前后端的视角整体制定优化策略和方案。 二、前端策略 作为钉钉的合作产品&#xff…

【学Rust写CAD】17 通用2D仿射变换矩阵结构体(matrix/generic.rs)

源代码 // matrix.rs use std::ops::{Add, Mul};use std::ops::{Add, Mul};/// 通用2D仿射变换矩阵&#xff08;元素仅需Copy&#xff09; #[derive(Clone, Copy, Debug, PartialEq)] pub struct Matrix<X, Y, Xx, Xy, Yx, Yy> {pub x: X, pub y: Y,pub xx: Xx, pub xy:…

Spring Boot @RequestParam 解析参数时的常见问题及解决方案

1&#xff0c;遇到的问题&#xff1a;将后端接口写完后我想通过PostMan进行简单的测试一下&#xff0c;一不小心就遇到了这样的情况&#xff1a; org.springframework.web.bind.MissingServletRequestParameterException: Required Integer parameter contractId is not prese…