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 绘制的更多相关文章

  1. 将ADS1.2的工程迁移到KEIL上-基于2440

    裸机程序应该是一个很好的选择 1. 不拷贝启动代码,因为我们用自己的启动代码 2.       建立工程目录分级,建立完成后如下所示 拷贝相应代码到对应目录中 Option中拷贝 Core中拷贝 建立 ...

  2. 微信小程序实战篇:基于wxcharts.js绘制移动报表

    前言 微信小程序图表插件(wx-charts)是基于canvas绘制,体积小巧,支持图表类型饼图.线图.柱状图 .区域图等图表图形绘制,目前wx-charts是微信小程序图表插件中比较强大好使的一个. ...

  3. OpenCV 入门示例之三:AVI 视频播放控制

    前言 在前文中给出了一个非常简短的视频播放程序,但它没有实现常规视频播放器中的播放滚动条功能,本文对此视频播放器程序加以改进,实现此功能. 滚动条的实现思路 滚动条的功能实质上就是从一帧跳跃到另外一帧 ...

  4. 基于 HTML5 Canvas 绘制的电信网络拓扑图

    电信网结构(telecommunication network structure)是指电信网各种网路单元按技术要求和经济原则进行组合配置的组合逻辑和配置形式.组合逻辑描述网路功能的体系结构,配置形式 ...

  5. 基于canvas线条绘制图形

    原理说明 绘制一个正方形,正放心每条边等比例均分,具体分配多少根据自身情况而定,按照最上边边顺时针方向依次绘制线条,相邻两条边上的点依次连接,知道所有的点全部连接完便绘制完成. 示例效果图图如下 具体 ...

  6. Arm环境搭建-基于博创科技(CentOS7.0系统安装篇1)

    CentOs 7.0安装和基本命令篇        目的:学习基本的linux命令,熟悉linux操作系统,安装linux.(安装过5.5,6.3并不是安装一帆风顺的,多次安装,有个10次多吧,基本会 ...

  7. BootLoader--改进(基于2440)

    BootLoader--改进 之前编写的Bootloader启动内核时间使用差不多7秒钟的时间,大多都是用在CPU将内核从Nandflash读取到SDRam中,故首先想到的方法是改变CPU时钟频率. ...

  8. arm开发板6410/2440上mjpg-streamer网络视频服务器移植

    摄像头移植 一.环境 主机环境 :ubuntu 10.10         目标板 :FS-S5PC100 主机工具链 :gcc-4.4.5         交叉工具链 :arm-unknown-li ...

  9. 用 Delphi 7 实现基于 FFMS2 的视频转 GIF 工具 [原创]

    儿子经常要把自拍的视频(ts格式)转成表情包,下载了几个工具都不大好用,更多的还要收费.那就想自己写一个吧,没想到这一下断断续续地,居然 3 个月过去了.现在总算弄出个作品来了,结个贴吧.唉,天资愚钝 ...

随机推荐

  1. django框架进阶-使用缓存-长期维护

    ###############   django-缓存页面    ############### ########################################### # 全站缓存, ...

  2. springboot学习笔记:3.配置文件使用概要

    Spring Boot允许外化(externalize)你的配置,这样你能够在不同的环境下使用相同的代码. 你可以使用properties文件,YAML文件,环境变量和命令行参数来外化配置.使用@Va ...

  3. IIC通信控制的AD5259------在调试过程中遇到的奇葩问题

    首先说一下的遇到的问题: 1.AD5259按照SCL是100KHz的情况下,可以正常接收上位机的数据,但是一段时间后,就不能正确的按照时序来走了 原因在于AD5259在接收到上位机的数据后需要一定的响 ...

  4. [LC] 252. Meeting Rooms

    Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si ...

  5. 接口测试时返回的响应报json错误

    问题: 测试接口时,传入错误数据,最开始对于错误数据也返回了json数据的响应:后来传入错误数据,接口突然就没有返回json数据,通过在出错的代码之前进行打印,发现接口报500了 检查错误的方法1:在 ...

  6. JavaScript学习总结(四)function函数部分

    转自:http://segmentfault.com/a/1190000000660786 概念 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. js 支持两种函数:一类是语言内部的函数 ...

  7. python3下应用pymysql(第三卷)(数据自增-用于爬虫)

    在上卷中我说出两种方法进行数据去重自增,第一种就是在数据库的字段中设置唯一字段,二是在脚本语言中设置重复判断再添加(建议,二者同时使用,真正开发中就会用到) 话不多说先上代码 第一步: 确定那一字段的 ...

  8. 接口测试-chap5-使用正则表达式提取响应数据

    1.导入相关库 import re 2.re.findall(r"前(.+?)后", 匹配源) 3.前:表示要匹配的文本左边的内容 4.后:表示要匹配的文本右边的内容 5.它的返回 ...

  9. 吴裕雄--天生自然python学习笔记:Beautiful Soup 4.2.0模块

    Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时 ...

  10. c++入门资源

    http://www.cnblogs.com/jackyyang7/articles/2479482.htmlvs2010编译器的使用 https://www.cnblogs.com/me115/ar ...