首页 > 其他分享 >NXP i.MX 8M Mini的视频开发案例分享 (下)

NXP i.MX 8M Mini的视频开发案例分享 (下)

时间:2023-06-05 17:45:16浏览次数:80  
标签:Mini NXP HDMI 8M 解码 相机 GigE gige 视频文件

3   gige_capture案例

本案例通过评估板千兆网口接入GigE工业相机实现图像采集、图像显示和图像保存的功能。相机型号:acA720-290gm,品牌:Basler,分辨率可配置最大为720x540,帧率可达291fps。相机详细信息见官网链接:www.baslerweb.com/cn/products/cameras/area-scan-cameras/ace/aca720-290gm

本案例实测帧率为:采集并显示为720x540@138fps,采集并保存为720x540@31fps。

测试案例gige_capture位于产品资料“4-软件资料\Demo\base-demos\”路径下。为方便测试,产品资料中提供了经过验证的测试程序可执行文件,位于gige_capture的bin目录下,源码位于gige_capture的src目录下。

3.1    GigE工业相机配置

本小节使用Basler官方提供的pylonSDK开发包,在PC机Ubuntu中对GigE工业相机进行IP地址获取方式、采集帧率等参数配置。

将“gige_capture\pylonSDK\x86_64\”目录下的pylonSDK-5.1.0.12682-x86_64.tar.gz压缩包拷贝至Ubuntu任意路径,并进入压缩包所在目录执行如下命令将其解压至当前目录下。

Host#    tar -xvf pylonSDK-5.1.0.12682-x86_64.tar.gz -C .

 

图 40

 

图 41

 

GigE工业相机上电,通过网线将PC机和GigE工业相机连接至相同路由器,并执行如下命令运行IpConfigurator工具,配置IP地址获取方式。

Host#    cd pylon5/bin/

Host#    ./IpConfigurator

 

图 42

 

在IpConfigurator界面中,点击Refresh刷新并识别GigE工业相机。由配置界面可看到GigE工业相机支持静态IP(Static IP)和动态IP(DHCP)两种模式。本次采用动态IP模式进行测试,选择DHCP选项,点击Save保存,测试获取的IP地址为192.168.0.165。

 

  图 43

 

关闭IpConfigurator工具窗口,执行如下命令运行PylonViewerApp工具,配置采集帧率等参数。

Host#    ./PylonViewerApp

 

图 44

 

在PylonViewerApp界面中双击选中GigE网络相机设备,User Level选择Expert,点击打开相机配置栏目,如下所示。

 

  图 45  

点击打开“Configuration Sets”栏目,并按照下图内容进行初始化。

设置“Configuration Sets”栏目下的“User Set Selector”选项和“Default Startup Set”选项为“Default User Set”。

 

  图 46

 

点击打开“Transport Layer”栏目,设置相机网络包配置。

设置“Transport Layer”栏目下的“Packet Size”设置为1500。“Inter-Packet Delay”设置为4500。“Inter-Packet Delay”参数值会影响采集帧率,请根据实际情况进行修改。

点击菜单栏 按钮进行连续采集,即可通过PylonViewerApp查看GigE网络相机采集到的图像。

 

  图 47

 

可设置“Acquisition Controls”栏目下的“Exposure time”数值调节相机曝光时间,数值越大,帧数越低,测试使用相机默认值3000us,对应帧率为274fps。

 

  图 48

 

可在“AOI Controls”栏目设置相机采集图像大小,默认大小为720x540。

 

  图 49

 

3.2    图像采集测试

通过网线将评估板RGMII ETH接口和GigE工业相机连接至相同路由器,评估板默认支持HDMI显示,请先正确连接HDMI显示屏。

备注:如GigE工业相机配置为静态IP,则需通过网线将评估板和GigE工业相机直连,并设置评估板和GigE工业相机为同一网段。

 

  图 50

 

将“gige_capture\lib\”目录下的库文件压缩包libpylon_arm64.tar.gz拷贝至评估板文件系统任意目录,并进入压缩包所在目录执行如下命令将其解压至“/usr/lib/”目录。

Target#        tar -xvf libpylon_arm64.tar.gz -C /usr/lib

 

  图 51

 

GigE工业相机上电,进入评估板文件系统,请将bin目录下的可执行文件gige_capture拷贝至评估板文件系统任意路径下。在gige_capture可执行文件所在目录下执行如下命令查看程序参数说明。

Target#        ./gige_capture --help

 

图 52

 

执行如下命令扫描局域网内的GigE工业相机,并测试GigE工业相机图像采集帧率。

Target#        ./gige_capture -m scan

 

图 53

 

并执行如下命令关闭Weston界面,将GigE工业相机采集的图像显示到显示屏上。若图像显示不清晰,请旋转旋钮调节相机镜头光圈和焦距,GigE工业相机会以设置的分辨率720x540进行实时采集,本次实测采集并显示的处理帧率为138fps,进行采集并显示的帧率会受硬件性能和网络环境的影响有一定的波动。

Target#        systemctl stop [email protected]

Target#        ./gige_capture -m display -o /dev/fb

 

图 54

 

  图 55  

本次测试的CPU占用率如下所示。

 

  图 56

 

执行如下命令,将GigE工业相机采集的图像以gray8的格式保存至指定路径的文件中。采集并存储的帧数会受设备的读写速率影响,本次实测为31fps。

Target#        ./gige_capture -m save -o /home/root/test.gray8

 

图 57

 

将保存的文件拷贝至Windows下,使用“gige_capture\tools\yuvplayer.exe”程序打开test.gray8文件,点击“Size -> Custom”,设置图像格式Width为720,Height为540,点击“Color -> Y”,点击播放按钮即可显示图像,如下所示。

 

  图 58

 

  图 59

 

  图 60  

3.3    案例编译

将gige_capture整个目录拷贝至Ubuntu任意路径,请确保"pylonSDK\arm64\"目录下的pylonSDK-5.1.0.12682-arm64.tar.gz已解压,进入案例src目录执行如下命令加载SDK环境变量并编译。

Host#    source /home/tronlong/SDK/environment-setup-aarch64-poky-linux

Host#    make

 

  图 61

 

编译完成后,将在当前目录下生成可执行文件。

 

图 62

 

4    H.265视频硬件解码功能演示

i.MX 8M Mini处理器内部含有VPU(Video Processing Unit) G2解码器,可硬件解码H.265视频文件,最高支持1080P60。

本章节主要演示i.MX 8M Mini基于Gstreamer框架,使用VPU G2解码器解码H.265视频文件,包含MKV(HEVC)、MP4(HEVC)视频文件,以及HEVC(H.265原始格式)视频文件。

 

  图 63

 

i.MX 8 Gstreamer官方参考文档为产品资料“6-开发参考资料\NXP官方参考文档\i.MX 8 GStreamer User Guide.pdf”。文档介绍了部分Gstreamer常用的插件(Plugins)、i.MX 8的专用插件,以及编解码示例。

4.1    解码MKV视频文件

请将评估板HDMI OUT接口连接HDMI显示屏,并将产品资料“4-软件资料\Tools\Video\”目录下的bbb-1920x1080-cfg02.mkv(1080P60带音频)视频文件拷贝至评估板文件系统。进入视频文件所在路径,执行如下命令进行解码,即可在HDMI显示屏显示MKV解码视频。

Target#        gst-launch-1.0 -v filesrc location=./bbb-1920x1080-cfg02.mkv ! matroskademux name=demux demux.video_0 ! queue ! h265parse ! vpudec ! queue ! waylandsink window-width=1920 window-height=1080

 

图 64

 

HDMI显示效果如下。播放结束或按"Ctrl + C"退出视频播放后,串口调试终端将提示视频输出帧率。

 

图 65

 

图 66  

本案例视频解码的Pipeline工作流程如下所示。

 

图 67

 

该Pipeline由6个Element(Plugins)构成,每个Element实现各自的功能。

(1)        filesrc:读取文件。

(2)        matroskademux:解析MKV文件,提取数据。

(3)        queue:缓存数据。

(4)        h265parse:使用H.265解释器。

(5)        vpudec:使用VPU解码器解码H.265视频文件。

(6)        waylandsink:选择显示设备并进行输出,设置输出分辨率为1920 x 1080。

 

图 68

 

 

图 69

 

bbb-1920x1080-cfg02.mkv为带音频的视频文件,如需同时播放视频和音频,请将创龙科技TL3106音频模块插至J10接口,并将模块的LINE OUT接口连接耳机或音箱。

 

 

图 70

 

进入评估板文件系统执行如下命令,在命令中增加音频解码与播放参数,即可同时播放视频和音频。

Target#        gst-launch-1.0 -v filesrc location=./bbb-1920x1080-cfg02.mkv ! matroskademux name=demux demux.audio_0 ! queue ! decodebin ! audioconvert ! audioresample ! autoaudiosink demux.video_0   ! queue ! h265parse ! vpudec ! queue ! waylandsink window-width=1920 window-height=1080

 

 

图 71     图 72

 

本案例视频与音频同时解码的Pipeline工作流程如下所示。

 

 

图 73

 

4.2    解码MP4视频文件

请将评估板HDMI OUT接口连接HDMI显示屏,并将产品资料“4-软件资料\Tools\Video\”目录下的Elecard_about_Tomsk_part1_HEVC_1080p.mp4(1080P25)视频文件拷贝至评估板文件系统。进入视频文件所在路径,执行如下命令进行解码,即可在HDMI显示屏显示MP4解码视频。

Target#        gst-launch-1.0 -v filesrc location=./Elecard_about_Tomsk_part1_HEVC_1080p.mp4 ! qtdemux name=demux demux.video_0 ! queue ! h265parse ! vpudec ! queue ! waylandsink window-width=1920 window-height=1080

 

图 74     图 75

 

HDMI显示效果如下。播放结束或按"Ctrl + C"退出视频播放后,串口调试终端将提示视频输出帧率。

 

  图 76     图 77

 

命令参数解释:

(1)        filesrc:读取文件。

(2)        qtdemux:解析MP4文件,提取数据。

(3)        queue:缓存数据。

(4)        h265parse:使用H.265解释器。

(5)        vpudec:使用VPU解码器解码H.265视频文件。

(6)        waylandsink:选择显示设备并进行输出,设置输出分辨率为1920 x 1080。

 

 

图 78  

4.3    解码HEVC视频文件

请将评估板HDMI OUT接口连接HDMI显示屏,并将产品资料“4-软件资料\Tools\Video\”目录下的sample_1920x1080.hevc(1080P30)视频文件拷贝至评估板文件系统。进入视频文件所在路径,执行如下命令进行解码,即可在HDMI显示屏显示HEVC(H.265原始格式)解码视频。

Target#        gst-launch-1.0 -v filesrc location=sample_1920x1080.hevc ! queue ! h265parse ! vpudec ! queue ! waylandsink window-width=1920 window-height=1080

 

 

图 79

 

HDMI显示效果如下。播放结束或按"Ctrl + C"退出视频播放后,串口调试终端将提示视频输出帧率。

 

 

图 80     图 81  

参数解释:

(1)        filesrc:读取文件。

(2)        queue:缓存数据。

(3)        h265parse:使用H.265解释器。

(4)        vpudec:使用VPU解码器解码H.265视频文件。

(5)        waylandsink:选择显示设备并进行输出,设置输出分辨率为1920 x 1080。

 

如果你还想了解更多嵌入式应用的相关知识,欢迎关注Tronlong创龙科技~

标签:Mini,NXP,HDMI,8M,解码,相机,GigE,gige,视频文件
From: https://www.cnblogs.com/Tronlong818/p/17457170.html

相关文章

  • 基于NXP i.MX 8M Mini的开发板
    1核心板简介创龙科技SOM-TLIMX8-B是一款基于NXPi.MX8MMini的四核ARMCortex-A53+单核ARMCortex-M4异构多核处理器设计的高端工业级核心板,ARMCortex-A53(64-bit)主处理单元主频高达1.6GHz,ARMCortex-M4实时处理单元主频高达400MHz。处理器采用14nm最新工艺,支持1080P60H.2......
  • minio挂载操作
    挂载端安装s3fs-fuseaptinstalls3fs-fusehttps://github.com/s3fs-fuse/s3fs-fuse 挂载miniohttps://github.com/lukewaite/cookbook/blob/master/docs/zh_CN/s3fs-fuse-with-minio.md存放minio的access_key和secret_keyecho"access_key:secret_key">/etc/s3cre......
  • npm i命令报the command again as root/Administrato
    首先在确保自己node版本和np版本是符合的情况下:对照https://nodejs.org/zh-cn/download/releases/,查看node和npm相对的版本报错代码4048一般情况都是管理权限不够可以win10系统中搜素PowerShell,右键以管理员身份运行,打开后执行命令:set-ExecutionPolicyRemoteSigned,更改权限为A......
  • Docker安装Minio
    //拉取minio镜像dockerpillminio/minio//创建配置文件和文件存储挂载目录mkdir-p/server/minio/configmkdir-p/server/minio/data//启动miniodockerrun-p8095:8095-p8094:8094\--net=host\--nameminio\-d--restart=always\-e"MINIO_ACCESS_KE......
  • 使用Minio Clinet将老版本Minio的数据迁移到新版本的Minio
    1.关于MinioClient:MinIOClient是一个命令行工具,用于与Minio或云存储服务进行交互。它支持文件系统和AmazonS3兼容的云存储服务(AWSSignaturev2和v4)。MinIOClientmc命令行工具提供了ls、cat、cp、mirror和diff等UNIX命令的现代替代方案,支持文件系统和Amazons3兼容的云......
  • VulnHub-Gemini Inc: 1
    靶机地址:https://www.vulnhub.com/entry/gemini-inc-1,227/目标:Identifyanyvulnerabilitiespossiblewiththegoalofcompletesystemcompromisewithrootprivilege.Todemonstratethelevelofaccessobtained,pleaseprovidethecontentofflag.txtlocatedint......
  • Miniconda+Pycharm中虚拟环境配置
    在安装完Miniconda后,win+r打开命令提示符,输入cmd在命令提示符输入conda,出现以下则安装成功;如果输入conda出现“不是内部或外部命令,也不是可运行的程序或批处理文件”,这样的提示说明要手动配置系统环境变量。操作:找到Miniconda的安装路径,找到Scripts,复制文件路径添加到系统path......
  • minio server启动模式 小结
     官方文档:https://docs.min.io/docs/minio支持多种server启动模式 1.分布式文件系统应用:1.1、Minlo介绍:Minlo是一个基于ApacheLicensev2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数......
  • CF 1175E Minimal Segment Cover[RMQ]
    题目链接:http://codeforces.com/problemset/problem/1175/E 解题思路:预处理出每个点用一次可以到达最远的距离。那么某个点用两次可以到达最远距离就是他用一次到达最远距离的地方用一次到达的最远距离,所以我们可以去倍增。#include<bits/stdc++.h>usingnamespacestd;typed......
  • (晶体管)QH8MA4TCR MOSFET - 阵列 30V 9A,8A 1.5W 表面贴装型 TSMT8
    特性:1)低导通电阻2)小型表面贴装封装(TSMT8)3)无铅电镀;符合RoHS标准4)无卤素ROHM半导体硅功率MOSFET提供一系列驱动类型(0.9V至20V),使其非常适合各种应用。技术:MOSFET(金属氧化物)配置:N和P沟道FET功能:-漏源电压(Vdss):30V25°C时电流-连续漏极(Id):9A,8A不同Id、Vgs......