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

news/2025/1/8 14:48:58/

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 更多的应用。


http://www.ppmy.cn/news/707079.html

相关文章

基于imx6ull打造流媒体视频监控:ffmpeg + nginx + rtmp

0.平台简介 项目描述硬件平台100ask_imx6ull_pro开发板Linux内核Linux 4.9.88Buildroot版本Buildroot 2019.02FFmpeg版本3.4.5Nginx版本1.15.7摄像头支持UVC的USB摄像头 总体的系统方案如下,是韦老师在【自己做一个物联网视频监控系统】系列视频中分享的一个实例&a…

CentOS7安装oracle19c教程

参考 https://zhuanlan.zhihu.com/p/571737575 1创建组和用户 vi /etc/hosts [rootrhel ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.7 (Maipo) /usr/sbin/groupadd -g 54321 oinstall /usr/sbin/groupadd -g 54322 dba /usr/sbin/groupadd -g 54…

Nginx负载均衡与动静分离

一、Nginx负载均衡: 1.概述: Nginx是一款http服务器软件,支持高达50000个并发连接数的响应。 (1)拥有强大的处理静态资源的能力。 (2)运行稳定。 (3)CPU&#xff0c…

查aaa询

隐行卡开户地 经纬度解析 注册过的网站 搜索引擎 钟馗之眼 电子邮件泄露

HGNC数据库 HUGO基因命名委员会

http://www.genenames.org/ HGNC 全称为HUGO Gene Nomenclature Committee, 叫做 HUGO基因命名委员会,负责对人类基因组上包括蛋白编码基因, ncRNA基因,假基因和其他基因在内的所有基因提供一个唯一的,标准的,可以广泛…

mysql查询同名同姓重名人数_查全国同名同姓,怎样查重名人数查询

查全国同名同姓,怎样查重名人数查询 时间:2020-05-10 20:30:01 不少宝爸宝妈在给婴儿起名之时,会好奇在全中国有几人同名同姓,希望新生儿的名字不会跟太多人重合。或者有的小伙伴单纯好奇全中国同自己重名的人有多少,那…

chcon

chcon命令是修改对象(文件)的安全上下文,比如:用户、角色、类型、安全级别。也就是将每个文件的安全环境变更至指定环境。使用--reference选项时,把指定文件的安全环境设置为与参考文件相同。chcon命令位于/usr/bin/ch…