大家好,我是痞子衡,是正經搞技術的痞子,今天痞子衡給大家介紹的是基于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主頁、知乎主頁、微信公眾號 平臺上,
微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦,

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/201704.html
標籤:其他
