• 正文
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

使用i.MXRT1060設(shè)計(jì)一個(gè)MP4播放器(FFmpeg解碼庫)

2020/11/04
94
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是基于 i.MXRT1062 的 MP4 播放器參考設(shè)計(jì)。

i.MXRT1062 是恩智浦 i.MXRT 四位數(shù)系列的中端型號,外設(shè)搭配上很均衡,輔以 600MHz 主頻的炸裂性能。

為了讓大家見識到 i.MXRT1062 的能力,特給大家分享一個(gè)基于 i.MXRT1062-EVK 開發(fā)板的 MP4 播放器設(shè)計(jì),mp4 源文件從 SD 卡獲取,使用 FFmpeg 庫進(jìn)行軟解碼,最后將解碼出的視頻(yuv)數(shù)據(jù)經(jīng) PXP 轉(zhuǎn)換后通過 LCD 屏顯示,音頻(pcm)數(shù)據(jù)通過板載 Codec(WM8960)連耳機(jī)進(jìn)行播放。

功能模塊簡圖:

這個(gè)設(shè)計(jì)其實(shí)已經(jīng)斷斷續(xù)續(xù)開發(fā)優(yōu)化一年多了,核心的 mp4 文件解碼與播放已經(jīng)全部搞定了。設(shè)計(jì)主要參考了 SDK 包里的三個(gè)例程:從 SD 卡里讀取音頻源后配置 Codec 使用 SAIDMA 進(jìn)行數(shù)據(jù)的傳輸(sai)、配置 eLCDIF 模塊驅(qū)動 LCD 屏顯示、配置 PXP 模塊進(jìn)行圖片色彩空間轉(zhuǎn)換(yuv2rgb)與縮放。



SDKboardsevkmimxrt1060demo_appssai
SDKboardsevkmimxrt1060driver_exampleselcdifrgb
SDKboardsevkmimxrt1060driver_examplespxpscale

此外,核心 mp4 解碼功能是使用了大名鼎鼎的 FFmpeg 庫,庫的裁剪頗費(fèi)周折,因最新庫版本 4.x 與之前版本差異較大,而 3.x 版本資料較多,故我們選擇的是經(jīng)典的 3.0.11 版本。關(guān)于 FFmpeg 庫的學(xué)習(xí),從雷霄驊的 CSDN 博文中收獲頗多,感謝雷神!

全部硬件清單:

1. MIMXRT1060-EVK (Rev.A)
2. LCD 屏(適配了三款分辨率 480x272、800x600、1280x800),標(biāo)配 RK043FN02H-CT
3. SD 卡
4. 耳機(jī)(3.5mm 接口),或音箱
5. USB 線(連主機(jī)供電)

實(shí)物連接圖(搭配 1280x800 的屏):

代碼是開源的,會持續(xù)添加功能(考慮加入 GUI,實(shí)現(xiàn)一般播放器的選片、暫停、快進(jìn)等控制功能),歡迎感興趣的小伙伴加入一起開發(fā)!

  • 代碼倉庫:https://github.com/JayHeng/RT-Mp4Player 工程路徑:RT-Mp4Playerboardsevkmimxrt1060demo_appssd_mp4

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

碩士畢業(yè)于蘇州大學(xué)電子信息學(xué)院,目前就職于恩智浦(NXP)半導(dǎo)體MCU系統(tǒng)部門,擔(dān)任嵌入式系統(tǒng)應(yīng)用工程師。痞子衡會定期分享嵌入式相關(guān)文章