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 绘制的更多相关文章
- 将ADS1.2的工程迁移到KEIL上-基于2440
裸机程序应该是一个很好的选择 1. 不拷贝启动代码,因为我们用自己的启动代码 2. 建立工程目录分级,建立完成后如下所示 拷贝相应代码到对应目录中 Option中拷贝 Core中拷贝 建立 ...
- 微信小程序实战篇:基于wxcharts.js绘制移动报表
前言 微信小程序图表插件(wx-charts)是基于canvas绘制,体积小巧,支持图表类型饼图.线图.柱状图 .区域图等图表图形绘制,目前wx-charts是微信小程序图表插件中比较强大好使的一个. ...
- OpenCV 入门示例之三:AVI 视频播放控制
前言 在前文中给出了一个非常简短的视频播放程序,但它没有实现常规视频播放器中的播放滚动条功能,本文对此视频播放器程序加以改进,实现此功能. 滚动条的实现思路 滚动条的功能实质上就是从一帧跳跃到另外一帧 ...
- 基于 HTML5 Canvas 绘制的电信网络拓扑图
电信网结构(telecommunication network structure)是指电信网各种网路单元按技术要求和经济原则进行组合配置的组合逻辑和配置形式.组合逻辑描述网路功能的体系结构,配置形式 ...
- 基于canvas线条绘制图形
原理说明 绘制一个正方形,正放心每条边等比例均分,具体分配多少根据自身情况而定,按照最上边边顺时针方向依次绘制线条,相邻两条边上的点依次连接,知道所有的点全部连接完便绘制完成. 示例效果图图如下 具体 ...
- Arm环境搭建-基于博创科技(CentOS7.0系统安装篇1)
CentOs 7.0安装和基本命令篇 目的:学习基本的linux命令,熟悉linux操作系统,安装linux.(安装过5.5,6.3并不是安装一帆风顺的,多次安装,有个10次多吧,基本会 ...
- BootLoader--改进(基于2440)
BootLoader--改进 之前编写的Bootloader启动内核时间使用差不多7秒钟的时间,大多都是用在CPU将内核从Nandflash读取到SDRam中,故首先想到的方法是改变CPU时钟频率. ...
- arm开发板6410/2440上mjpg-streamer网络视频服务器移植
摄像头移植 一.环境 主机环境 :ubuntu 10.10 目标板 :FS-S5PC100 主机工具链 :gcc-4.4.5 交叉工具链 :arm-unknown-li ...
- 用 Delphi 7 实现基于 FFMS2 的视频转 GIF 工具 [原创]
儿子经常要把自拍的视频(ts格式)转成表情包,下载了几个工具都不大好用,更多的还要收费.那就想自己写一个吧,没想到这一下断断续续地,居然 3 个月过去了.现在总算弄出个作品来了,结个贴吧.唉,天资愚钝 ...
随机推荐
- node-sass 安装失败的各种坑
开始的时候引入别人的一个项目 npm install npm run dev 启动项目 报错 > node build/dev-server.js Listening at http://loc ...
- Linux 系统优化参数总结
系统优化参数总结: net.ipv4.tcp_syncookies = 表示开启SYN Cookies.当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击 net.ipv4.t ...
- 【一定要记得填坑】LG_3822_[NOI2017]整数
挺好的一道题,由于快noip了,所以打算noip之后再添题解的坑.
- python djangjo 文件上传
视图: request.GET 获取数据 request.POST 提交数据 request.FILES 获取文件用 checkbox 等多选的内容 request.POST.getlist ...
- python 组件
组件:JQueryUI.EasyUI.BootStrap 每一个框架都要学习它们的规则.
- Eclipse添加comment
1.给新增的Java类,自动生成Comment. 打开Preferences,找到Java-->Code Style -->Code Templates-->Comments--&g ...
- 使用face_recognition进行人脸特征检测
效果图调用face_recognition.face_landmarks()方法即可得到人脸特征点, 返回一个字典, 下图是返回的数据, 包括chin(下巴), left_eye(左眼)等.我画了两种 ...
- javascript学习内容
http协议 犀牛书 MDN js单线程 let只在代码块内有效 es5只有全局作用域 const变量指向的内存地址不得改动,值不能保证不变 全局变量不加var node.js 更改连接到服务器的方式 ...
- 探索Kinect的更多可能——亲历第十九届机器人世界杯RoboCup
作者:微软亚洲研究院资深项目经理 吴国斌 2015年7月19日,第十九届RoboCup机器人世界杯足球赛,在中国合肥隆重开幕.来自全球七十六个国家和地区的一百余支代表队参加了决赛,他们优秀的作品给观众 ...
- SecureCRT语法高亮设置
因为默认情况下,SecureCRT不能显示语法高亮特性,整个界面颜色单一,看起来不爽,也没有效率,所有通过设置一下语法高亮还是很有必要的, 默认字体也看着不是很清晰,还是更改为我比较喜欢的Courie ...