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

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

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

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

相关文章
|
存储 Java
【Java基础】- RMI原理和使用详解
【Java基础】- RMI原理和使用详解
958 0
|
4月前
|
人工智能 前端开发 API
装了Hermes Agent三个月,我终于搞明白前端该怎么选了
本文对比Hermes两大使用方案:Open WebUI(方案A)侧重日常写作、图表渲染与团队共享;Hermes Desktop(方案B)专注Agent深度调教、技能管理与轻量部署。三类真实场景帮你对号入座,选最适合自己的那一套——或两者兼用,各司其职。
418 0
装了Hermes Agent三个月,我终于搞明白前端该怎么选了
|
4月前
|
人工智能 缓存 芯片
TopClaw OpenClaw Mac安装教程,小龙虾AI一键本地部署macOS指南
本文详解Mac用户如何用TopClaw(OpenClaw中文汉化版)3分钟一键部署本地小龙虾AI:零编程门槛、全中文界面、适配Apple/Intel芯片,数据不出设备,隐私安全有保障。小白友好,实测M1 Air流畅运行。
682 1
|
4月前
|
人工智能 自然语言处理 安全
阿里云百炼大模型平台全解析:核心能力、优势与订阅计划详解
阿里云百炼大模型平台是阿里云推出的一站式、全托管大模型开发与应用构建平台,面向企业与个人开发者,提供从模型调用、微调训练到应用部署的全链路服务,是连接云与AI的核心基础设施。平台集成百余款主流大模型,内置完整开发工具链,支持零代码与低代码开发,同时提供灵活计费与企业级安全保障,帮助用户快速落地AI应用。
856 2
|
11月前
|
关系型数据库 MySQL 数据库
什么是事务以及事务的四大特性
事务是数据库操作的基本单元,具备ACID四大特性:原子性、一致性、隔离性、持久性。并发事务可能引发脏读、不可重复读、幻读等问题,数据库通过不同隔离级别(如读已提交、可重复读、串行化)加以控制。MySQL默认采用可重复读级别,在保证数据一致性的同时兼顾性能,避免高隔离级别带来的性能损耗。
|
4月前
|
人工智能
从每天重复做重复工作,到拥有自己的AI助手:普通人构建AI工作系统的实践方法
本文探讨AI大模型时代如何从“工具使用者”升级为“系统构建者”。指出单纯调用AI效果有限,关键在于建立融合大模型、个人知识库、Prompt工程与工作流的AI生产力系统。强调知识沉淀、人机分工与持续迭代,助力普通人将AI转化为长期高效能伙伴。
|
7月前
|
SQL 人工智能 Java
揭秘AI全栈代码生成器的技术内核:从Prompt工程到本地一键部署的架构实战
本文介绍“智码方舟”AI工程化架构:突破“AI写代码”到“可运行系统”的鸿沟。通过多Agent协同、JSON Schema约束生成、DB Schema统一推演、Docker Compose混合部署及云原生调度(阿里云百炼),实现自然语言→完整全栈工程→一键本地启动的闭环,大幅提升AI生成代码的落地效率。
qq强制加好友无需对方同意, 绕过qq验证强制加好友,一键强制聊天工具
这是一款基于QQ的自动化打招呼工具,通过模拟点击和输入实现批量私信功能。软件包含布局设计、事件函数(如点我初始化、点我私信)及循环操作
|
人工智能 算法 异构计算
用“吃火锅”来讲清楚大模型是什么
大语言模型就像一个超级聪明的“火锅AI服务员”,它通过海量数据训练,能根据你的需求推荐菜品、回答问题、甚至陪你聊人生哲学。它有超强的记忆力和灵活的应变能力,能接住各种奇葩问题,还会跟你玩梗互动。虽然偶尔会瞎编答案,但它绝对是个知识型选手。本文用轻松的“火锅局”方式,带你深入了解大语言模型的工作原理和特点。
540 1
|
人工智能 关系型数据库 分布式数据库
2025阿里云PolarDB开发者大会来了!
在数字化浪潮中,AI与数据库的融合正重塑行业格局。2025年2月26日(周三),诚邀您在北京朝阳区嘉瑞文化中心参会,探讨数据技术发展与AI时代的无限可能。线上直播同步进行,欢迎参与!
2025阿里云PolarDB开发者大会来了!

热门文章

最新文章