走进音视频的世界——音频封装格式
音频封装格式一般由:多媒体信息+音频流+封面流+歌词流组成。有些音乐会包含封面和歌词,则对应有封面流、歌词流。多媒体信息包括:标题、艺术家、专辑、作曲、音乐风格、日期、码率、时长、声道布局、采样率、音频编码器等。而音频封装包括:mp3、m4a、ogg、amr、wma、aac、wav、flac、ape等。前面两篇文章介绍过相关概念:走进音视频的世界——音视频基本概念、走进音视频世界——视频封装格式。音频格式如下图所示:
先从FFprobe检测到的音频metadata说起,如下图1所示:
1、获取音乐的封面
音乐封面保存在视频图像流中,先解析出图像编码器、像素格式、分辨率等参数,然后根据编码器去寻找对应的解码器,并打开解码器,对图像编码压缩数据进行解码,最终解码出来的图像就是封面了。
2、音乐歌词的获取与显示
3、有损格式与无损格式的区别
RIFF块 |
文件格式类型“WAVE” |
fmt块 |
fact 块(压缩编码格式要含有该块) |
data块 |
struct chunk {u32 id; //块标识u32 size; //块大小u8 data[size]; //块内容
};
其中fmt块由声道数、采样率、码率、块对齐、量化位数五个参数组成,如下表所示:
Num Channels | 2 Bytes | 小端存储 |
SampleRate | 4 Bytes | 小端存储 |
ByteRate | 4 Bytes | 小端存储 |
Block Align | 2 Bytes | 小端存储 |
BitsPerSample | 2 Bytes | 小端存储 |
常见格式 | 是否有损 | 优点 | 缺点 |
mp3、m4a、ogg、amr、wma、aac | 有损 | 音质相对差 | 占用空间小 |
wav、ape、flac | 无损 | 音质相对好 | 占用空间大 |
4、不同封装格式的联系与区别
封装格式共同点是基本结构是相同的,都是由多媒体信息+音频流+封面流+歌词流组成。区别是不同封装格式,采用编码方式不一样,压缩率不一样,音频流子结构不一样。下面是不同封装格式的多方位对比,如表4所示:
格式 |
发布者 |
年份 |
编码器 |
是否有损 |
描述 |
wav |
微软 |
1991 |
pcm |
无损 |
波形文件,直接存储声音波形 |
ape |
Matthew |
2000 |
ape |
无损 |
压缩率约为55%,比flac高 |
flac |
Josh Coalson |
2000 |
flac |
无损 |
抗损坏,快速定位,可用于流媒体 |
mp3 |
MPEG-1 |
1992 |
mp3 |
有损 |
压缩比1:10甚至1:12,占有存储空间小,有版权 |
aac |
MPEG-2 |
1997 |
aac |
有损 |
支持多声道,更高解析度,更高压缩率 |
m4a |
MPEG-4 |
1998 |
aac |
有损 |
MPEG-4的扩展名,由ipod采用m4a变得流行 |
ogg |
Xiph.org |
不详 |
vobis |
有损 |
全称OGGVobis,支持多声道,支持流式播放 |
amr |
欧盟通信 |
不详 |
amr_nb/amr_wb |
有损 |
自适应多码率,占用存储空间特别小 |
wma |
微软 |
1999 |
wma |
有损 |
支持证书加密,主要应用于VOIP视频通话 |
走进音视频的世界——音频封装格式相关推荐
- 走进音视频的世界——Matroska封装格式的介绍(二)
Matroska封装格式非常灵活.兼容性好,既适用于本地文件存储又可以进行实时流传输.本篇文章主要探讨Matroska的编解码器映射,如何封装视频流.音频流.字幕流.如果要Matroska的介绍.功能 ...
- 走进音视频的世界——Matroska封装格式的介绍(一)
Matroska是一个开放标准项目,基于EBML(Extensible Binary Meta Language 可扩展的二进制元语言),旨在成为多媒体格式容器的标准.EBML与XML结构有点类似,R ...
- 走进音视频的世界——音视频解码
音视频文件是经过编码.封装而成的.那么反过来,要播放音视频文件,首先得解封装.解码.上一篇博客讨论到音视频编码:走进音视频的世界--音视频编码,我们来个上下呼应,本文与大家探讨一下音视频解码.本质上, ...
- 走进音视频的世界——音视频的基本概念
音视频通用的基本概念有码率.时长,而不同音视频有不同的封装格式.编码协议.其中视频关键参数有分辨率.帧率.画质.旋转角度.像素格式,而音频关键参数有采样率.声道数.声道布局.音质.采样数.采样位数.帧 ...
- 走进音视频的世界——视频封装格式
音视频的时长怎么获取,音视频的封面怎么获取,音视频的格式怎么获取呢?这些信息都以特定格式存储在文件开头或者结尾,称为多媒体信息或者多媒体元数据.通用的封装格式由:文件标识头+多媒体信息+音视频(字幕) ...
- 走进音视频的世界——剖析exo播放器架构
ExoPlayer是Google开源的一款播放器,基于Android平台的可扩展多媒体播放器,支持HLS流.Smooth Streaming流.Dash流,支持扩展FFmpeg.Vpx.Av1.Fla ...
- 学习笔记(2):基于NDK、C++、FFmpeg的android视频播放器开发实战-音视频基础知识Mpeg4封装格式音视频编码格式讲解...
立即学习:https://edu.csdn.net/course/play/7417/151027?utm_source=blogtoedu 封装:将音视频从文件中读出来 解码:解压出来,转换成显卡支 ...
- 走进音视频的世界——音视频编码
音视频流是通过特定编码器压缩,由一系列的压缩图像/语音帧组成.当然可能存在多种语言多音轨,每个音轨之间的音频流相互独立.还可能存在内置字幕,常见的字幕格式有sub.smi.ssa.srt等.但是,本篇 ...
- 走进音视频的世界——杜比视界Dolby Vision与HDR
Dolby Vision(杜比视界)是杜比实验室推出的影像画质技术,具有更宽的色域和高动态范围HDR,亮度.色度和对比度更加逼真,从而使得整体图像更加生动.图像的明亮部分可以变得更亮,因此图像似乎具有 ...
最新文章
- BIEE-CSS样式大全
- Android log 里面快速搜索错误堆栈 ( 关键字)
- 600. 不含连续1的非负整数
- POJ 1742 Coins ( 经典多重部分和问题 DP || 多重背包 )
- vector的应用练习
- 启动、内存、卡顿三大分析,用户体验就用它?
- django安装_技术大牛详解:Django框架之环境安装
- 几行代码创建属于你自己的SQL数据库
- 2.c++模式设计-工厂模式
- listview添加列
- Spring Boot + Web Socket 实现扫码登录,这种方式太香了!!
- 思科与华为设备OSPF配置命令对比
- 非线性光学近似计算机应用,非线性光学.doc
- 五大车载操作(VOS)系统优劣对比
- Spring Boot 项目启动的七种方式
- 用ps羽化图片边缘(两种羽化图片边缘的方法)
- 遗传算法简单求函数最值实例
- js中 0 +0 -0 有什么区别?
- 如何用OCR文字识别软件将PDF转换成Excel
- 终于解决了Chrome:“喔唷,崩溃啦“
热门文章
- 简明易懂23种设计模式详解
- 计算机网路原理与应用试题,2018年10月全国自考 04741计算机网络原理历年真题试题及答案...
- 帅某---考研---高数笔记---汤家凤---第五章定积分
- python 正则匹配 手机号 QQ号 邮箱 日期 图片
- 普通话测试第四题评分标准_普通话水平测试最新评分标准
- 2022年全球市场电子设计自动化工具总体规模、主要企业、主要地区、产品和应用细分研究报告
- 全平台安卓源码预置GMS方法 / 全平台安卓源码预置谷歌服务方法
- airpods2手机不显示盒子电量
- 干货 | 网易大数据平台运维实战
- oracle dmp文件读取,从dmp文件恢复数据库