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

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

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

最近在研究学习 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

相关文章
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
深入浅出深度学习:从理论到实践的探索之旅
在人工智能的璀璨星空中,深度学习如同一颗耀眼的新星,以其强大的数据处理能力引领着技术革新的浪潮。本文将带您走进深度学习的核心概念,揭示其背后的数学原理,并通过实际案例展示如何应用深度学习模型解决现实世界的问题。无论您是初学者还是有一定基础的开发者,这篇文章都将为您提供宝贵的知识和启发。
55 5
|
4月前
|
测试技术
探索软件测试的奥秘:从基础理论到实践应用
【9月更文挑战第28天】在数字化时代,软件已成为我们生活中不可或缺的一部分。然而,随着软件复杂性的增加,确保其质量和可靠性变得日益重要。本文将带你深入了解软件测试的核心概念、方法论以及如何在实际工作中运用这些知识来提升软件质量。无论你是软件测试新手还是希望深化理解,这篇文章都将为你提供宝贵的洞见和实用技巧。
|
30天前
|
机器学习/深度学习 存储 人工智能
探索深度学习的奥秘:从理论到实践的技术感悟
本文深入探讨了深度学习技术的核心原理、发展历程以及在实际应用中的体验与挑战。不同于常规摘要,本文旨在通过作者个人的技术实践经历,为读者揭示深度学习领域的复杂性与魅力,同时提供一些实用的技术见解和解决策略。
31 0
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
探索数据科学:从理论到实践的技术感悟
【5月更文挑战第31天】本文通过作者在数据科学领域的学习与实践经历,探讨了理论与实际应用之间的桥梁。文章首先回顾了数据科学的基础知识和核心概念,然后通过案例分析展示了如何将抽象的理论知识转化为解决实际问题的工具。最后,作者分享了个人对数据科学未来发展的看法和建议,旨在为同行提供参考和启发。
|
3月前
|
人工智能 前端开发 数据挖掘
技术探索中的思考与启示
在技术的海洋中,我们常常被复杂的代码和繁琐的流程所困扰。然而,正是这些挑战让我们不断成长,逐渐领悟到编程背后的哲理。本文将分享我的技术感悟,探讨如何通过编程实现自我价值,并从中获得人生的启发。
37 3
|
3月前
|
机器学习/深度学习 算法 自动驾驶
探索机器学习:从理论到实践的旅程
【8月更文挑战第62天】本文通过深入浅出的方式,带领读者走进机器学习的世界。首先介绍了机器学习的基本概念,然后通过一个简单的Python代码示例,展示了如何实现一个基本的线性回归模型。最后,探讨了机器学习在现实生活中的应用,以及未来的发展趋势。本文旨在帮助初学者理解机器学习的基本理念,并激发他们进一步探索这一领域的兴趣。
|
定位技术
技术人修炼之道阅读笔记(七)系统性思维方法
技术人修炼之道阅读笔记(七)系统性思维方法
120 0
技术人修炼之道阅读笔记(八)归纳法思维
技术人修炼之道阅读笔记(八)归纳法思维
技术人修炼之道阅读笔记(九)揪头发思维
技术人修炼之道阅读笔记(九)揪头发思维
|
机器学习/深度学习 人工智能 算法
王怀民院士:图灵计算模型仍是最深刻的理论基础,是新科学基础的基点
王怀民院士:图灵计算模型仍是最深刻的理论基础,是新科学基础的基点
145 0