数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 24|回复: 0

《DNESP32S3使用指南-IDF版_V1.6》第四十三章 视频播放器实验

[复制链接]
发表于 9 小时前 | 显示全部楼层 |阅读模式
第四十三章 视频播放器实验

DNESP32S3的处理能力,不仅可以软解码音频,还可以用来播放视频!本章,我们将使用DNESP32S3开发板来播放AVI视频,本章我们将实现一个简单的视频播放器。
本章分为如下几个小节:
43.1 ES8388录音简介
43.2 硬件设计
43.3 程序设计
43.4 下载验证


43.1 AVI&libjpeg简介
本章,我们将使用libjepg(由IJG提供),来实现MJPEG编码的AVI格式视频播放,我们先来简单介绍一下AVI和libjpeg。
43.1.1 AVI简介
AVI是音频视频交错(Audio Video Interleaved)的英文缩写,它是微软开发的一种符合RIFF文件规范的数字音频与视频文件格式,原先用于Microsoft Video for Windows (简称VFW)环境,现在已被多数操作系统直接支持。
AVI格式允许视频和音频交错在一起同步播放,支持256色和RLE压缩,但AVI文件并未限定压缩标准,AVI仅仅是一个容器,用不同压缩算法生成的AVI文件,必须使用相应的解压缩算法才能播放出来。比如本章,我们使用的AVI,其音频数据采用16位线性PCM格式(未压缩),而视频数据,则采用MJPEG编码方式。
在介绍AVI文件前,我们要先来看看RIFF文件结构。AVI文件采用的是RIFF文件结构方式,RIFF(Resource Interchange File Format,资源互换文件格式)是微软定义的一种用于管理WINDOWS环境中多媒体数据的文件格式,波形音频WAVE,MIDI和数字视频AVI都采用这种格式存储。构造RIFF文件的基本单元叫做数据块(Chunk),每个数据块包含3个部分:
l 4字节的数据块标记(或者叫做数据块的ID)
l 数据块的大小
l 数据
整个RIFF文件可以看成一个数据块,其数据块ID为RIFF,称为RIFF块。一个RIFF文件中只允许存在一个RIFF块。RIFF块中包含一系列的子块,其中有一种子块的ID为"LIST",称为LIST块,LIST块中可以再包含一系列的子块,但除了LIST块外的其他所有的子块都不能再包含子块。
RIFF和LIST块分别比普通的数据块多一个被称为形式类型(Form Type)和列表类型(List Type)的数据域,其组成如下:
l 4字节的数据块标记(Chunk ID)
l 数据块的大小
l 4字节的形式类型或者列表类型(ID)
l 数据
下面我们看看AVI文件的结构。AVI文件是目前使用的最复杂的RIFF文件,它能同时存储同步表现的音频视频数据。AVI的RIFF块的形式类型(Form Type)是AVI,它一般包含3个子块,如下所述:
l 信息块,一个ID为"hdrl"的LIST块,定义AVI文件的数据格式。
l 数据块,一个ID为 "movi"的LIST块,包含AVI的音视频序列数据。
l 索引块,ID为"idxl"的子块,定义"movi"LIST块的索引数据,是可选块(不一定有)。
到声音,看不到图像)。
以下内容请下载PDF查看:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-8-25 18:37 , Processed in 0.124800 second(s), 13 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表