天天看點

痞子衡嵌入式:基于恩智浦i.MXRT1060的MP4視訊播放器(RT-Mp4Player)設計

為了讓大家見識到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)連耳機進行播放。

  功能子產品簡圖:

痞子衡嵌入式:基于恩智浦i.MXRT1060的MP4視訊播放器(RT-Mp4Player)設計
  這個設計其實已經斷斷續續開發優化一年多了,核心的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的MP4視訊播放器(RT-Mp4Player)設計
痞子衡嵌入式:基于恩智浦i.MXRT1060的MP4視訊播放器(RT-Mp4Player)設計
痞子衡嵌入式:基于恩智浦i.MXRT1060的MP4視訊播放器(RT-Mp4Player)設計

  衡傑(痞子衡),目前就職于恩智浦MCU系統部門,擔任嵌入式系統應用工程師。

  專欄内所有文章的轉載請注明出處:http://www.cnblogs.com/henjay724/

  與痞子衡進一步交流或咨詢業務合作請發郵件至 [email protected]

  可以關注痞子衡的Github首頁 https://github.com/JayHeng,有很多好玩的嵌入式項目。

  關于專欄文章有任何疑問請直接在部落格下面留言,痞子衡會及時回複免費(劃重點)答疑。

  痞子衡郵箱已被私信擠爆,技術問題不推薦私信,堅持私信請先掃碼付款(5元起步)再發。