ARM AVI 视频播放 基于 2440 freambuffer 绘制

Posted 宁次

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARM AVI 视频播放 基于 2440 freambuffer 绘制相关的知识,希望对你有一定的参考价值。

AVI 文件格式 图解

 

整理:

AVI 是一种容器,里面放什么格式的数据都可以

视频编码:格式可以是 H264, MPEG-4, MJPEG ,因为 MJPEG 比较简单,所以仅支持 MJPEG 的 avi 视频。

音频编码:PCM16, mp3 因为 PCM 编码,文件实在过大,所以仅支持 mp3 编码。

难点:

1, 由于ARM 内存比较小,不能使用 mmap ,不能一次性全部读进 内存。

2,mp3 音频解码,暂不支持。

使用 狸窝全能视频转换器进行格式转换

 

数据块说明

 

movi 中是保存有,视频,音频数据。

00dc 表示是 视频数据,然后是4个字节的长度

全部 avi 文件中只有一个 movi LIST 里面就是数据流,视频流、音频流。

音频编码 PCM 导致文件过大,解码倒是很方便,暂不支持,Mp3 ACC 比较不错,后期添加。

MJPEG 不是 JPEG 图片,但都可以使用 libjpeg 解码。

完整代码,可以关注置顶的 github 。

以上是关于ARM AVI 视频播放 基于 2440 freambuffer 绘制的主要内容,如果未能解决你的问题,请参考以下文章

HTML 如何让几个视频连续并循环播放,给段代码

.avi 文件视频无法在 MPMoviePlayerController ios 播放器中播放

[Mini2440 - 008] 安装 arm-linux-gcc 交叉编译器

OpenCV中如何播放avi文件的音频

基于KEIL4开发ARM9(S3C2440)的裸机程序

LVGL笔记-使用《avilib》库播放avi视频(lvgl在windows模拟运行)