完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
监控摄像机视频画面实时处理创龙TL5708-EVM 之GStreamer视频应用测试 作者:大信 8125036 通过创龙的技术文件介绍得知,TL5708有强大的视频功能,本次测试实验主要测试一下TL5708开发板的视频功能和视频开发方法。在其所带文档 GStreamer视频开发案例.pdf 一文中有较为详细的技术介绍,本测试主要参照了该文档进行了视频功能的开发与测试,为了解TL5708开发板上的视频的支持情况。 一、测试目标介绍 根据开发板资源以及所带的视频案例软件,结合视频开发案例文档,本次设定几个视频测试目标: 1.测试本地摄像头视频图像的采集、编码、播放。测试采集数据支持的格式以及回放,编码格式。 2.测试视频网络通信协议、网络视频收发功能,测试支持的网络协议,以及时延。 3.测试视频图像处理功能,实时视频图像内容处理,并显示播放 4.测试视频内容识别功能,对图像中的条形码进行识别 二、测试环境准备此次主要配合测试的设备有Logitech, Webcam C270 USB摄像头,和大华iCAMERA 网络监控摄像头,相关的网络连接设备。笔记本主机,运行Ubuntu系统。 将开发板带的四个GStreamer程序源代码,在Demotl-video-demos目录下,分别为 gst-v4l2-vpe-iva-udp tl-gst-mjpeg-dec-edge tl-gst-rtsp-dec-edge tl-v4l2-capture 复制到 Ubuntu 下,准备好 TL5768交叉编译环境,交叉编译环境见上一章测试报告,可以直接复用编译环境 图1 Logitech, Webcam C270 USB摄像头 图2 大华iCAMERA 网络监控摄像头 三、安装GStreamer主机开发SDK为了更好的配合测试GStreamer功能,需要在主机上也安装相应的软件和开发包,在主机上只要在ubuntu终端中运行以下命令安装相应的库即可,同时在主机上的gPlayer播放器也需要一些gstreamer的编解码库,安装之后就能够播放更多的格式的音视频了。 apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-devlibgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-basegstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-uglygstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-xgstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5gstreamer1.0-pulseaudio 另外需要的开发环境是主机gcc编译器和文本编辑器。为了编译需要GStreamer 并使用 GStreamer 核心库的代码,在编译的时候需要在末尾加上以下字符串。 pkg-config --cflags --libs gstreamer-1.0 在主机Ubuntu环境下输入 gst-launcher –verson pkg-config --cflags --libs gstreamer-1.0 可以看到gst软件工具和开发SDK已经成功安装 图3 主机上Gstreamer工具和SDK安装 四、编译TL5708 GStreamer测试程序先在Ubuntu下切换到交叉编译环境,即在ti-PSDK 目录运行以下命令,即进入目标板编译环境。 再进入各个工程目录下的源码目录,直接make 即可,分别如下图: 图4检测摄像头的控制文件 图5检测摄像头的控制文件 图6检测摄像头的控制文件 再分别把编译后的可执行文件通过 ssh 传输到板子目录下。 五、检测摄像头参数上面的测试程序很多需调用摄像头,需要一些摄像头的参数,如果参数不正确,会导致无法获取到采集图像,造成测试失败,摄像头参数主要确定有,插入开发板摄像头的设备文件,以及摄像头采集图像的大小,帧率参数。 首先通过如下命令可以查看到摄像头的文件号,当摄像头插入不同的USB口时,这个号会变,有时重启后文件号也会变,因此在测试前需要检测摄像头的文件,而且这个控制文件是动态的,必须先插入摄像头才会有这个文件。 ls -l /sys/class/video4linux/video* 图7检测摄像头的控制文件 如上面所示,接入的摄像头的控制文件为 /dev/video1, 检测完控制文件后,在检车这个摄像头支持的捕捉的图像尺寸以及帧率,检查通过开发板所带的tl-video-capture 程序完成,输入以下命令即列出摄像头支持不同模式下的各种分辨率和帧率。 图8.检测摄像头支持的图像尺寸和帧率 从监测的结果看,该摄像头支持以下的分辨率和帧率:
在开发板环境下,运行以下命令,开始测试视频捕捉,目的是从摄像头里获取视频图像,再把原始视频图像数据保存到文件里。然后把保存的文件传到windows下,使用播放器播放,检验视频图像捕捉正确。 启动视频图捕获命令,其中命令参数 –m为选择模式,这里选择保存文件,–d 为打开的摄像头设备,-F为视频色彩空间,这里采用YUYV ,-w.-h 分别为视频的宽高,-f 为帧率,-n 为捕获多少帧: ./tl-v4l2-capture -m save -d /dev/video1 -t usb -F YUYV -w 320 -h 240 -f 15-o /home/root/test.yuv -n 100 图9.开发板捕获视频图像到文件 运行完成后,在开发板/home/root/ 目录下,即可看到生成的 test.yuv 文件了。将这个文件传输到windows系统上,通过开发板带的yuvview.exe 工具就可以播放该文件的内容了,在yuvview.exe选择该文件后,color 下设置yuyv 格式,尺寸设置 320x240 即可,然后点播放即可以看到视频内容了。测试视频捕获成功。 图10.windows下播放摄像头捕获的视频文件 同样在开发板上,使用tl-v4l2-capture程序也可以直接播放采集到的视频图像。输入下面命令即可: ./tl-v4l2-capture -m display -d /dev/video1 -t usb -F YUYV -w 1280 -h 720-f 10 -o /dev/fb0 –m选择模式选择显示模式即可。图11.开发板捕获视频图 图12.HDMI直接播放摄像图捕获的视频 另外还可以通过 GStreamer的程序来捕获视频,并且进行图像尺寸变换处理,然后显示出来,可以看到GStreamer更加灵活。运行程序命令如下: ./tl-gst-v4l2-vpe-iva-udp -mdisplay -d /dev/video1 -i 1 280*720 -o 1920*1080图13.使用GStreamer捕获视频并变换尺寸 捕获的摄像头原始尺寸是 1280x720,通过GStreamer程序拉伸到1920x1080,后在显示器上可以满屏的显示。 图14. GStreamer捕获视频并拉伸后显示效果 七、测试视频的解码与视频编码同样通过 tl-gst-v4l2-vpe-iva-udp 继续测试视频的编码,前面捕获到的视频是YUYV的原始视频图像,可以看到视频文件非常大,通过编码压缩后,文件将变的很小吗,测试视频编码输入命令如下: ./tl-gst-v4l2-vpe-iva-udp –m save-d /dev/video1 -i 1280*720 -o 1920*1080 –f test.264 即可以通过GStreamer对捕获的视频进行H264编码,并把H264编码文件保存到test.264文件中。图15.视频H264编码 图16.对比YUV视频数据与编码后的H264视频数据 输入以下命令完成对视频h264文件的解码,并把视频每帧解码成jpeg图片./gstreamer –m dech264 -i ./test.h264-o ./temp 图17解码H264视频文件 图18 解码H264视频文件 图19 解码H264视频生成的图片 八、测试视频网络收发这里进一步测试摄像头连接开发板,通过GStreamer进行视频采集编码并且进行网络发送,将视频流实时发送到主机网络上,在主机上接收并且显示视频内容。 在开发板上输入命令如下,测试视频编码并发送到主机地址: ./tl-gst-v4l2-vpe-iva-udp -m udp -d /dev/video0 -i 1280*720 -o 1280*720 -a192.168.50.165:3345 //将摄像头画面使用 UDP 传出去 图20.开发板通过网络发送视频 主机上输入命令如下,进行接收开发板采集编码发送来的视频,并进行解码播放。 gst-launch-1.0 -v udpsrc port=3345 ! 'application/x-rtp,media=(string)video,payload=(int)96'! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! ximagesink 图21.主机接收开发板发送的视频 这里一个重要测测试,即视频时延,指从开发板采集端到网络传输到主机播放出视频画面时的视频时延,这里测试方法是,将摄像头对着将要播放视频画面的显示器,同时在显示器边上放上一个计时器画面,这里用手机做计时器,这样摄像头采集到手机上时间画面会显示到显示器上,对比显示器里的画面上的计时器和实际手机上显示的计时,这样就可以方便的计算出整体的时延,如下图。整个测试过程录制了视频放文末供参考。 图22.测试视频编码传输解码的时延 从测试的结果看,时延在400ms左右,这个时延与软件内设置的缓冲区大小以及网络速度等都有关系,这里测试的数据巾为当前下的情况。 九、测试监控摄像机视频编实时处理这里再测试开发板接收网络监控摄像机的rtsp实时视频,并对视频进行边缘检测,将边缘检测输出的画面显示在显示器上,首先连接好监控摄像机的电源与网线,并且检查监控摄像机的IP地址,一般在局域网的网上邻居里可以看到网络监控摄像机,并且获得它的IP地址,通过相关文档获得网络摄像机输出的rtsp流地址,如果没有输出,可以进入网络摄像机的设置里,打开rtsp输出选项即可。 这个测试的网络摄像机的rtsp流地址如下,通过vlc等视频工具测试,确认网络摄像机能够正确的输出rtsp视频服务。在开发板上输入以下命令开始接收rtsp流,并且对rtsp流进行解码并调用opencl sobel edge算法,进行画面边缘检测,最后将边缘检测的结果显示到显示器上,如下图所示,整个测试过程的视频,见文章开头的视频。 监控摄像机的rtsp流地址: 开发板上输入命令如下: ./tl-gst-rtsp-dec-edge -u "rtsp://admin:12345678@192.168.3.168:80/cam/realmonitor?channel=1&subtype=0"-i 1920*1080 图23 读取监控摄像机视频并实时处理 十、图像条形码识别最后测试开发板接对视频中的条码进行检测识别的过程,将条码识别例程编译完成,并把 detect_barcodecopy 到开发板主目录下,这个程序是QT程序,因此需要先打开QT桌面,然后在执行如下命令: /etc/init.d/weston start detect_barcode 1 1 1 图24 运行摄像头条码识别测试程序 即可在显示器上看到上摄像头的画面内容,然后拿一个条形码在摄像头前,可以发现条码的位置,并且对条码区域进行加框显示效果如下图: 图25条码识别测试效果 十一、视频应用测试总结 通过对TL5708-EVM开发板的视频应用测试,了解了TL5708视频的采集设备接入方法,通过V4l2采集视频。也了解了GStreamer这个强大的视频框架,从视频采集,编码,解码,网络协议支持,以及支持插件方式,支持对视频内容画面的处理等功能。基本涵盖了视频应用从采集、编码到网络以及视频图像处理的各个方面。 从测试可以看到TL5708对GStreamer支持非常好,基本上常见的视频应用组件都支持了,使得视频应用开发很简便,开发高效。同时利用其内带DSP核的优势,很容易整合OpenCL的图像视觉算法的加速,完成高级的图形图像处理功能。从而提供一些高级的视频应用功能,可以为视频内容检测、滤镜,特效,图像拼合等提供可行性。也为各种视频智能应用提供的很好的硬件平台。 视频编码解码传输时延测试 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
基于RK3588J的6路MIPI CSI视频采集案例分享,多路视频系统必看!
1211 浏览 0 评论
589 浏览 0 评论
【创龙科技TL570x-EVM开发板试用体验】 GStreamer 功能测评
8560 浏览 8 评论
【创龙科技TL570x-EVM开发板试用体验】创龙TL5708-EVM开发板入手使用体验评测
6575 浏览 0 评论
【创龙TLZ7x-EasyEVM评估板试用连载】+3.环境搭建vmware+ubuntu详细教程(二)
1397 浏览 0 评论
831浏览 0评论
【创龙科技AM64x开发板试用体验】创龙科技AM64x开发板及核心板介绍
827浏览 0评论
【创龙科技AM64x开发板试用体验】创龙科技AM64x开发板--板卡调试软件安装
845浏览 0评论
【创龙科技AM64x开发板试用体验】AM64x开发板开箱测评
835浏览 0评论
求助! 关于使用自制底板插入创龙IMX8MM 核心板无法启动问题
489浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 16:40 , Processed in 0.988009 second(s), Total 70, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号