痞子衡嵌入式:基于恩智浦i.MXRT1060的MP4视频播放器(RT-Mp4Player)设计
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是基于i.MXRT1062的MP4播放器参考设计。
i.MXRT1062是恩智浦i.MXRT四位数系列的中端型号,外设搭配上很均衡,辅以600MHz主频的炸裂性能。
为了让大家见识到i.MXRT1062的能力,特给大家分享一个基于i.MXRT1062-EVK开发板的MP4播放器设计,mp4源文件从SD卡获取,使用FFmpeg库进行软解码,最后将解码出的视频(yuv)数据经PXP转换后通过LCD屏显示,音频(pcm)数据通过板载Codec(WM8960)连耳机进行播放。
功能模块简图:
这个设计其实已经断断续续开发优化一年多了,核心的mp4文件解码与播放已经全部搞定了。设计主要参考了SDK包里的三个例程:从SD卡里读取音频源后配置Codec使用SAI和DMA进行数据的传输(sai)、配置eLCDIF模块驱动LCD屏显示、配置PXP模块进行图片色彩空间转换(yuv2rgb)与缩放。
SDK\boards\evkmimxrt1060\demo_apps\sai
SDK\boards\evkmimxrt1060\driver_examples\elcdif\rgb
SDK\boards\evkmimxrt1060\driver_examples\pxp\scale
此外,核心mp4解码功能是使用了大名鼎鼎的FFmpeg库,库的裁剪颇费周折,因最新库版本4.x与之前版本差异较大,而3.x版本资料较多,故我们选择的是经典的3.0.11版本。关于FFmpeg库的学习,从雷霄骅的CSDN博文中收获颇多,感谢雷神!
全部硬件清单:
1. MIMXRT1060-EVK (Rev.A)
2. LCD屏(适配了三款分辨率480x272、800x600、1280x800),标配 RK043FN02H-CT
3. SD卡
4. 耳机(3.5mm接口),或音箱
5. USB线(连主机供电)
实物连接图(搭配1280x800的屏):
代码是开源的,会持续添加功能(考虑加入GUI,实现一般播放器的选片、暂停、快进等控制功能),欢迎感兴趣的小伙伴加入一起开发!
- 代码仓库: https://github.com/JayHeng/RT-Mp4Player
- 工程路径: \RT-Mp4Player\boards\evkmimxrt1060\demo_apps\sd_mp4
欢迎订阅
文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

痞子衡嵌入式:基于恩智浦i.MXRT1060的MP4视频播放器(RT-Mp4Player)设计的更多相关文章
- 痞子衡嵌入式:记录i.MXRT1060驱动LCD屏显示横向渐变色有亮点问题解决全过程(提问篇)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1060上LCD横向渐变色显示出亮点问题的分析解决经验. 痞子衡前段时间在支持一个i.MXRT1060客户项目时遇到了LCD ...
- 痞子衡嵌入式:恩智浦MCU安全加密启动一站式工具NXP-MCUBootUtility用户指南
NXP MCU Boot Utility English | 中文 1 软件概览 1.1 介绍 NXP-MCUBootUtility是一个专为NXP MCU安全加密启动而设计的工具,其特性与NXP M ...
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU特性介绍(2)- RT685EVKA性能实测(Dhrystone)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的性能. 在前面的文章 i.MXRTxxx微控制器概览 里,痞子衡给大家简介过恩智浦半导体在2018 ...
- 痞子衡嵌入式:恩智浦机器视觉模块OpenMV-RT那些事(1)- 初体验
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是机器视觉模块OpenMV-RT初体验. 近些年机器视觉应用一直是个很火的方向,想象一下机器如果能长上"眼睛",是不 ...
- 痞子衡嵌入式:恩智浦SDK驱动代码风格检查工具预览版
大家好,我是痞子衡,是正经搞技术的痞子. 接上文 <恩智浦SDK驱动代码风格.模板.检查工具> 继续聊,是的,过去的三天里我花了一些时间做了一个基于 PyQt5 的 GUI 工具,可以帮助 ...
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(11.0)- FlexSPI NOR启动时间(RT1170)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT1170 FlexSPI NOR启动时间. 痞子衡刚刚拿到i.MXRT1170 B0版本的芯片,迫不及待地在上面跑了 ...
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(13.A)- LPSPI NOR启动时间(RT1170)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT1170 1bit SPI NOR恢复启动时间. 本篇是i.MXRT1170启动时间评测第三弹了,前两篇分别给大家评 ...
- 痞子衡嵌入式:利用i.MXRT1060,1010上新增的FlexSPI地址重映射(Remap)功能可安全OTA
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT部分型号上新增的FlexSPI Remap功能. OTA升级设计几乎是每个量产客户都绕不开的话题,产品发布后免不了要做固件( ...
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.3)- 串行NOR Flash下载算法(J-Link工具篇)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是J-Link工具下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行NOR Flash X ...
随机推荐
- 利用new Object方式创建对象
var obj = new Object(); //创建了一个空的对象obj.uname = 'zhangsanfeng';obj.name = 18; //字面量方式创建对象不 ...
- 使用C#创建WebService实例
新增WebService专案 更改服务程式名称 重命名程式名称 Service1.asmx 修改为 TestService.asmx 此时下面的cs代表文件也会跟着修改,但可发现,代码中的类名并没有跟 ...
- django 的跨域配置
1.跨域原理 #1. 首先浏览器安全策略限制js ajax跨域访问服务器 #2. 如果服务器返回的头部信息中有当前域: // 允许 http://localhost:8080 这个网站打开的页面中的j ...
- Restful 风格是什么?
1.1 什么是RESTful 1. REST与技术无关,代表的是一种软件架构风格(REST是Representational State Transfer的简称,中文翻译为"表征状态转移&q ...
- std(标准库)和STL(标准模板库)的关系
C++标准库的内容分为10类: C1.语言支持 C2.输入/输出 C3.诊断 C4.一般工具 C5.字符串 C6.容器 C7.迭代器支持 C8.算法 C9.数值操作 C10.本地化: 下面分类详解: ...
- Spring Cloud系列(四):Eureka源码解析之客户端
一.自动装配 1.根据自动装配原理(详见:Spring Boot系列(二):Spring Boot自动装配原理解析),找到spring-cloud-netflix-eureka-client.jar的 ...
- DOJO dataGrid 单击单元格选中行
onCellClick: lang.hitch(this, function(event){ //单元格单击事件 var grid = dijit.byId("__geodisa_grid& ...
- 069 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 01 综合案例-数组移位-案例需求
069 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 01 综合案例-数组移位-案例需求 本文知识点:综合案例-数组移位-案例需求 说明:因为时间紧张,本人写博客 ...
- Centos7安装MySQL8.0(RPM方式)
人生处处皆学问,工作也是如此!过去不止一次在Linux上安装MySQL,可以说轻车熟路,但是写篇文章总结一下,发现有很多细节值得学习! 安装包选择 为什么用rpm? 在Linux系列上安装软件一般有源 ...
- XML流操作
/// <summary> /// 保存XML为指定格式 /// </summary> /// <param name=& ...