tag 标签: vf61

相关博文
  • 热度 20
    2016-4-6 15:31
    1320 次阅读|
    0 个评论
    在嵌入式ARM平台设备上,经常有在一个SPI bus上面挂接一个或者多个SPI设备的需求,由于挂载一个设备的情况比较简单,本文主要就在嵌入式Linux环境下挂载多个SPI设备进行说明。   本文所采用的硬件为 Toradex  公司 Colibri VF61 计算机模块和开发载板,核心为Cortex-A5和M4异构双核,这里A5运行Toradex官方发布的 Embedded Linux  BSP V2.5,M4核心这里不做使用。   本文涉及Toradex发布Embedded Linux源码下载,Device Tree 定制编译,相关操作请参考下面文章,本文不做赘述。 http://developer.toradex.com/knowledge-base/build-u-boot-and-linux-kernel-from-source-code http://developer.toradex.com/device-tree-customization   Colibri VF61最多可以提供4路SPI bus,不过只有SPI1为系列兼容,因此这里就只使用SPI1,根据手册,其硬件管脚定义如下:   1). 在连接一个SPI 设备情况下,则只需要硬件对应连接上面管脚即可,Device Tree默认也已经设置好无需修改,然后按照下面文档说明操作即可 http://git.toradex.com/cgit/linux-toradex.git/tree/Documentation/spi/spidev_test.c?h=toradex_vf_4.1   2). 在连接多个SPI设备情况下,则主要问题是需要多个Chip Selection片选信号,这里有两种解决方案,一种是硬件CS管脚,VF61 SPI1通道除了默认的CS0,还提供额外的4个CS管脚,不过默认为其他功能;另外一种方式为直接使用GPIO作为CS管脚,下面对这两种方式分别说明: a).  采用硬件CS 管脚 除了默认的SPI1_CS0,VF61还提供了额外4个CS管脚SPI1_PCS1, SPI1_PCS2, SPI1_PCS3;不过由于不是默认功能,需要在Device Tree中修改,下面以除了默认的CS0,再添加一个设备采用SPI1_PCS1作为CS信号为例说明。 ./ 根据VF61手册,有连个管脚可以提供SPI1_PCS1功能,我们选择默认功能为GPIO的SODIMM Pin79来设置为SPI1_PCS1。 //修改iomuxc - vf610-colibri, 从’pinctrl_additionalgpio’里面删除对应GPIO管脚 pinctrl_additionalgpio: additionalgpios {                   fsl,pins = VF610_PAD_PTC4__GPIO_49              0x22ed …… ; }; //在’pinctrl_dspi1‘中添加对应的管脚 pinctrl_dspi1: dspi1grp {                         fsl,pins = VF610_PAD_PTD4__DSPI1_CS1                 0x33e2                         ; }; //最后再为新的slave device添加slave node dspi1 {         spidev1: dspi@0 {                 compatible = "spidev";                 reg = 0;                 spi-max-frequency = 50000000;         }; Spidev2: dspi@1 {                 compatible = "spidev";                 reg = 1;                 spi-max-frequency = 50000000;         }; };   b).  采用GPIO 作为CS 管脚 参考文档请见 这里 ,下面是一个简单举例 ./ 修改Device Tree SPI master node 参数     //增加cs-gpio 属性,定义GPIO CS管脚或者GPIO和硬件CS混合,如下面所示SPI1_PCS0和另外三个GPIO混合组成新定义的CS组合 dspi1 {         cs-gpios = 0 gpio1 14 0 gpio1 15 0 gpio1 16 0; }; 这样重新定义的CS片选组合为4个,顺序如下: CS0: SPI1_PCS0 CS1: gpio1 14 CS2: gpio1 15 CS3: gpio1 16 ./ 修改iomuxc - vf610-colibri,将所需的CS GPIO从GPIOs Pinctrl删除,并加入SPI1 Pinctrl。 //从’pinctrl_additionalgpio’里面删除上面三个GPIO管脚 pinctrl_additionalgpio: additionalgpios {          fsl,pins = VF610_PAD_PTC1__GPIO_46                 0x22ed VF610_PAD_PTC2__GPIO_47                 0x22ed VF610_PAD_PTC3__GPIO_48                 0x22ed …… ; };   //然后再添加到’pinctrl_dspi1‘ pinctrl_dspi1: dspi1grp {                         fsl,pins = VF610_PAD_PTC1__GPIO_46               0x33e2 VF610_PAD_PTC2__GPIO_47               0x33e2 VF610_PAD_PTC3__GPIO_48               0x33e2                         ; }; //最后再为每个slave device添加slave node dspi1 {         spidev1: dspi@0 {                 compatible = "spidev";                 reg = 0;                 spi-max-frequency = 50000000;         }; Spidev2: dspi@1 {                 compatible = "spidev";                 reg = 1;                 spi-max-frequency = 50000000;         }; …… };   3). 将上述修改好的Device Tree 文件重新编译后部署到VF61设备里面,就完成了多个SPI设备挂载,可以在应用中使用了。 a). 编译部署除了本文一开始提到的文章,也可以参考 这里 b). Embedded Linux 下 SPI设备调用请参考这里
  • 热度 21
    2016-2-20 00:13
    1420 次阅读|
    0 个评论
    简介 本文主要基于ARM嵌入式模块系统展示在嵌入式Linux中使用摄像头示例,所采用的模块为 Toradex VF61 ,是一款性价比极高但不包含硬件视频编解码加速的模块,核心处理器为NXP/Freescale Vybrid,Cortex-A5和M4异构双核架构。 1). 目前越来越多的嵌入式系统采用摄像头应用,其中主要有下面几种方式 远程监控:如闭路电视系统,操作人员通过摄像头远程监控某个特定区域,小到一个小区,达到市政公共场所,都可能有这样的应用。 监控视频录制:另外一些监控系统不一定有操作人员一直监控,则会通过录制监控视频的方式在需要的时候调出相关视频进行查阅。 嵌入式视觉系统:嵌入式视觉系统会对视频图片进行处理并提取更多复杂信息,如雷达和城市智能交通应用。 视频传感器:如临床诊断设备会对采集的视频图像进行分析来诊断,智能购物设备通过采集视频图像分析使用者特征来定向推广销售等等。 2). 环境配置 ./ ARM嵌入式模块系统: Toradex VF61 以及 Colibri Eva board,详细的配置使用手册请见 这里 ./ 摄像头 Logitech HD 720p USB摄像头 D-Link DCS-930L IP 摄像头 ./ 软件: Toradex 标准Embedded Linux发布版本V2.4(已预装),详细介绍请见 这里 GStreamer框架,广泛应用于各种多媒体应用开发,可以实现如视频编辑,媒体流以及媒体播放等多媒体应用,同时配合各种插件(包含输入输出单元,过滤器,编解码器等),GStreamer可以支持多种不同媒体库如MP3,FFmpeg等。所需安装包如下: $ opkg update $ opkg install gst-plugins-base-meta gst-plugins-good-meta gst-ffmpeg 查看目前已经安装的插件和单元 $ gst-inspect   GStreamer 元件 (element) 和管道 (Pipeline) 简介 根据《GStreamer Application Development Manual》章节3所述,元件是GStreamer最重要的对象类,它可以被读取,解码以及显示。管道为多个元件互联一起形成的元件链,可以用于一些特定的任务,如视频播放或捕捉。默认情况下GStreamer 包含大量的元件集以便于开发各种各样的多媒体应用。本文中我们会使用一些管道去展示一些元件的使用。 下图是一个基本的用于Ogg播放的管道示例,使用一个分流器和两个分支,一个处理音频,另一个处理视频。可以看到一些元件只有src 衬垫 (pad),另一些只有sink衬垫或者两者都有。 在连接一个管道前,我们同样需要通过 ”gst-inspect” 命令查看所需的插件是否兼容,如下示例查看ffmpegcolorspace 插件。 $ gst-inspect ffmpegcolorspace 基本信息描述 ----------------------------------------------------------- Factory Details:   Long name: FFMPEG Colorspace converter   Class: Filter/Converter/Video   Description: Converts video from one colorspace to another   Author(s): GStreamer maintainers gstreamer-devel@lists.sourceforge.net ----------------------------------------------------------- Src 和 sink 功能描述 ----------------------------------------------------------- SRC template: 'src'     Availability: Always     Capabilities:       video/x-raw-yuv       video/x-raw-rgb       video/x-raw-gray   SINK template: 'sink'     Availability: Always     Capabilities:       video/x-raw-yuv       video/x-raw-rgb       video/x-raw-gray ----------------------------------------------------------- 另如v4l2src元件,它只含有src衬垫功能,所以可以source一个视频流到另一个元件;再有ximagesink元件,它含有rgb格式sink衬垫功能。关于这部分更多详细介绍请关注 这里 。   显示一个视频测试图案 使用下面管道来显示一个视频测试图案 $ gst-launch videotestsrc ! autovideosink 其中autovideosink元件自动检测视频输出,videotestsrc元件可利用”pattern”属性生成多种格式的测试视频,如下面为雪花图案测试视频 $ gst-launch videotestsrc pattern=snow ! autovideosink   USB 摄像头 1). 从USB 摄像头显示视频 摄像头接入系统后,会在/dev目录下面显示对应的设备videox,x可以是0,1,2等等,取决于接入的摄像头数量。 请使用下面管道来全屏显示对应的摄像头视频 $ gst-launch v4l2src device=/dev/videox ! ffmpegcolorspace ! ximagesink // Video4Linux2插件是一个用于捕捉和播放视频的API和驱动框架,它支持多种USB摄像头以及其他设备;元件v4l2src属于Video4Linux2插件,用于读取Video4Linux2设备的视频帧,这里即为USB摄像头。Ffmpegcolorspace元件是一个用于转换多种颜色格式的过滤器,摄像头设备视频数据通常使用YUV颜色格式,而显示器通常使用RGB颜色格式。Ximagesink元件是一个X桌面标准的videosink元件。 在当前情况下,我们可以通过”top”命令看到目前CPU占有率为77.9% 另外,也可以通过设置一些参数来设定显示效果如尺寸,帧率等,如下面示例限定显示尺寸为320x240,此时CPU占有率下降为28.2% $ gst-launch v4l2src device=/dev/videox ! 'video/x-raw-yuv,width=320,height=240,framerate=30/1' ! ffmpegcolorspace ! ximagesink 2). 同时显示两路USB 摄像头 使用下面通道来同时显示两路摄像头,这里我们使用Logitech HD 720P摄像头和另外一种普通的MJPEG摄像头,在这种情况下CPU占用率为64.8%。 $ gst-launch v4l2src device=/dev/videox ! 'video/x-raw-yuv,width=320,height=240,framerate=30/1' ! ffmpegcolorspace ! ximagesink v4l2src device=/dev/video1 'video/x-raw-yuv,width=320,height=240,framerate=30/1' ! ffmpegcolorspace ! ximagesink 3). 录制USB 摄像头视频 使用下面管道来录制MP4格式摄像头视频 $ gst-launch --eos-on-shutdown v4l2src device=/dev/videox ! ffenc_mjpeg ! ffmux_mp4 ! filesink location=video.mp4 //--eos-on-shutdown参数用于正确关闭文件。ffenc_mjpeg元件是MJPEG格式编码器。ffmux_mp4是MP4格式合成器。filesink元件声明来自v4l2的源数据会被存储为文件而不是显示于ximagesink元件,另外也可以任意指定文件存储位置。 在这种情况下录制摄像头视频CPU占有率8%左右。 4). 视频播放 使用下面管道来播放上面录制的视频 $ gst-launch filesrc location=video.mp4 ! qtdemux name=demux demux.video_00 ! queue ! ffdec_mjpeg ! ffmpegcolorspace ! ximagesink //filesrc元件声明视频源数据来自于一个文件而不是视频设备如摄像头。ffdec_mjpeg元件为MJPEG格式解码器。 在这种情况下,由于所录制视频为摄像头最高分辨率,因此CPU占有率为95%左右。 5). 通过HTTP 播放视频 使用下面管道播放特定URL视频 $ gst-launch souphttpsrc location=http://upload.wikimedia.org/wikipedia/commons/4/4b/MS_Diana_genom_Bergs_slussar_16_maj_2014.webm ! matroskademux name=demux demux.video_00 ! queue ! ffdec_vp8 ! ffmpegcolorspace ! ximagesink // souphttpsrc元件用于通过HTTP接收网络数据。和播放本地视频不同,一个存放视频文件的网络地址制定给了location参数。ffdec_vp8元件是webm格式解码器。 在这种情况下,CPU占用率为40%左右。 6). 通过TCP 串流摄像头视频 这里配置串流VF61摄像头视频到另外一台运行Ubuntu Linux主机 VF61 IP = 192.168.0.8 Ubuntu IP = 192.168.0.7 在VF61上面运行下面管道 $ gst-launch v4l2src device=/dev/video1 ! video/x-raw-yuv,width=320,height=240 ! ffmpegcolorspace ! ffenc_mjpeg ! tcpserversink host=192.168.0.7 port=5000 然后在Ubuntu上面运行下面管道来查看视频流 $ gst-launch tcpclientsrc host=192.168.0.8 port=5000 ! jpegdec ! autovideosink 这里使用Logitech HD 720P摄像头,CPU占有率为65%左右。   在 VF61 上面使用 D-Link IP 摄像头 1). 显示摄像头视频 这里使用D-Link DSC-930L 摄像头,并设置视频流为average quality JPEG格式,320x240分辨率,帧率为15/1’,IP = 192.168.0.200 使用下面管道来显示摄像头视频 $ gst-launch -v souphttpsrc location='http://192.168.0.200/video.cgi' is-live=true ! multipartdemux ! decodebin2 ! ffmpegcolorspace ! ximagesink 2). 视频录制 使用下面管道来录制视频 $ gst-launch --eos-on-shutdown –v souphttpsrc location='http://192.168.0.200/video.cgi' is-live=true ! multipartdemux ! decodebin2 ! ffmpegcolorspace ! ffenc_mjpeg ! ffmux_mp4 ! filesink location=stream.mp4 在这种情况下,CPU占有率为40% 左右。 3). 通过TCP 串流视频到另一个IP 地址 这里配置串流IP摄像头视频到VF61,然后再到另外一台运行Ubuntu Linux主机 Ubuntu IP = 192.168.0.12 在VF61上面运行下面管道 $ gst-launch --eos-on-shutdown –v souphttpsrc location='http://192.168.0.200/video.cgi' is-live=true ! multipartdemux ! decodebin2 ! ffmpegcolorspace ! ffenc_mjpeg ! Tcpserversink host=192.168.0.12 port 5000 然后在Ubuntu上面运行下面管道来查看视频流 $ gst-launch tcpclientsrc host=192.168.0.8 port=5000 ! jpegdec ! autovideosink 在这种情况下,VF61 CPU占用率为95% 左右。 总结 本文着重展示了通过GStreamer 元件,管道在Embedded Linux设备上面应用USB或IP摄像头,相关的更多管理使用示例还可以从网络上面找到很多,可以结合本文一起来充分理解相关应用。 本文所做示例下VF61 CPU和MEM占用率比较请见下图,可见NXP/Freescale Vybrid VF61 处理器尽管没有独立的硬件视频处理单元也基本上可以胜任基本的摄像头视频应用,结合其非常有竞争力的成本,使其成为性价比非常高的产品。但是如果对视频处理有更高的要求如嵌入式视觉系统,则建议考虑处理能力更强劲并含有独立GPU的基于NXP/Freescale i.MX6处理器的产品,如Toradex Colibri/Apalis i.MX6 模块。
  • 热度 21
    2016-2-20 00:13
    1517 次阅读|
    0 个评论
    简介 本文主要基于ARM嵌入式模块系统展示在嵌入式Linux中使用摄像头示例,所采用的模块为 Toradex VF61 ,是一款性价比极高但不包含硬件视频编解码加速的模块,核心处理器为NXP/Freescale Vybrid,Cortex-A5和M4异构双核架构。 1). 目前越来越多的嵌入式系统采用摄像头应用,其中主要有下面几种方式 远程监控:如闭路电视系统,操作人员通过摄像头远程监控某个特定区域,小到一个小区,达到市政公共场所,都可能有这样的应用。 监控视频录制:另外一些监控系统不一定有操作人员一直监控,则会通过录制监控视频的方式在需要的时候调出相关视频进行查阅。 嵌入式视觉系统:嵌入式视觉系统会对视频图片进行处理并提取更多复杂信息,如雷达和城市智能交通应用。 视频传感器:如临床诊断设备会对采集的视频图像进行分析来诊断,智能购物设备通过采集视频图像分析使用者特征来定向推广销售等等。 2). 环境配置 ./ ARM嵌入式模块系统: Toradex VF61 以及 Colibri Eva board,详细的配置使用手册请见 这里 ./ 摄像头 Logitech HD 720p USB摄像头 D-Link DCS-930L IP 摄像头 ./ 软件: Toradex 标准Embedded Linux发布版本V2.4(已预装),详细介绍请见 这里 GStreamer框架,广泛应用于各种多媒体应用开发,可以实现如视频编辑,媒体流以及媒体播放等多媒体应用,同时配合各种插件(包含输入输出单元,过滤器,编解码器等),GStreamer可以支持多种不同媒体库如MP3,FFmpeg等。所需安装包如下: $ opkg update $ opkg install gst-plugins-base-meta gst-plugins-good-meta gst-ffmpeg 查看目前已经安装的插件和单元 $ gst-inspect   GStreamer 元件 (element) 和管道 (Pipeline) 简介 根 据《GStreamer Application Development Manual》章节3所述,元件是GStreamer最重要的对象类,它可以被读取,解码以及显示。管道为多个元件互联一起形成的元件链,可以用于一些特 定的任务,如视频播放或捕捉。默认情况下GStreamer 包含大量的元件集以便于开发各种各样的多媒体应用。本文中我们会使用一些管道去展示一些元件的使用。 下图是一个基本的用于Ogg播放的管道示例,使用一个分流器和两个分支,一个处理音频,另一个处理视频。可以看到一些元件只有src 衬垫 (pad),另一些只有sink衬垫或者两者都有。 在连接一个管道前,我们同样需要通过 ”gst-inspect” 命令查看所需的插件是否兼容,如下示例查看ffmpegcolorspace 插件。 $ gst-inspect ffmpegcolorspace 基本信息描述 ----------------------------------------------------------- Factory Details:   Long name: FFMPEG Colorspace converter   Class: Filter/Converter/Video   Description: Converts video from one colorspace to another   Author(s): GStreamer maintainers gstreamer-devel@lists.sourceforge.net ----------------------------------------------------------- Src 和 sink 功能描述 ----------------------------------------------------------- SRC template: 'src'     Availability: Always     Capabilities:       video/x-raw-yuv       video/x-raw-rgb       video/x-raw-gray   SINK template: 'sink'     Availability: Always     Capabilities:       video/x-raw-yuv       video/x-raw-rgb       video/x-raw-gray ----------------------------------------------------------- 另如v4l2src元件,它只含有src衬垫功能,所以可以source一个视频流到另一个元件;再有ximagesink元件,它含有rgb格式sink衬垫功能。关于这部分更多详细介绍请关注 这里 。   显示一个视频测试图案 使用下面管道来显示一个视频测试图案 $ gst-launch videotestsrc ! autovideosink 其中autovideosink元件自动检测视频输出,videotestsrc元件可利用”pattern”属性生成多种格式的测试视频,如下面为雪花图案测试视频 $ gst-launch videotestsrc pattern=snow ! autovideosink   USB 摄像头 1). 从USB 摄像头显示视频 摄像头接入系统后,会在/dev目录下面显示对应的设备videox,x可以是0,1,2等等,取决于接入的摄像头数量。 请使用下面管道来全屏显示对应的摄像头视频 $ gst-launch v4l2src device=/dev/videox ! ffmpegcolorspace ! ximagesink // Video4Linux2插件是一个用于捕捉和播放视频的API和驱动框架,它支持多种USB摄像头以及其他设备;元件v4l2src属于 Video4Linux2插件,用于读取Video4Linux2设备的视频帧,这里即为USB摄像头。Ffmpegcolorspace元件是一个用于 转换多种颜色格式的过滤器,摄像头设备视频数据通常使用YUV颜色格式,而显示器通常使用RGB颜色格式。Ximagesink元件是一个X桌面标准的 videosink元件。 在当前情况下,我们可以通过”top”命令看到目前CPU占有率为77.9% 另外,也可以通过设置一些参数来设定显示效果如尺寸,帧率等,如下面示例限定显示尺寸为320x240,此时CPU占有率下降为28.2% $ gst-launch v4l2src device=/dev/videox ! 'video/x-raw-yuv,width=320,height=240,framerate=30/1' ! ffmpegcolorspace ! ximagesink 2). 同时显示两路USB 摄像头 使用下面通道来同时显示两路摄像头,这里我们使用Logitech HD 720P摄像头和另外一种普通的MJPEG摄像头,在这种情况下CPU占用率为64.8%。 $ gst-launch v4l2src device=/dev/videox ! 'video/x-raw-yuv,width=320,height=240,framerate=30/1' ! ffmpegcolorspace ! ximagesink v4l2src device=/dev/video1 'video/x-raw-yuv,width=320,height=240,framerate=30/1' ! ffmpegcolorspace ! ximagesink 3). 录制USB 摄像头视频 使用下面管道来录制MP4格式摄像头视频 $ gst-launch --eos-on-shutdown v4l2src device=/dev/videox ! ffenc_mjpeg ! ffmux_mp4 ! filesink location=video.mp4 //--eos- on-shutdown参数用于正确关闭文件。ffenc_mjpeg元件是MJPEG格式编码器。ffmux_mp4是MP4格式合成器。 filesink元件声明来自v4l2的源数据会被存储为文件而不是显示于ximagesink元件,另外也可以任意指定文件存储位置。 在这种情况下录制摄像头视频CPU占有率8%左右。 4). 视频播放 使用下面管道来播放上面录制的视频 $ gst-launch filesrc location=video.mp4 ! qtdemux name=demux demux.video_00 ! queue ! ffdec_mjpeg ! ffmpegcolorspace ! ximagesink //filesrc元件声明视频源数据来自于一个文件而不是视频设备如摄像头。ffdec_mjpeg元件为MJPEG格式解码器。 在这种情况下,由于所录制视频为摄像头最高分辨率,因此CPU占有率为95%左右。 5). 通过HTTP 播放视频 使用下面管道播放特定URL视频 $ gst-launch souphttpsrc location=http://upload.wikimedia.org/wikipedia/commons/4/4b/MS_Diana_genom_Bergs_slussar_16_maj_2014.webm ! matroskademux name=demux demux.video_00 ! queue ! ffdec_vp8 ! ffmpegcolorspace ! ximagesink // souphttpsrc元件用于通过HTTP接收网络数据。和播放本地视频不同,一个存放视频文件的网络地址制定给了location参数。ffdec_vp8元件是webm格式解码器。 在这种情况下,CPU占用率为40%左右。 6). 通过TCP 串流摄像头视频 这里配置串流VF61摄像头视频到另外一台运行Ubuntu Linux主机 VF61 IP = 192.168.0.8 Ubuntu IP = 192.168.0.7 在VF61上面运行下面管道 $ gst-launch v4l2src device=/dev/video1 ! video/x-raw-yuv,width=320,height=240 ! ffmpegcolorspace ! ffenc_mjpeg ! tcpserversink host=192.168.0.7 port=5000 然后在Ubuntu上面运行下面管道来查看视频流 $ gst-launch tcpclientsrc host=192.168.0.8 port=5000 ! jpegdec ! autovideosink 这里使用Logitech HD 720P摄像头,CPU占有率为65%左右。   在 VF61 上面使用 D-Link IP 摄像头 1). 显示摄像头视频 这里使用D-Link DSC-930L 摄像头,并设置视频流为average quality JPEG格式,320x240分辨率,帧率为15/1’,IP = 192.168.0.200 使用下面管道来显示摄像头视频 $ gst-launch -v souphttpsrc location='http://192.168.0.200/video.cgi' is-live=true ! multipartdemux ! decodebin2 ! ffmpegcolorspace ! ximagesink 2). 视频录制 使用下面管道来录制视频 $ gst-launch --eos-on-shutdown –v souphttpsrc location='http://192.168.0.200/video.cgi' is-live=true ! multipartdemux ! decodebin2 ! ffmpegcolorspace ! ffenc_mjpeg ! ffmux_mp4 ! filesink location=stream.mp4 在这种情况下,CPU占有率为40% 左右。 3). 通过TCP 串流视频到另一个IP 地址 这里配置串流IP摄像头视频到VF61,然后再到另外一台运行Ubuntu Linux主机 Ubuntu IP = 192.168.0.12 在VF61上面运行下面管道 $ gst-launch --eos-on-shutdown –v souphttpsrc location='http://192.168.0.200/video.cgi' is-live=true ! multipartdemux ! decodebin2 ! ffmpegcolorspace ! ffenc_mjpeg ! Tcpserversink host=192.168.0.12 port 5000 然后在Ubuntu上面运行下面管道来查看视频流 $ gst-launch tcpclientsrc host=192.168.0.8 port=5000 ! jpegdec ! autovideosink 在这种情况下,VF61 CPU占用率为95% 左右。 总结 本文着重展示了通过GStreamer 元件,管道在Embedded Linux设备上面应用USB或IP摄像头,相关的更多管理使用示例还可以从网络上面找到很多,可以结合本文一起来充分理解相关应用。 本 文所做示例下VF61 CPU和MEM占用率比较请见下图,可见NXP/Freescale Vybrid VF61 处理器尽管没有独立的硬件视频处理单元也基本上可以胜任基本的摄像头视频应用,结合其非常有竞争力的成本,使其成为性价比非常高的产品。但是如果对视频处 理有更高的要求如嵌入式视觉系统,则建议考虑处理能力更强劲并含有独立GPU的基于NXP/Freescale i.MX6处理器的产品,如Toradex Colibri/Apalis i.MX6 模块。