"); //-->
By Toradex 胡珊逢
1). 简介
高清多媒体,甚至是 4K 视频不仅在消费领域有着旺盛的需求,在行业领域同样也获得广泛的关注。NXP 最新的IMX8 处理器不仅配有强劲的 CPU和GPU,还对多媒体应用提供了完善的解决方案,如硬件解码支持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 更多的应用。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
电子灭蝇器
无框门窗 塑钢门窗 活动房 活动板房
IP_Camera开发流程
SEMVision™ G9:引领高产能缺陷检测新时代
音乐催眠器
内存涨不停 Q2上看5成
输出电压调节
高效臭氧发生器
抑制鉴相鉴频器中的窄脉冲
高灵敏度演示电表
SPCE061A 单片机编程手册v1.0
STC 高性能 SRAM 选型指南
先进封装的界面失效之谜
PMSM控制技术:PWM调制技术 - 电机控制电子实验室第4章
赋能高端音频功能促进多样化设备创新——XMOS USB Audio平台实现四大功能升级
不可信模拟器件为关键基础设施带来风险
玻璃钢门窗 塑钢护栏 电动门 卷帘门 龙骨
提供方案设计
利用T型网络来拓展光电二极管跨阻放大器(TIA)解决方案的适用范围——第一部分:补偿流程
IP_Camera开发流程
SP2538 数据手册
AI芯片升级 先进封装设备投资看涨
面向高电压应用的多节电池组监视器 IC
PMSM控制技术:带传感器VS传感器 - 电机控制电子实验室总8
贸泽开售适用于物联网、工业、传感器和网关应用的 Digi Connect Sensor XRT-M
鉴相鉴频器(PFD)入门
STC12C5410AD系列单片机中文指南
SP2339_SP2349数据手册
多功能理疗仪
PMSM控制技术:FOC /扭矩控制 - 电机控制电子实验室第5章