264编码 yocto_在 NXP iMX8 上进行 4K 视频播放测试
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更多的应用。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
264编码 yocto_在 NXP iMX8 上进行 4K 视频播放测试相关推荐
- 在 NXP iMX8 上进行 Qt5移植和开发
By Toradex 胡珊逢 简介 高清多媒体,甚至是 4K 视频不仅在消费领域有着旺盛的需求,在行业领域同样也获得广泛的关注.NXP 最新的IMX8 处理器不仅配有强劲的 CPU和GPU,还对多媒体 ...
- 264编码 yocto_评测
近年来,人工智能话题越来越热,受到了更多人的关注.我也是大概在18年末开始接触到百度AI社区,通过使用文字识别.图像识别等百度AI技术,逐步感受到了AI技术的强大,同时也感觉到了百度AI技术的进步:A ...
- NXP iMX8平台上使用imx-gpu-sdk开发
By Toradex胡珊逢 Apalis iMX8 计算机模块采用了 NXP 的 i.MX 8 QuadMax 处理器.该处理器具有两个 Vivante GC7000/XSVX 单元,能够支持 Ope ...
- C++实现RTMP协议发送H.264编码及AAC编码的音视频
C++实现RTMP协议发送H.264编码及AAC编码的音视频 RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司 ...
- 开发直播APP软件一定要了解的H.264编码,即时通讯中的战斗机
开发直播APP软件一定会涉及即时通讯,即时通讯系统在直播系统中的主要作用是实现观众与主播.观众与观众之间的文字.音频.视频互动,现在比较火的主播连麦PK等功能的背后都显现着即时通讯的影子,而在即时通讯 ...
- RTMP协议发送H.264编码及AAC编码的音视频,实现摄像头直播
RTMP协议发送H.264编码及AAC编码的音视频,实现摄像头直播 摘要: RTMP协议发送H.264编码及AAC编码的音视频,实现摄像头直播 RTMP(Real Time Messaging Pro ...
- H.264软件解码器在PXA270平台上的优化
罗 嵘,何 苦 时间:2009年04月24日 摘 要: 研究了嵌入式系统中H.264 Baseline软件解码器设计和优化的问题,提出了四种有效的优化方法,并在PXA270平台上进行了测试.测试结果显 ...
- fpga 开源264编码_更好的开源安全性,学习编码,开放式家庭设计等
fpga 开源264编码 在本周的开源新闻摘要中,我们将介绍更易于访问的开源安全性,用于学习代码的新平台,开源家庭设计等等! 开源新闻让您阅读愉快. 2014年9月20日至26日 Dropbox和Go ...
- 视频基础知识:浅谈视频会议中H.264编码标准的技术发展
浅谈视频会议中H.264编码标准的技术发展 浅谈视频会议中H.264编码标准的技术发展 数字视频技术广泛应用于通信.计算机.广播电视等领域,带来了会议电视.可视电话及数字电视.媒体存储等一系列应用,促 ...
最新文章
- java arraylist 删除回车符_2种Java删除ArrayList中的重复元素的方法
- Git与SVN区别 \git学习
- MySQL 高级 - 存储过程 - 语法 - if判断 || 传递参数 (IN - 输入 OUT-输出)
- java中的reader_java中BufferedReader 有什么用
- java 水印乱码,linux java程序加水印及中文乱码方案
- zabbix监控磁盘io
- (11)Zynq SPI控制器介绍
- ajax跨域post请求的java代理实现
- 视频显示器与服务器之间使用什么线连接,显示器连接线有哪些?四种主流连线科普。...
- 杭电acm 4282 A very hard mathematic problem
- Qt QDir用法及实战案例
- SFP+光纤模块使用
- Tony Bai带你入门Go语言
- 【IoT】 产品设计之α、β、λ测试
- 晚上几点入睡比较好,如果每天1点睡,8点半起,可以保持健康吗?
- 2017283418魏扬
- CDR X7 限时3折618年中大促,是时候出手了!
- ros:init()
- 用python来画出高光谱遥感影像的3D立体图
- s9306 mib之entPhysicalTable