1. 程式人生 > 實用技巧 >痞子衡嵌入式:基於恩智浦i.MXRT1060的MP4視訊播放器(RT-Mp4Player)設計

痞子衡嵌入式:基於恩智浦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,實現一般播放器的選片、暫停、快進等控制功能),歡迎感興趣的小夥伴加入一起開發!

歡迎訂閱

文章會同時釋出到我的 部落格園主頁CSDN主頁知乎主頁微信公眾號 平臺上。

微信搜尋"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。