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 个月过去了.现在总算弄出个作品来了,结个贴吧.唉,天资愚钝 ...
 
随机推荐
- OA-APP增加空间
			
第一步:虚拟机增加一块200G的硬盘,使用fdisk -l 命令可以看到增加的硬盘(centos6可能需要重启系统) 第二步:然后对 /dev/sdc进行分区 第三步:创建一个分区 第四步:重新查看磁 ...
 - 吴裕雄--天生自然python学习笔记:python OpenCV 基本绘图
			
Open CV 提供了绘制直线.圆形.矩形等基本绘 图的功能 . Open CV 画直线的语法为: 在画布上添加文字的语法为 : 用 Open CV 绘制基本图形 以 OpenCV 基本绘图绘制各种图 ...
 - 收集到的技术相关网址——python
			
1.Python中常用数据库访问接口模块 专用数据库连接模块——MySQL.SQLite.PostgreSQL.Oracle.IBM DB2.Infomix.Interbase.Sybase.SQL ...
 - python后端面试第四部分:django框架--长期维护
			
1 列举Http请求中常见的请求方式 https://www.cnblogs.com/andy0816/p/12360866.html2 谈谈你对HTTP协议的认识.1.1 长连接 https:/ ...
 - android翻译应用、地图轨迹、视频广告、React Native知乎日报、网络请求框架等源码
			
Android精选源码 android实现高德地图轨迹效果源码 使用React Native(Android和iOS)实现的 知乎日报效果源码 一款整合百度翻译api跟有道翻译api的翻译君 RxEa ...
 - FPGA开平方的实现
			
3种方法: 1.JPL近似的实现方法 `timescale 1ns / 1ps )( clk, syn_rst, dataa, datab, ampout); input clk; :] dataa; ...
 - python3下scrapy爬虫(第二卷:初步抓取网页内容之直接抓取网页)
			
上一卷中介绍了安装过程,现在我们开始使用这个神奇的框架 跟很多博主一样我也先选择一个非常好爬取的网站作为最初案例,那么我先用屌丝必备网站http://www.shaimn.com/xinggan/作为 ...
 - Python练习 ——名片管理系统(增添,删除,查找,修改)
			
需要注意的一个地方是,如果你用的版本是3.6的,那么下面的用到的所有从外界接收信息所用到的input()用input()就行了,如果是2.7版本,那么如果接收的是字符串要用raw_input()(将接 ...
 - web虚拟主机的三种配置方法
 - vue子组件使用自定义事件向父组件传递数据
			
使用v-on绑定自定义事件可以让子组件向父组件传递数据,用到了this.$emit(‘自定义的事件名称’,传递给父组件的数据) <!DOCTYPE html> <html lang= ...