Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Jetson Nano 2GB :Utils 的 videoOutput 工具

Jetson Nano 2GB :Utils 的 videoOutput 工具

作者头像
GPUS Lady
发布于 2021-07-12 09:09:24
发布于 2021-07-12 09:09:24
1.2K0
举报
文章被收录于专栏:GPUS开发者GPUS开发者

上一篇文章为大家深入地讲解了 videoSource() 这个非常强大的输入源处理模块,本文的重点将聚焦在 videoOutput() 这个输出标的处理模块。

videoOutput() 与 videoSource() 几乎具备一致的特性。这里直接列出了 videoOutput() 所支持的输出种类与媒体格式:

1. 支持 5 种输出方式:

  • 显示器:“display://0”
  • RTP 视频流:“rtp://<remote_ip>:1234”
  • 视频文件:“完整文件名”,例如 “input.mp4”
  • 图像文件:“完整文件名”,例如 “room_0.jpg”
  • 文件夹:“完整文件夹路径”,当识别到输出类型为“文件夹”时,就会按照流水号递增方式生成文件名

2. 支持 4 种视频输出格式:MKV、MP4、AVI 与 FLV

3. 支持 5 种媒体输出格式:H.264、H.265、VP8、VP9 与 MJPEG

4. 支持 4 种图像格式:JPG、PNG、TGA 与 BMP

5. 自动根据数据源,调用合适的 NVDEC 解码功能

6. 调用 CUDA 核处理大部分基础图像处理任务

我们在前面已经熟悉了将结果输出到显示器上的方式,接下来就来体验其他几种输出方式,这对于将来开发边缘应用是非常有帮助的。要知道绝大部分的边缘计算场景,都是不能在设备上直接连上显示器的,那么此时如何观看该设备上所监控到的视频内容呢?通常就是将输入源所获取的数据,做完深度学习推理识别之后的结果,做以下两种处理方式:

1. 在当地存成视频,然后批次往管理服务区发送,再删除该视频,以保留空间。

2. 将视频流直接转向到其他设备上进行显示。

至于使用哪种方式,必须根据实际场景而定。而本文的重点就是带着大家,对这两种用法进行试验,并借此学会这些使用方法。

我们还是用 10lines.py 代码为基础来进行修改,不过为了节省测试时间,这里会将深度学习推理计算的部分省略掉,只保留 videoSource() 与 videoOutput() 这两部分的代码。修改后的内容如下:

这个 6 行代码,让人看起来非常轻松,却又支持了绝大部分常用的输入、输出形态与格式。

接下来的重点,就是将代码内的 INPUT 与 OUTPUT 做有效的置换,试试以下几种组合状况:

1. 从 CSI 摄像头读入,然后输出存放至 csi.mp4 视频文件,这个相对直观,因此不多做说明。在观察 jetson-stats 时,若输出为视频文件,NVENC 编码器的功能就启动了。

2. 用 VisionWorks 的范例视频 signs.avi 作为输入,输出成个别帧图像到 OUTPUT 目录里。视频长度为 22 秒,输出后生成 44 张图像,就是每 0.5 秒生成一张图像,不过实际生成的数量并不一定,与其他相关参数也有关。

3. 这个组合是本文的重点实验,因为 RTP 视频流转向的实用性非常高,操作较为复杂,必须在发送端与接收端之间进行配合,因此需要花点时间说明并演示。

接下来就进行 RTP 视频流转向的示范步骤:

  • 设备:一台 Jetson Nano 担任 “发送端”,另外需要一台设备执行 “接受端”,这个可以是另一台Jetson设备,也可以是 Windows、MAC 或 Ubuntu 操作系统的 x86电脑。
  • 网络:本实验的发送端与接收端设备,都在内网中的同一个网段。这里的实验用 MicroUSB 线连接 Jetson Nano 2GB 与运行 Ubuntu 操作系统的 x86 电脑,此时Jetson Nano 的 IP 是 192.168.55.1,x86 电脑的 IP 是192.168.55.100,因此就需要将代码中 OUTPUT 部分修改成 “rtp://192.168.55.100:1234”,修改后的完整代码如下:

执行步骤:

1. 在发送端上执行以下指令:

执行过程中会出现如下截屏的摄像头信息内容:

最后停在下面截屏的地方,发送端到这边就不用再去动这个指令框了。

2. 在接收端执行接收的动作:

(1) 在 Ubuntu 操作系统下,可执行以下指令便能直接接收视频流:

正确执行指令后,接收端设备的命令行会停留在如下图的状态:

并且还会跳出一个显示框,需要核对一下显示的内容与 Jetson Nano 上的摄像头是否一致。

发送端与接收端之间的显示,是否出现时间差?取决于网络的质量!

(2) 用 VLC 播放软件,适用于 Windows、Mac、Ubuntu 操作系统:

首先得在接收设备上安装 VLC 播放软件,然后用文字编辑器生成一个 “.sdp” 文件,例如 “rdp.sdp”,里面的内容如下:

同样先在发送端执行 10lines.py 这个代码,然后在接收端用 VLC 播放器打开 rdp.sdp,就可以在 VLC 播放器上显示了。

这样就能很轻松地将 Jetson Nano 2GB 上的摄像头看到的画面,直接透过 RTP 转到 PC 上去呈现。

这时候,如果你打开 Jetson Nano 2GB 的 jetson-stats 监控软件,也会看到左下角“NVDEC”处于执行的状态。

如果我们这时候将 “物件检测” 的推理识别功能打开的话,会出现怎样的结果呢?先将前面代码中的 “#” 部分取消,开启对象检测的功能,执行一次看看就知道,是否如下图一样会出现检测的结果。

好的,到这里为止,是不是已经可以更好地掌握 videoOutput() 的一些用法了呢?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Jetson NANO 2GB:Utils 的 videoSource 工具
前两篇已经用 10 行 Python 代码展现了 Hello AI World 强大而且简便的物件检测识别能力,虽然大部分的人都将目光集中在了深度学习的三大推理识别(图像分类、物件检测、语义分割),但是在整个项目中,其实还有两个非常重要的功臣功能,那就是 videoSource() 与 videoOutput() 这两个专司输入与输出的接口。
GPUS Lady
2021/07/12
8310
利用Jetson Orin NANO实现背景去除与置换功能
由于语义分割的识别计算比图像分类、物体检测等需要更大的计算性能,如果我们想做的并不止于“图片”的置换,想更进一步执行“视频置换背景”的功能(如下图),要达到我们能接收的15FPS以上效果,在Jetson Orin Nano开发套件推出之后,就非常贴合这个应用所需要的计算性。
GPUS Lady
2023/07/08
2980
利用Jetson Orin NANO实现背景去除与置换功能
NVIDIA Jetson NANO 2GB新手入门教程汇总
NVIDIA公众号发布了一系列Jetson NANO 2GB的教程,我们做了一个整理:
GPUS Lady
2021/03/16
2.4K0
NVIDIA Jetson NANO 2GB新手入门教程汇总
在Jetson上玩转大模型Day15:NanoLLM开发平台(4):视觉分析助手
这里可以看出,在终端模式下显示中文的能力不完整,因此会出现乱码。其次系统会识别我们prompt的语种,并用相同语种来做回应,还挺智能的。 现在我们将第二个promt改成“What information in the picture ?”,跑出来的结果如下截屏,回答的非常正确:“1.黄色标志,黑色字体,写着“禁止出口私家路”。图2:一条两边都是草的弯弯曲曲的路。”
GPUS Lady
2024/11/27
1290
在Jetson上玩转大模型Day15:NanoLLM开发平台(4):视觉分析助手
在Jetson NANO 2GB 上运行Hello AI World
我们将用几篇文章为读者讲解 NVIDIA 的 Jetson-inference,这个对于初学者尤为实用。本篇文章就来为大家介绍 Hello AI World。
GPUS Lady
2021/07/12
7970
基于GB/T 28181 标准的监控摄像头视频接入技术
在安防AI领域,遍布城市或建筑内各个角落的摄像头是最边缘的设备,是一切AI处理和应用的数据源头。随着应用范围和场景的扩充,应用中摄像头的数量越来越大,对监控摄像头设备进行集中且有效的管控成为刚需。GB/T 28181标准作为公共安全视频监控联网系统的国家标准,受到海康、大华、英飞拓等国内大部分厂家的支持,协议覆盖摄像头、NVR、管理平台等设备。对GB/T 28181 标准的支持将会扩大各种基于视频处理智慧系统的应用范围,在实际项目中有推广和实用价值。本文提供一个通过GB/T 28181标准获取摄像头视频的演示样例,并通过样例展开所涉及到的其他内容,若因水平或对标准的认知有限导致内容有误,请指出。点击查看标准完整文本: 公共安全视频监控联网系统信息传输、交换、控制技术要求。
谢盼
2019/01/15
22.9K3
基于GB/T 28181 标准的监控摄像头视频接入技术
在Jetson NANO 2GB上运行10行代码的威力
在上一篇文章中,我们为大家介绍了 Hello AI World 环境安装,本篇文章将会带着大家感受 10 行代码的威力。
GPUS Lady
2021/07/12
1.2K0
NVIDIA Jetson NANO 2GB: DeepStream 简介与启用
NVIDIA所提供的开发资源,大多属于库(library)或API级别,包括CUDA、CUDNN、CuFFT、CuBLAS、TensorRT等,需要具备足够的C++/Python编程语言基础的开发人员,才有能力发去挥GPU/CUDA的并行计算优势,这个特性某种程度限制了并行计算相关应用的普及。
GPUS Lady
2021/08/03
1.4K0
NVIDIA Jetson NANO 2GB: DeepStream 简介与启用
在Jetson NANO 2GB 上安装Hello AI World环境
上一篇系列文章向大家介绍了 Hello AI World 在Jetson NANO 2GB 上运行Hello AI World。
GPUS Lady
2021/07/12
8340
Jetson Nano心得分享:学习计算机视觉技术
视觉类与对话类是人工智能技术的两个最重要应用领域,尽管ChatGPT引发对话类人工智能应用风潮,但视觉类的智能应用依旧是边缘应用的重点,为我们识别并收集边缘角落的各种信息。
GPUS Lady
2023/05/30
5890
Jetson Nano心得分享:学习计算机视觉技术
关于 NVDIA Jetson NANO常见问题汇总
一般用户会安装树莓派摄像头(芯片为IMX219)菜鸟手册(2):给Jetson Nano安装树莓派摄像头
GPUS Lady
2019/09/27
9.4K0
关于 NVDIA Jetson NANO常见问题汇总
在Jetson上玩转大模型Day15:NanoLLM开发平台(4):视觉分析助手
我们前面应用NanoLLM开发平台,已经很轻松地创造出语音对话助手、多模态识别等应用,本篇文章要更进一步调用NanoLLM的视频相关API,搭配合适的大语言模型,来对视频档或摄像头获取的内容进行动态分析功能。
GPUS Lady
2024/11/26
2440
Jetson Nano心得分享:对机电设备的控制
边缘应用中,机电控制是一项非常重要的能力。当我们的智能设备在远端环境中,根据所识别的状况变化去执行应对措施,更大程度度地降低对人为操作的依赖,这些都是能产生更大经济效益的应用,包括无人驾驶车、自动机械手臂等等。
GPUS Lady
2023/07/08
1.4K0
Jetson Nano心得分享:对机电设备的控制
Jetson Nano 从入门到实战(案例:Opencv配置、人脸检测、二维码检测)
Jetson Nano是一款体积小巧、功能强大的人工智能嵌入式开发板,于2019年3月由英伟达推出。预装Ubuntu 18.04LTS系统,搭载英伟达研发的128核Maxwell GPU,可以快速将AI技术落地并应用于各种智能设备。相比于Jetson之前的几款产品(Jetson TK1、Jetson TX1、Jetson TX2、Jetson Xavier),Jetson Nano售价仅需99美元,大幅减少了人工智能终端的研发成本。因此,一经推出,便受到了广泛的关注。其官网地址为:Jetson Nano Developer Kit for AI and Robotics | NVIDIA
全栈程序员站长
2022/06/24
16.1K0
Jetson Nano 从入门到实战(案例:Opencv配置、人脸检测、二维码检测)
看这个天才老爸如何用Jetson NANO做一个带娃机器人
这位细心的爸爸发现,虽然宝宝还不太会说话,但特别喜欢指着一些图案试图跟爸爸妈妈说这是什么,比如电视录像里的动物、海报上的食物,画册上的卡通图案。
GPUS Lady
2020/06/23
2.6K0
用Jetson NANO做个AI“云监工”
跟工程师讨论后,就开始行动起来,我们第一反应是在Jetson NANO上利用NVIDIA Deepstream SDK快速搭一个DEMO环境出来。
GPUS Lady
2020/02/17
2.3K1
用Jetson NANO做个AI“云监工”
用Jetson NANO做个智能电视机,这个操作有点意思
印度有个小哥哥用Jetson NANO做了一个智能电视机,怎么个智能法儿呢? 各位请看—— 走到电视机面前,电视就正常播放,离开电视机,电视就暂停 http://mpvideo.qpic.cn/0b
GPUS Lady
2020/10/28
1.4K0
用Jetson NANO做个智能电视机,这个操作有点意思
Jetson上调用多个USB摄像头的方法
日前有朋友在 Xavier Orion 上要调用3个USB摄像头,发现只能正常启动2个,感到有些困扰,是否Jetson设备有数量限制? 其实问题的症结在于这位朋友使用OpenCV的方式调用,这种方式虽然上手容易,但是对资源消耗程度比较大,也需要开发者对摄像头一些硬件参数有足够深入的掌握,否则出错率较高。 为了协助更多开发者能有效用起Jetson上的计算资源,这里提供两种能同时调用4个不同规格USB摄像头的方法: 1. 使用英伟达”Hello AI World” 项目的videoSource()函数: 项目
GPUS Lady
2022/05/12
2.9K0
Jetson上调用多个USB摄像头的方法
NVIDIA Jetson NANO 2GB: DeepStream 初体验
前一篇文章为大家讲述了 DeepStream 的应用定位、单机工作流、实际部署图,以及完整的软件栈的内容,可以对其有一个框架性的了解。接下来大家可以思考一下,DeepStream 可以开发什么应用?
GPUS Lady
2021/08/03
1K0
NVIDIA Jetson NANO 2GB: DeepStream 初体验
时代的浪潮平等的卷死每一个人-EOF的Jetson Nano 2GB
我在箱子里面找到了一块Jetson Nano 2GB(下文全称为Nano),然后就查了查资料。但是2GB已经没有卖了,在官网进入了EOF,所以2GB也是遗孀了。
云深无际
2025/01/08
660
时代的浪潮平等的卷死每一个人-EOF的Jetson Nano 2GB
推荐阅读
相关推荐
Jetson NANO 2GB:Utils 的 videoSource 工具
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档