音视频编解码的那些基础理论

简介: 本文主要讲的是视频文件的解码,从视频文件的封装格式解码到原始数据格式,通过讲解涉及到的各种概念,从而理清整个思路和流程。

作者:星陨
来源:音视频开发进阶

最近在研究学习 FFmpeg,从网上参考了好多资料,其中最了不起的就当属 —— 雷霄骅大神了,若没有他的博文,别说入门了,可能连门在哪里都不知道,在此还是要表达一下对雷神的敬佩和敬仰。

本文主要讲的是视频文件的解码,从视频文件的封装格式解码到原始数据格式,通过讲解涉及到的各种概念,从而理清整个思路和流程。

为何封装格式?

在我们平时接触到的视频文件,大都是以 .mp4.flv.avi.rmvb 后缀结尾的。

然而,事情并不是这么简单,这些后缀名其实还代表着一种封装格式,一种把音频数据和视频数据打包成一个文件的格式规范。

封装格式的编解码

在上面有讲到,视频文件其实包含着音频数据和视频数据,那么这些音频数据和视频数据又是如何形成封装格式的呢?

这里就涉及到编解码的知识了,原始的音频或者视频数据是很大的。比如,如果不进行压缩或者编码处理,用手机随便录一段视频可能就有几百 M 了,而有时候看部一个小时的电影也就才几百 M,这就是对原始数据处理方式不同的结果。

而我们的音频或者视频数据,也是要通过编码处理进行压缩,对他们进行编码处理后,体积都会变小,这样才能合并成具体的某种封装格式。

同时,当我们要播放视频或者音频时,还需要对编码压缩后的数据进行解码,从压缩的数据解码到原始数据,并将原始数据送到对应的设备,比如显卡或者声卡进行播放。这就是一个解封装的过程。

不同的封装格式支持的音视频编解码标准不一样,越是优越的封装格式,支持的编码标准越多,比如:MKV 封装格式,而 RMVB 封装格式就算落后的,支持的音视频标准有限。

这里,还是借雷神的图一张,很形象的解释了音频文件解码的整个过程。

  • 解协议 -> 封装格式数据
  • 解封装 -> 音频数据和视频数据
    • 音频解码 -> 设备输出
    • 视频解码 -> 设备输出

image.png

音视频的原始数据格式和编解码标准

在上面有讲到,封装格式其实就是音频或者视频的原始数据进行编码压缩得到的。而且,音频和视频对应的原始数# # 据格式和编解码标准都不一样。

音频的原始数据格式和编解码标准
音频的原始数据格式主要有如下几种:

  • PCM 格式
    音频的编解码标准主要有如下几种:
  • MP3
  • AAC
  • AC-3

    视频的原始数据格式和编解码标准

    视频的原始数据格式主要有如下几种:

  • YUV 格式
  • RGB 格式

视频的编解码标准主要有如下几种:

  • H.264
  • H.265
  • MPEG2

这些原始数据格式和编解码标准初次看是有点陌生,但接触多了,也就逐渐熟悉了,先以掌握主流的编解码标准为主,这里也只是列出了其中一部分而已。

MEPG->PCM 的解析

有了以上的理论基础,就可以开始我们的解析工作了。

使用 FFmpeg 3.x 的版本(与 2.x 版本相比接口有了较大变化)将 MEPG 的视频文件解码到 PCM 的原生数据格式。

这里的案例参考的是 FFmpeg 官网的例子,地址在此:http://ffmpeg.org/doxygen/trunk/examples.html

参考

  1. http://blog.csdn.net/leixiaohua1020/article/details/15811977
  2. http://ffmpeg.org/doxygen/trunk/examples.html

「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。

image.png

相关文章
|
9天前
|
存储 分布式计算 NoSQL
【赵渝强老师】大数据技术的理论基础
本文介绍了大数据平台的核心思想,包括Google的三篇重要论文:Google文件系统(GFS)、MapReduce分布式计算模型和BigTable大表。这些论文奠定了大数据生态圈的技术基础,进而发展出了Hadoop、Spark和Flink等生态系统。文章详细解释了GFS的架构、MapReduce的计算过程以及BigTable的思想和HBase的实现。
|
2月前
|
测试技术
探索软件测试的奥秘:从基础理论到实践应用
【9月更文挑战第28天】在数字化时代,软件已成为我们生活中不可或缺的一部分。然而,随着软件复杂性的增加,确保其质量和可靠性变得日益重要。本文将带你深入了解软件测试的核心概念、方法论以及如何在实际工作中运用这些知识来提升软件质量。无论你是软件测试新手还是希望深化理解,这篇文章都将为你提供宝贵的洞见和实用技巧。
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
探索数据科学:从理论到实践的技术感悟
【5月更文挑战第31天】本文通过作者在数据科学领域的学习与实践经历,探讨了理论与实际应用之间的桥梁。文章首先回顾了数据科学的基础知识和核心概念,然后通过案例分析展示了如何将抽象的理论知识转化为解决实际问题的工具。最后,作者分享了个人对数据科学未来发展的看法和建议,旨在为同行提供参考和启发。
|
5月前
|
缓存 分布式计算 架构师
探索软件架构设计的艺术与科学
【6月更文挑战第11天】在软件开发的宏伟舞台上,架构设计是导演,它精心编排着每一个功能模块的出场顺序和表演方式。本文将带您深入软件架构的世界,从艺术的角度感受其美学,从科学的视角理解其逻辑,揭示如何通过架构设计提升软件的性能、可维护性和用户体验。
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
软考之专家系统的概念
软考之专家系统的概念
84 0
|
机器学习/深度学习 人工智能 算法
王怀民院士:图灵计算模型仍是最深刻的理论基础,是新科学基础的基点
王怀民院士:图灵计算模型仍是最深刻的理论基础,是新科学基础的基点
137 0
|
机器学习/深度学习 人工智能
大模型铺天盖地出现后,计算机科学终成「自然科学」
大模型铺天盖地出现后,计算机科学终成「自然科学」
|
机器学习/深度学习 人工智能 分布式计算
数据科学、人工智能与机器学习傻傻分不清楚,看这篇就够了
数据科学、人工智能与机器学习傻傻分不清楚,看这篇就够了
376 1
数据科学、人工智能与机器学习傻傻分不清楚,看这篇就够了
|
人工智能 编解码 安全
AGI:走向通用人工智能的【生命学&哲学&科学】第二篇——思维、生命科学、客观世界
AGI:走向通用人工智能的【生命学&哲学&科学】第二篇——思维、生命科学、客观世界
AGI:走向通用人工智能的【生命学&哲学&科学】第二篇——思维、生命科学、客观世界
|
机器学习/深度学习 人工智能 算法
当博弈论遇上机器学习:一文读懂相关理论
博弈论和机器学习能擦出怎样的火花?本文作者王子嘉通过回顾总结近年来博弈论和机器学习领域的交叉研究工作,为读者展示了这一领域最新的研究图景。
1145 0
当博弈论遇上机器学习:一文读懂相关理论