原创 在 NXP iMX8 上进行 4K 视频播放测试

2019-10-11 11:37 3452 20 2 分类: MCU/ 嵌入式

By Toradex 胡珊逢

1). 简介

高清多媒体,甚至是 4K 视频不仅在消费领域有着旺盛的需求,在行业领域同样也获得广泛的关注。NXP 最新的IMX8 处理器不仅配有强劲的 CPUGPU,还对多媒体应用提供了完善的解决方案,如硬件解码支持H.265 HEVC Main Profile 2160p60 Level 5.1。下面我们将介绍如何从Yocto开始构建包含Gstreamer BSP、使用Toradex Easy Installer 安装系统、配置LVDS显示和播放多媒体文件。

 

本文演示所使用的ARM平台来自Toradex基于NXP iMX8QM SoC平台的Apalis iMX8QM ARM核心板。

 

 

2). Yocto/OpenEmbedded编译

Toradex Linux BSP V3.0 开始发生了很多的变化,其中最主要的就是采用基于 Poky 构建,默认的 BSP 只提供最小化的软件支持, 为此我们撰写了一篇博文做了详细的说明。用户需要自行构建合适其项目需求的 BSP,同时也保持BSP精简。首先,可以参考该网页搭建基础的 Yocto/OpenEmbedded 环境。然后修改 build/conf/local.conf文件,在结尾添加以下内容:

----------------------------------

ACCEPT_FSL_EULA = "1"
IMAGE_INSTALL_append = " packagegroup-fsl-gstreamer1.0 packagegroup-fsl-gstreamer1.0-full imx-gst1.0-plugin"

----------------------------------

保存后使用 MACHINE=apalis-imx8 bitbake console-tdx-image 命令来生成我们需要的 BSP。根据网络和电脑配置情况,首次编译需要数个小时之久。编译完成后在build/deploy/images/apalis-imx8 目录下会生成 Apalis-iMX8_Console-Image-Tezi_3.0bX-XXXXXXXX.ta r文件。

 

 

3). 更新BSP

Toradex Easy Installer 为用户提供在图形化界面中更新 BSP 的方法。根据该文档配置好 PC 和开发板之间的正确连线。然后从这里下载适用于 Apalis iMX8QM Toradex Easy Installer 文件。解压后,待 Apalis iMX8QM 进入恢复模式后执行恢复脚本。

----------------------------------

sudo recovery-linux.sh

----------------------------------

Apalis-iMX8_Console-Image-Tezi_3.0bX-XXXXXXXX.tar 解压后复制到 U 盘或者 SD 卡,并插入到底板。在 Toradex Easy Installer 界面中点击该 BSP 即可完成安装。最后选择重启模块。

 

 

4). LVDS显示器配置

Apalis iMX8QM上连接 1080p HDMI 显示器可以直接看到 Linux 系统。在这里我们还将介绍如何配置 LVDS 接口显示器。目前还不能直接在 U-Boot 中通过 cmdline 的方式进行显示配置,用户需要修改 device tree 文件 fsl-imx8qm-apalis.dts,将 lvds1_panel compatible 设置适合屏幕的配置。LVDS显示配置是直接编译在内核中,用户可以从 drivers/gpu/drm/panel 中选择现成的配置,否则需要自行添加适合屏幕参数的配置文件。kyo_tcg121xglp_timing 在引脚和色彩配置都符合我们现有的三菱AA104XD02 显示器,因此将 lvds1_panel 配置为 kyo,tcg121xglp。然后重新编译 device tree

----------------------------------

make dtbs

----------------------------------

用生成的 fsl-imx8qm-apalis.dtb 替换核心板上 /media/mmcblk0p1/ 目录下的同名文件,重启生效。

----------------------------------

root@apalis-imx8:~# sync
root@apalis-imx8:~# reoobt

----------------------------------

 

 

5). 媒体播放

BSP 中已经集成了 Gstreamer 工具和 IMX 插件,用户可以直接调用。显示分别是播放 H.265/H.264 编码分辨率为 1080p/2K/4K 的本地文件。

./ 1080p h.264

----------------------------------

gst-launch-1.0 filesrc location=jellyfish-20-mbps-hd-h264.mkv ! video/x-matroska ! aiurdemux ! \
queue ! h264parse ! v4l2h264dec ! imxvideoconvert_g2d ! queue ! waylandsink

----------------------------------

./ 1080p h.265

----------------------------------

gst-launch-1.0 filesrc location=Elecard_about_Tomsk_part3_HEVC_1080p.mp4 ! video/quicktime ! \
aiurdemux ! queue ! h265parse ! v4l2h265dec ! imxvideoconvert_g2d ! queue ! waylandsink

----------------------------------

./ 2k h.264

----------------------------------

gst-launch-1.0 filesrc location=Gravity-2K.mp4 ! video/quicktime ! aiurdemux ! queue ! h264parse ! \
v4l2h264dec ! imxvideoconvert_g2d ! queue ! waylandsink

----------------------------------

./ 4k h.265

----------------------------------

gst-launch-1.0 filesrc location=Elecard_about_Tomsk_part3_HEVC_UHD.mp4 ! video/quicktime ! aiurdemux ! \
queue ! h265parse ! v4l2h265dec ! imxvideoconvert_g2d ! queue ! waylandsink

----------------------------------

除了本地播放外,RTSP网络播放也是常用的功能。RTSP服务器可以有多种实现方式,如 VLC 就可以支持流推送。Gst 也提供现成的工具实现 RTSP 服务,如gst-rtsp-server。在下载的时候最好选用和 iMX8 BSP Gstreamer 一致的版本。下载后执行 autogen.sh,然后直接 make编译即可。在 example 目录中会生成一个名为 test-uri 的可执行文件。用下面命令推送视频流。

----------------------------------

./test-uri file:///opt/jellyfish-20-mbps-hd-h264.mkv

PC 8554 端口会开启RTSP服务。

----------------------------------

rtsp://127.0.0.1:8554/test

----------------------------------

IMX8上运行下面命令

----------------------------------

gst-launch-1.0 rtspsrc location=rtsp://ip_of_pc:8554/test name=source1 ! queue ! rtph264depay ! \
queue ! h264parse ! v4l2h264dec ! imxvideoconvert_g2d ! queue ! waylandsink

----------------------------------

 

 

6). 总结

IMX8QM 可以轻松的实现对视频文件的硬件编解码,而不占用过多的 CPU 资源,从而保证用户应用顺畅运行。除了视频播放,我们接下来还会介绍 IMX8 更多的应用。

作者: hai.qin_651820742, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-1864768.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论1条评论)

登录后参与讨论

curton 2019-10-11 22:37

学习
相关推荐阅读
hai.qin_651820742 2024-11-29 15:29
基于 NXP iMX8QM 运行 QNX
By Toradex胡珊逢简介嵌入式领域的部分应用对安全、可靠、实时性有切实的需求,在诸多实现该需求的方案中,QNX 是经行业验证的选择。在 QNX SDP 8.0 上 BlackBerry 推出了 ...
hai.qin_651820742 2024-11-12 10:33
Yocto Linux BSP7 新版本介绍
By Toradex胡珊逢简介Toradex 已经发布了适用于 Verdin/Apalis/Colibri 模块系列的 Linux BSP 7 版本,Yocto Project 升级到 scarthg...
hai.qin_651820742 2024-10-30 10:56
基于 NXP iMX8MP 平台简单测试 PySide6 应用
By Toradex秦海1). 简介Python binding 的 Qt GUI 库一直以来有两种,最初是由 Riverbank Computing 公司在 2000 年初发布,基于 Qt4 版本推...
hai.qin_651820742 2024-10-11 15:15
Verdin AM62使用CODESYS
By Toradex胡珊逢简介CODESYS 是基于 IEC 61131-3 的 PLC 开发工具,在工业控制、交通等领域中有着广泛的应用。文章将介绍如何在 Toradex 采用 TI AM62 So...
hai.qin_651820742 2024-09-18 18:07
Verdin AM62 引脚复用配置
By Toradex胡珊逢简介Verdin AM62 是 Toradex 基于 TI AM623/AM625 SoC 的 Arm 计算机模块。它最多提供 4 个 A53 和 1 个 M4F 处理器。这...
hai.qin_651820742 2024-09-18 17:48
TI AM62X Secure Boot 流程简述
By Toradex秦海1). 简介嵌入式设备对于网络安全的要求越来越高,而 Secure boot就是其中重要的一部分。 TI AM62X 处理器基于行业标准 X.509&nbs...
我要评论
1
20
关闭 站长推荐上一条 /2 下一条