当前位置: 首页 > news >正文

【技术分享】RK356X Ubuntu 推流USB摄像头

本文适用与触觉智能所有RK356X ubuntu系统的主板。

IDO-SBC3566基于瑞芯微RK3566研发的一款高性能低功耗的智能主板,采用四核A55,主频高达1.8GHz,专为个人移动互联网设备和AIOT设备而设计,内置了多种功能强大的嵌入式硬件引擎,为高端应用提供了优异的性能,支持几乎全格式的4K编解码,内置3DGPU,能够完全兼容OpenGL ES1.1/2.0/3.2、OpenCL2.0和Vulkan1.0.特殊的MMU2D硬件引擎,此外,凭借其强大的兼容性,可以轻松地转换基于TensorFlow/MXNet/PyTorch/Caffe等一系列框架的网络模型。

支持Android,Linux,OpenHarmony,麒麟OS等多种操作系统,可广泛应用于平板、教育平板、带屏音箱、词典笔、云终端、视频会议系统等安卓/Linux类应用方案,以及其他带屏消费类、或轻量级AI应用场景。

产品规格书查看深圳触觉智能官网-产品中心

01 确认USB摄像头设备节点

主板接上USB摄像头后,使用以下命令查看USB摄像头的设备节点:

root@ido:~# v4l2-ctl --list-devices
rkisp-statistics (platform: rkisp):/dev/video7/dev/video8rkisp_mainpath (platform:rkisp-vir0):/dev/video0/dev/video1/dev/video2/dev/video3/dev/video4/dev/video5/dev/video6/dev/media0AC_2019053011080005: ZH-0305 (usb-xhci-hcd.4.auto-1):/dev/video9/dev/video10/dev/media1

video9即为USB摄像头的设备节点。

02 查看USB摄像头支持的图像格式

root@ido:~# v4l2-ctl -d /dev/video9 --list-formats-ext --all
...
...
...
ioctl: VIDIOC_ENUM_FMTType: Video Capture[0]: 'MJPG' (Motion-JPEG, compressed)Size: Discrete 1024x576Interval: Discrete 0.033s (30.000 fps)Size: Discrete 1280x720Interval: Discrete 0.033s (30.000 fps)Size: Discrete 896x504Interval: Discrete 0.033s (30.000 fps)Size: Discrete 800x600Interval: Discrete 0.033s (30.000 fps)Size: Discrete 640x480Interval: Discrete 0.033s (30.000 fps)[1]: 'YUYV' (YUYV 4:2:2)Size: Discrete 1280x720Interval: Discrete 0.100s (10.000 fps)Size: Discrete 1024x576Interval: Discrete 0.067s (15.000 fps)Size: Discrete 896x504Interval: Discrete 0.100s (10.000 fps)Size: Discrete 800x600Interval: Discrete 0.067s (15.000 fps)Size: Discrete 640x480Interval: Discrete 0.033s (30.000 fps)

可以看到,该USB摄像头支持MPEG格式最高1280x720@30FPS输出。

03推流到电脑上

RK356X主板将USB摄像头图像推流到电脑上显示。

3.1 主板安装gst-rtsp插件
 

apt install gstreamer1.0-rtsp
apt install gstreamer1.0-rtsp

3.2 主板安装mediamtx

mediamtx是一个rtsp server程序

root@ido:/home/ido# tar -xvf mediamtx_v1.1.1_linux_arm64v8.tar.gz
mediamtx
mediamtx.yml
LICENSE
root@ido:/home/ido# ./mediamtx &
[1] 1315
root@ido:/home/ido# 2023/10/20 02:56:04 INF MediaMTX v1.1.1
2023/10/20 02:56:04 INF [RTSP] listener opened on :8554 (TCP), :8000 (UDP/RTP), :8001 (UDP/RTCP)
2023/10/20 02:56:04 INF [RTMP] listener opened on :1935
2023/10/20 02:56:04 INF [HLS] listener opened on :8888
2023/10/20 02:56:04 INF [WebRTC] listener opened on :8889 (HTTP)
2023/10/20 02:56:04 INF [SRT] listener opened on :8890 (UDP)

mediamtx安装包可到以下链接下载:
链接:https://pan.baidu.com/s/1CXrk7eJIkUJKD4tK1SkFAA?pwd=1234

提取码:1234

3.3 主板开始RTSP推流

查看主板的IP地址:

root@ido:/home/ido# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.1.196  netmask 255.255.255.0  broadcast 192.168.1.255inet6 fe80::d079:b6fc:c367:fea6 prefixlen 64  scopeid 0x20<link>ether 86:41:8a:06:1d:7c txqueuelen 1000  (Ethernet)RX packets 52836  bytes 38891607 (38.8 MB)RX errors 0  dropped 1  overruns 0  frame 0TX packets 885065  bytes 1255645741 (1.2 GB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0device interrupt 40lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop txqueuelen 1000  (Local Loopback)RX packets 284667  bytes 313713612 (313.7 MB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 284667  bytes 313713612 (313.7 MB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

使用gst-launch-1.0工具进行RTSP推流:

gst-launch-1.0 v4l2src device=/dev/video9 \! image/jpeg ! avdec_mjpeg ! videoconvert \! video/x-raw,height=720,width=1280,frame=30/1,format=NV12 ! mpph264enc \! rtspclientsink location=rtsp://127.0.0.1:8554/stream

3.4 电脑播放

电脑打开VLC软件,点击【媒体】->【打开网络串流】->【网络】,并输入主板的RTSP推流地址和端口,然后点击播放:


点击播放按钮后,即可看到USB摄像头的图像了:

04推流到RK356X主板

RK356X主板A将USB摄像头推流到RK356X主板B上播放。

4.1 主板A安装gst-rtsp插件

sudo apt install gstreamer1.0-rtsp

4.2 主板A安装mediamtx

sudo apt install gstreamer1.0-rtsp

4.2 主板A安装mediamtx

mediamtx是一个rtsp server程序

sudo apt install gstreamer1.0-rtsp
root@ido:/home/ido# tar -xvf mediamtx_v1.1.1_linux_arm64v8.tar.gz
mediamtx
mediamtx.yml
LICENSE
root@ido:/home/ido# ./mediamtx &
[1] 1315
root@ido:/home/ido# 2023/10/20 02:56:04 INF MediaMTX v1.1.1
2023/10/20 02:56:04 INF [RTSP] listener opened on :8554 (TCP), :8000 (UDP/RTP), :8001 (UDP/RTCP)
2023/10/20 02:56:04 INF [RTMP] listener opened on :1935
2023/10/20 02:56:04 INF [HLS] listener opened on :8888
2023/10/20 02:56:04 INF [WebRTC] listener opened on :8889 (HTTP)
2023/10/20 02:56:04 INF [SRT] listener opened on :8890 (UDP)

mediamtx安装包可到以下链接下载:
链接:https://pan.baidu.com/s/1CXrk7eJIkUJKD4tK1SkFAA?pwd=1234

提取码:1234

4.3 主板A开始RTSP推流

查看主板A的IP地址:

root@ido:/home/ido# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.1.196  netmask 255.255.255.0  broadcast 192.168.1.255inet6 fe80::d079:b6fc:c367:fea6 prefixlen 64  scopeid 0x20<link>ether 86:41:8a:06:1d:7c txqueuelen 1000  (Ethernet)RX packets 52836  bytes 38891607 (38.8 MB)RX errors 0  dropped 1  overruns 0  frame 0TX packets 885065  bytes 1255645741 (1.2 GB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0device interrupt 40lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop txqueuelen 1000  (Local Loopback)RX packets 284667  bytes 313713612 (313.7 MB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 284667  bytes 313713612 (313.7 MB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

使用gst-launch-1.0工具进行RTSP推流:

gst-launch-1.0 v4l2src device=/dev/video9 \! image/jpeg ! avdec_mjpeg ! videoconvert \! video/x-raw,height=720,width=1280,frame=30/1,format=NV12 ! mpph264enc \! rtspclientsink location=rtsp://127.0.0.1:8554/stream

4.4 主板B拉流并播放

root@ido:~# gst-launch-1.0 playbin uri=rtsp://192.168.1.196:8554/stream
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Progress: (open) Opening Stream
Progress: (connect) Connecting to rtsp://192.168.1.196:8554/stream
Progress: (open) Retrieving server options
Progress: (open) Retrieving media info
Progress: (request) SETUP stream 0
Progress: (open) Opened Stream
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Progress: (request) Sending PLAY request
Progress: (request) Sending PLAY request
Progress: (request) Sent PLAY request
mpp[1359]: mpp_rt: NOT found ion allocator
mpp[1359]: mpp_rt: found drm allocator
mpp[1359]: mpp_info: mpp version: 49f29006 author: Jeffy Chen 2021-08-04 [drm]: Add mmap flag detection
mpp[1359]: hal_h264d_vdpu34x: control info: fmt 7, w 1280, h 720
mpp[1359]: mpp_buf_slot: set frame info: w 1280 h 720 hor 1280 ver 720
mpp[1359]: mpp_dec: setting default w 1280 h 720 h_str 1280 v_str 720
mpp[1359]: h264d_api: is_avcC=1

相关文章:

【技术分享】RK356X Ubuntu 推流USB摄像头

本文适用与触觉智能所有RK356X ubuntu系统的主板。 IDO-SBC3566基于瑞芯微RK3566研发的一款高性能低功耗的智能主板&#xff0c;采用四核A55,主频高达1.8GHz&#xff0c;专为个人移动互联网设备和AIOT设备而设计&#xff0c;内置了多种功能强大的嵌入式硬件引擎&#xff0c;为…...

介绍一下rabbitMq应用场景

任务队列&#xff1a;RabbitMQ可以将待处理的任务放入队列中&#xff0c;再由多个工作进程异步地执行这些任务。 日志处理&#xff1a;RabbitMQ可以通过发布-订阅模式将日志消息分发到多个消费者&#xff0c;并可以灵活地控制消息的优先级和过滤条件。 实时消息处理&#xff…...

IoT 物联网共享充电桩场景中设备资产定位和地理围栏开发实践

基于经纬度的设备资产定位和地理围栏在物联网场景中应用广泛 01 物联网 GEO 场景架构方案 首先&#xff0c;IoT 终端设备通过卫星定位模块获取当前经纬度&#xff1b;然后&#xff0c;将坐标信息实时上报到物联网平台&#xff1b;最后&#xff0c;存储到 Redis GEO 数据库中。 …...

【Qt进阶之自定义控件】使用QListWidget实现自定义Item效果

目的 Q&#xff1a;如何在Qt库的基础上&#xff0c;实现自定义控件呢&#xff1f; A&#xff1a;根据官方文档回答&#xff0c;就是继承需实现的控件&#xff0c;然后实现自定义功能。 以下是实现QListWidget控件的自定义item。 先看下最终效果是如何&#xff1a; listItem 主…...

【iOS】UITableView总结(Cell的复用原理、自定义Cell、UITableViewCell协议方法)

UITableView 列表的特点&#xff1a; 数据量大样式较为统一通常需要分组垂直滚动通常可视区只有一个 -> 视图的复用 UITableViewDataSource UITableView作为视图&#xff0c;只负责展示&#xff0c;协助管理&#xff0c;不管理数据 需要开发者为UITableView提供展示所需…...

shell之常见网络命令介绍

shell之常见网络命令介绍 1&#xff09;ifconfig 用于配置网络接口。可以用于开启、关闭和设置网络接口的参数&#xff0c;如IP地址、子网掩码、MAC地址等。 ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up上述命令将设置eth0网络接口的IP地址为192.168.1.1&#xff0c;子…...

Android屏幕刷新机制

基础知识 CPU运行在Android设备上的中央处理器&#xff08;Central Processing Unit&#xff09;是Android设备的核心组件之一&#xff0c;负责执行计算和控制设备的各种操作。 Android设备上的CPU通常采用ARM架构&#xff0c;如ARM Cortex-A系列处理器。这些处理器具有高性能…...

Python学习第3天-第一个Python程序

文章目录 前言一、创建项目二、创建程序总结 前言 下面给大家展示下经典的Hello World! 一、创建项目 二、创建程序 print("Hello World!")总结 回到顶部 学习网站 欢迎来到Python的世界&#xff01;...

Golang网络

golang游戏服务器框架 在Go语言中,有许多优秀的游戏服务器框架,以下是一些比较流行的框架: Leaf:一个轻量级的游戏服务器框架,支持多进程、分布式、热更新等特性。它提供了一些常用的组件,如网络层、定时器、数据库等等,可以帮助开发者快速构建游戏服务器。go-ethereum…...

[swift刷题模板] 树状数组(BIT/FenwickTree)

[TOC]([swift刷题模板] 树状数组(BIT/FenwickTree) ) 一、 算法&数据结构 1. 描述 [python刷题模板] 树状数组 二、 模板代码 1. 单点赋值(增加)&#xff0c;区间求和(PURQ) 例题: 307. 区域和检索 - 数组可修改 class BIT {var c: [Int]var n: Int init(_ n: Int){c…...

​CUDA学习笔记(三)CUDA简介

本篇博文转载于https://www.cnblogs.com/1024incn/tag/CUDA/&#xff0c;仅用于学习。 前言 线程的组织形式对程序的性能影响是至关重要的&#xff0c;本篇博文主要以下面一种情况来介绍线程组织形式&#xff1a; 2D grid 2D block 线程索引 矩阵在memory中是row-major线性…...

RK3568笔记三:基于ResNet18的Cifar-10分类识别训练部署

若该文为原创文章&#xff0c;转载请注明原文出处。 本篇文章参考的是野火-lubancat的rk3568教程&#xff0c;本篇记录了在正点原子的ATK-DLK3568部署。 一、介绍 ResNet18 是一种卷积神经网络&#xff0c;它有 18 层深度&#xff0c;其中包括带有权重的卷积层和全连接层。它…...

块状数据结构学习笔记

分块 分块的思想和珂朵莉树很类似&#xff0c;就是把原序列分成若干个块&#xff0c;对块进行操作的奇妙思想。复杂度通常带根号。分块的块长也有讲究&#xff0c;通常对于大小为 n n n 的数组&#xff0c;取距离 n \sqrt n n ​ 最近的 2 2 2 的幂数或直接取 n \sqrt n n…...

DOM4J解析.XML文件

<?xml version"1.0" encoding"utf-8" ?> <books><book id"SN123123413241"><name>java编程思想</name><author>华仔</author><price>9.9</price></book><book id"SN1234…...

黑豹程序员-架构师学习路线图-百科:MVC的演变终点SpringMVC

MVC发展史 在我们开发小型项目时&#xff0c;我们代码是混杂在一起的&#xff0c;术语称为紧耦合。 如最终写ASP、PHP。里面既包括服务器端代码&#xff0c;数据库操作的代码&#xff0c;又包括前端页面代码、HTML展现的代码、CSS美化的代码、JS交互的代码。可以看到早期编程就…...

二、BurpSuite Intruder暴力破解

一、介绍 解释&#xff1a; Burp Suite Intruder是一款功能强大的网络安全测试工具&#xff0c;它用于执行暴力破解攻击。它是Burp Suite套件的一部分&#xff0c;具有高度可定制的功能&#xff0c;能够自动化和批量化执行各种攻击&#xff0c;如密码破解、参数枚举和身份验证…...

solidworks 2024新功能之-让您的工作更加高效

您可以创建杰出的设计&#xff0c;并将这些杰出的设计将融入产品体验中。为了帮您简化和加快由概念到成品的产品开发流程&#xff0c;SOLIDWORKS 2024 涵盖全新的用户驱动型增强功能&#xff0c;致力于帮您实现更智能、更快速地与您的团队和外部合作伙伴协同工作。 SOLIDWORKS…...

华为eNSP配置专题-VRRP的配置

文章目录 华为eNSP配置专题-VRRP的配置0、参考文档1、前置环境1.1、宿主机1.2、eNSP模拟器 2、基本环境搭建2.1、基本终端构成和连接 2.VRRP的配置2.1、PC1的配置2.2、接入交换机acsw的配置2.3、核心交换机coresw1的配置2.4、核心交换机coresw2的配置2.5、配置VRRP2.6、配置出口…...

LuatOS-SOC接口文档(air780E)--lcd - lcd驱动模块

常量 常量 类型 解释 lcd.font_opposansm8 font 8号字体 lcd.font_unifont_t_symbols font 符号字体 lcd.font_open_iconic_weather_6x_t font 天气字体 lcd.font_opposansm10 font 10号字体 lcd.font_opposansm12 font 12号字体 lcd.font_opposansm16 font…...

敏捷是怎么提高工作效率的

敏捷管理是一门极力减少不必要工作量的艺术。 谷歌、亚马逊、苹果、微信、京东等全球 500 强企业都在用的管理方法&#xff0c;适用于各行各业&#xff0c;被盛赞为应获“管理学的诺贝尔奖”。 它专注于让员工不受种种杂事的羁绊&#xff0c;激发个体斗志&#xff0c;释放出巨大…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

mac:大模型系列测试

0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何&#xff0c;是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试&#xff0c;是可以跑通文章里面的代码。训练速度也是很快的。 注意…...

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备&#xff0c;并且图标都没了 错误案例 往上一顿搜索&#xff0c;试了很多博客都不行&#xff0c;比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动&#xff0c;重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...

论文阅读:Matting by Generation

今天介绍一篇关于 matting 抠图的文章&#xff0c;抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法&#xff0c;已经有很多的工作和这个任务相关。这两年 diffusion 模型很火&#xff0c;大家又开始用 diffusion 模型做各种 CV 任务了&am…...

前端开发者常用网站

Can I use网站&#xff1a;一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use&#xff1a;Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站&#xff1a;MDN JavaScript权威网站&#xff1a;JavaScript | MDN...