DirectShow过滤器开发-写AVI视频文件过滤器-过滤器开发信息

本文介绍的方法完全从AVI文件结构入手,写RIFF文件头(12字节),创建hdrl_LIST,包括avih和1个视频strl_LIST,1个音频strl_LIST;在视频音频strl_LIST中各创建1个indx索引,indx索引中每个条目指向一个索引块,视频索引块条目指向1个视频帧的存储位置,音频索引块条目指向1个音频数据块的存储位置。没有创建idx1索引。视频音频数据都存储在RIFF_movi_LIST和AVIX_movi_LIST中,每写入一次,创建一个索引块条目,条目报告数据的位置和大小。包括索引块也存储在RIFF_movi_LIST和AVIX_movi_LIST中;每创建一个索引块,就增加一个indx索引条目,条目报告索引块的位置,大小和音频或视频的长度;视频长度就是帧数量,PCM音频长度是音频帧的数量,MP3长度直接使用数据的字节大小。
AVI文件没有限制视频音频的编码方式。本过滤器没有限制视频编码方式,但音频编码方式限制为MP3,PCM,ALAW。
下面是使用本过滤器创建的1个AVI文件的结构图片:
在这里插入图片描述

上一篇:蓝牙BLE开发——iOS 每次写入数据超过节报错?


下一篇:【论文笔记】Wings: Learning Multimodal LLMs without Text-only Forgetting-工作