为了让大家见识到i.MXRT1062的能力,特给大家分享一个基于i.MXRT1062-EVK开发板的MP4播放器设计,mp4源文件从SD卡获取,使用FFmpeg库进行软解码,最后将解码出的视频(yuv)数据经PXP转换后通过LCD屏显示,音频(pcm)数据通过板载Codec(WM8960)连耳机进行播放。


  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是基于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\saiSDK\boards\evkmimxrt1060\driver_examples\elcdif\rgbSDK\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-CT3. SD卡4. 耳机(3.5mm接口),或音箱5. USB线(连主机供电)

  实物连接图(搭配1280x800的屏):

  代码是开源的,会持续添加功能(考虑加入GUI,实现一般播放器的选片、暂停、快进等控制功能),欢迎感兴趣的小伙伴加入一起开发!

  • 代码仓库: https://github.com/JayHeng/RT-Mp4Player
  • 工程路径: \RT-Mp4Player\boards\evkmimxrt1060\demo_apps\sd_mp4


©著作权归作者所有:来自51CTO博客作者痞子衡V的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 痞子衡嵌入式:深入i.MXRT1050系列ROM中串行NOR Flash启动初始化流
  2. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(8.A)- SEMC NAND
  3. 痞子衡嵌入式:了解i.MXRT1060系列ROM中串行NOR Flash启动初始化流
  4. 痞子衡嵌入式:记录i.MXRT1060驱动LCD屏显示横向渐变色有亮点问题
  5. 痞子衡嵌入式:恩智浦机器视觉模块OpenMV-RT那些事(1)- 初体验
  6. 痞子衡嵌入式:飞思卡尔Kinetis系列MCU启动那些事(10)- KBOOT特性(可
  7. 痞子衡嵌入式:如果i.MX RT是一匹悍马,征服它时别忘了用马镫MCUBoot
  8. 痞子衡嵌入式:超级好用的可视化PyQt GUI构建工具(Qt Designer)
  9. 痞子衡嵌入式:飞思卡尔Kinetis开发板OpenSDA调试器那些事(上)- 背景

随机推荐

  1. Sqoop_详细总结 使用Sqoop将HDFS/Hive/HB
  2. 不知道有人在mysql5.0上 针对10亿条数据
  3. mysql中的隐式提交
  4. MYSQL在触发器中怎样实现‘根据条件来确
  5. MySQL“在建立到SQL Server的连接时发生
  6. mysql has gone away 的问题解决 --- ODB
  7. PHP MYSQL无法在While或For循环中获取数
  8. MySQL的ibdata1文件占用过大瘦身
  9. 数据库keepalived部署文档
  10. 为什么我们的查询卡在MySql中的“写入网