加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

使用i.MXRT1060设计一个MP4播放器(FFmpeg解码库)

2020/11/04
127
阅读需 4 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是基于 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 使用 SAIDMA 进行数据的传输(sai)、配置 eLCDIF 模块驱动 LCD 屏显示、配置 PXP 模块进行图片色彩空间转换(yuv2rgb)与缩放。



SDKboardsevkmimxrt1060demo_appssai
SDKboardsevkmimxrt1060driver_exampleselcdifrgb
SDKboardsevkmimxrt1060driver_examplespxpscale

此外,核心 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-Mp4Playerboardsevkmimxrt1060demo_appssd_mp4

相关推荐

电子产业图谱

硕士毕业于苏州大学电子信息学院,目前就职于恩智浦(NXP)半导体MCU系统部门,担任嵌入式系统应用工程师。痞子衡会定期分享嵌入式相关文章