完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前 言本文主要介绍AM570x基于GStreamer的视频采集、编解码、算法处理、显示以及存储案例。
本次案例测试板卡为创龙科技TL5728F-EVM开发板,它是一款基于ti Sitara系列AM5728(双核ARM Cortex-A15 +浮点双核DSP C66x) + xilinx Artix-7 FPGA处理器设计的高端异构多核评估板。 案例使用到的ARM端为Cortex-A15核心,DSP端为C66x核心。开发案例位于产品资料“4-软件资料Demotl-video-demos”目录下,分别为tl-gst-v4l2-vpe-iva-udp、tl-gst-mjpeg-dec-edge、tl-gst-rtsp-dec-edge。开发案例中的bin目录存放可执行程序,src目录存放源码。 tl-gst-rtsp-dec-edge案例 案例说明 本案例使用Gstreamer API通过ARM端从网络摄像头获取网络流数据,并调用IVA-HD将视频硬件解码为NV12格式,然后通过OpenCL调用DSP端对NV12格式图像进行Sobel(边缘检测)算法处理,再将经过处理的图像在显示屏中实时显示。 备注:由于CMEM共享内存地址空间已超过512MByte,故该案例仅支持DDR3不小于1GByte的评估板。 程序工作流程框图如下所示: 图 69 案例测试 图 70 请按照上图进行硬件连接,通过网线将网络摄像头和评估板的RGMII0 ETH接入至路由器,保证在同一网络下。并将该案例bin目录下的tl-gst-rtsp-dec-edge可执行文件拷贝至评估板文件系统中。 在tl-gst-rtsp-dec-edge文件所在路径下,执行如下命令查询程序参数说明。 Target# ./tl-gst-rtsp-dec-edge -h 图 71 表 11 输入视频源分辨率 本案例使用的网络摄像头IP地址为192.168.0.174,请确保评估板和网络摄像头IP地址处于同一网段。 图 72 执行如下命令采集视频流进行Sobel(边缘检测)算法处理,再将经过处理的图像在显示屏中实时显示。 Target# /etc/init.d/matrix-gui-2.0 stop //关闭matrix界面 Target# /etc/init.d/weston stop //关闭weston界面 Target# ./tl-gst-rtsp-dec-edge -u "rtsp://admin:tl123456@192.168.0.174:554/h264/ch1/main/av_stream " -i 1280*720 //192.168.0.174为摄像头IP地址 图 73 Sobel(边缘检测)算法处理效果图如下所示。 图 74 本次测试CPU占用率为52.9%,如下图所示。 图 75 时延测试 时延测试方法:使用摄像头采集PC机显示屏的在线秒表图像。PC机显示画面与评估板显示画面的时间差,即为时延。进行多次测试,时延结果取其平均值。 表 12 案例解析 GStreamer管道示意图 图 76 关键代码说明 初始化gstreamer,创建pipeline。 图 77 创建Gstreamer组件并初始化,并检查组件初始化情况。 图 78 配置各组件参数。 图 79 链接组件到pipeline。 图 80 创建Pipeline状态检测函数,改变Pipeline状态为playing,使其开始工作。 图 81 停止Pipeline及释放Gstreamer。 图 82 当appsink pipeline获取一帧图像后,将触发cb_new_appsink_sample回调函数,回调函数中获取从rtsp流解码得到的数据,如果有数据正在进行边缘检测,则这部分数据不进行处理,否则交由DSP进行边缘检测。 图 83 图像处理线程(ocl_thread)中,通过OpenCL卸载边缘检测(Sobel)算法加载至DSP端;并将处理好的图像数据发送至appsrc pipeline。 图 84 案例编译 将该案例的src目录拷贝到Ubuntu工作目录,进入src源码目录执行如下命令加载Linux Processor SDK环境变量。 Host# source /home/tronlong/ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05/linux-devkit/environment-setup 图 85 执行make命令进行编译。 Host# make 图 86 编译完成后,将在当前目录生成可执行文件tl-gst-rtsp-dec-edge。 图 87 H.264视频流MP4格式转码方法 第三方工具FFmpeg压缩包ffmpeg-4.2.1-win64-static.zip位于产品资料“4-软件资料ToolsWindows”目录下,请将其解压至Windows下。 在Windows下,按住"WIN + R"进入CMD命令行模式,如下图所示。 图 88 执行如下命令进入FFmpeg的bin目录,并查看当前目录下的文件。 CMD# cd C:UsersAdministratorDesktopffmpeg-4.2.1-win64-staticbin CMD# dir 图 89 执行如下命令查看FFmpeg的使用说明。 CMD# ffmpeg.exe -h 图 90 请将H.264视频流文件拷贝到Windows,并执行如下命令将H.264视频流文件转码为MP4格式。源文件和输出文件路径请根据实际情况修改。转码后的MP4格式视频文件即可使用常用播放器进行播放。FFmpeg官网链接:www.ffmpeg.org。 CMD# ffmpeg.exe -r 30 -i C:UsersAdministratorDesktoptesttest.264 -y C:UsersAdministratorDesktoptestoutput.mp4 图 91 图 92 图 93 |
|
相关推荐
|
|
飞凌嵌入式-ELFBOARD 硬件知识分享-ELF 2电源电路讲解
361 浏览 0 评论
1378 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程介绍之烧写所需镜像
1312 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程之烧写方法
743 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
1139 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 22:57 , Processed in 0.374558 second(s), Total 33, Slave 26 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号