使用RTSP将笔记本摄像头的视频流推到开发板

一、在Windows端安装ffmpeg

1. 下载ffmpeg:下载ffmpeg

解压ffmpeg-master-latest-win64-gpl.zip

bin 目录下是 dll 动态库 , 以及 可执行文件 ;将 3 33 个可执行文件拷贝到 " C:\Windows " 目录下 ,将所有的 " .dll " 动态库拷贝到 " C:\Windows\System32 " 目录下 。

 在Windows下使用命令窗口使用ffmpeg -version查看版本

出现版本信息说明安装成功

二、下载rtsp服务器

1.rtsp下载

下载链接:Releases · bluenviron/mediamtx · GitHub

需要下载Windows和Linux两个版本,下载最新版本的就可以,将Linux版本通过FileZilla传送到鲁班猫4开发板中

三、在Linux中安装 VLC

1. Windows中下载VLC(在Windows中拉流会使用到):Official download of VLC media player, the best Open Source player - VideoLAN

在Linux中使用以下命令进行安装

sudo apt update
sudo apt install vlc

2. 在Linux中使用以下命令安装ffmpeg

sudo apt update
sudo yum install ffmpeg

四、查看本地摄像头的名称 

通过命令行获取摄像头设备名称

ffmpeg -list_devices true -f dshow -i dummy

五、测试效果

1. 打开下载的rtsp服务器文件,双击mediamtx.exe可执行文件,会跳出命令窗口,开启rtsp服务

 2. 打开新的命令窗口,执行以下命令

ffmpeg -f dshow -i video="HP 5MP Camera" -vcodec libx264 -r 30 -f rtsp rtsp://192.168.1.xxx:8554/camera_test   //IP地址设置为开发板的IP

 以下是对上面的命令参数的解释

ffmpeg:这是启动FFmpeg程序的命令。-f dshow:-f表示指定输入格式,dshow是DirectShow的缩写,它是一个在Windows上使用的多媒体框架。在Linux系统上,这可能对应于v4l2(Video4Linux 2)或其他用于视频捕获的框架。-i video="HP 5MP Camera":-i表示输入文件,这里指定了视频设备名称为“HP 5MP Camera”。这个名称应该与你的系统中摄像头的名称相匹配。如果不确定,可以使用ffmpeg -f dshow -list_devices true -i dummy来列出所有可用的设备。-vcodec libx264:指定视频编解码器为libx264,这是一个开源的H.264编解码器。-r 30:设置视频的帧率为每秒30帧。-f rtsp:-f再次出现,这次指定输出格式为RTSP。rtsp://192.168.1.xxx:8554/camera_test:这是RTSP服务器的URL,包括服务器的IP地址(在这个例子中是192.168.1.xxx),端口号(这里是8554),以及流的路径或标识符(这里是/camera_test)。

 出现以上界面,说明FFmpeg正在使用libx264编码器将视频以H.264格式编码,并通过RTSP协议发送到指定的网络地址。

3.   在开发板中执行以下命令

./mediamtx

打开新的命令窗口,使用以下命令在Linux上使用 ffplay 接收RTSP视频流:

ffplay rtsp://10.19.15.xxx:8554/camera_test //此处的IP为开发板的IP

 可以看到开发板会跳出一个视频窗口,如下所示:

由于RTSP(Real-Time Streaming Protocol,实时流媒体传输协议)本身并不是一个“无延迟”协议,因此在使用RTSP进行视频传输时通常会有一定的延迟。 

如果要保存接收的视频片段用于后续的目标检测,可以使用使用以下命令

ffmpeg -i udp://@:8554 -c copy -map 0 -f segment -segment_time 60 -reset_timestamps 1 -strftime 1 "output_%Y-%m-%d_%H-%M-%S.mp4"

以下是对上面命令中参数的解释 

-i udp://@:8554: 指定输入为UDP流,监听在本地端口8554上。
-c copy: 使用“拷贝”方式进行编码,即直接复制输入流,不进行重新编码,以保持原始流的质量。
-map 0: 映射所有输入流到输出。
-f segment: 指定输出格式为分段文件,每个片段是一个独立的视频文件。
-segment_time 60: 指定每个片段的时长为60秒。
-reset_timestamps 1: 重置时间戳以防止时间戳溢出。
-strftime 1 "output_%Y-%m-%d_%H-%M-%S.mp4": 使用时间戳格式化文件名,其中%Y-%m-%d_%H-%M-%S表示年-月-日_时-分-秒的格式,并以此为基础生成输出文件名,例如output_2024-04-30_12-30-00.mp4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/317228.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据挖掘之基于K近邻算法的原油和纳斯达克股票数据预测分析

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 在当今日益复杂的金融市场中,准确地预测原油价格和纳斯达克股票市场的走势对于投资者、政…

Python 与 TensorFlow2 生成式 AI(四)

原文:zh.annas-archive.org/md5/d06d282ea0d9c23c57f0ce31225acf76 译者:飞龙 协议:CC BY-NC-SA 4.0 第九章:文本生成方法的崛起 在前几章中,我们讨论了不同的方法和技术来开发和训练生成模型。特别是在第六章“使用 …

易查分如何使用导出PDF功能?

易查分的导出PDF文件功能可以将查询结果下载到本地,也可用于打印出纸质资料。老师和学生家长都可以自主导出PDF文件,下面就来教大家如何使用此功能。 📌老师如何导出PDF? 在查询管理页,点击管理按钮-导出,可…

人工智能分割分类model:nnUnet-paddle

文章目录 神经网络nnUnet和paddle都需要在Ubuntu下进行安装PaddleProject 神经网络 开源来自https://github.com/MIC-DKFZ/nnUNet 自建了仓库,但还不会用 来自 mmsegmentation有空去了解 . MICCAI 2020 也是用到这个网络 paddle上的是不是不能用… nnUnet和pad…

机器学习/算法工程师面试题目与答案-深度学习部分1

机器学习/算法工程师面试题目与答案-深度学习部分 BatchNormalization的作用梯度消失循环神经网络,为什么好?什么是GroupConvolution什么是RNN模型不收敛的原因图像处理中锐化和平滑的操作VGG使用3*3卷积核的优势是什么?Relu比Sigmoid的效果好在哪里?神经网络中权…

Apache Doris 2.x 版本【保姆级】安装+使用教程

Doris简介 Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于…

深入解析yolov5,为什么算法都是基于yolov5做改进的?(一)

YOLOv5简介 YOLOv5是一种单阶段目标检测算法,它在YOLOv4的基础上引入了多项改进,显著提升了检测的速度和精度。YOLOv5的设计哲学是简洁高效,它有四个版本:YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,分别对应不同的模型大小…

【MySQL】MVCC的实现原理

【MySQL】MVCC的实现原理 MVCC简介事务的隔离级别读未提交(Read Uncommitted)概念分析 读已提交(Read Committed)概念分析结论 可重复读(Repeatable Read)概念分析结论 串行化(Serializable &am…

WebSocket 深入浅出

WebSocket 深入浅出 1. WebSocket 是什么2. WebSocket 建立连接通信的过程3. WebSocket 和http的联系与区别4. WebSocket 的使用场景及限制 1. WebSocket 是什么 定义:WebSocket 是一种网络通信协议,它允许在单个TCP连接上进行全双工通信。是HTML5规范提…

Scala 多版本下载指南

Scala,这一功能丰富的编程语言,结合了面向对象和函数式编程的精华,为开发者提供了强大的工具来构建高效、可扩展的应用程序。随着Scala社区的不断壮大和技术的演进,多个版本的Scala被广泛应用于不同的项目与场景中。本文旨在为您提…

可重构柔性装配产线:AI边缘控制技术的崭新探索

在信息化和智能化浪潮的推动下,制造业正面临着前所未有的转型升级挑战。其中,可重构柔性装配产线以其独特的AI边缘控制技术,为制造业的智能化转型提供了新的解决方案。 可重构柔性装配产线是基于AI工业控制与决策平台打造的智能化生产系统。…

2024五一数学建模竞赛(五一赛)选题建议+初步分析

提示&#xff1a;DS C君认为的难度&#xff1a;B>A>C&#xff0c;开放度&#xff1a;AB<C。 以下为A-C题选题建议及初步分析&#xff1a; A题&#xff1a;钢板最优切割路径问题 l 难度评估&#xff1a;中等难度。涉及数学建模和优化算法&#xff0c;需要设计最优的…

STM32 工程移植 LVGL:一步一步完成

STM32 工程移植 LVGL&#xff1a;一步一步完成 LVGL&#xff0c;作为一款强大且灵活的开源图形库&#xff0c;专为嵌入式系统GUI设计而生&#xff0c;极大地简化了开发者在创建美观用户界面时的工作。作为一名初学者&#xff0c;小编正逐步深入探索LVGL的奥秘&#xff0c;并决…

3.C++动态内存管理(超全)

目录 1 .C/C 内存分布 2. C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free 3. C内存管理方式 3.1 new/delete操作内置类型 3.2 new和delete操作自定义类型 3.3 operator new函数 3.4 定位new表达式(placement-new) &#xff08;了解&#xff09; 4. 常…

java-springmvc 01 补充 javaweb 三大组件Servlet,Filter、Listener(源码都是tomcat8.5项目中的)

01.JavaWeb三大组件指的是&#xff1a;Servlet、Filter、Listener,三者提供不同的功能 这三个在springmvc 运用很多 Servlet 01.Servlet接口&#xff1a; public interface Servlet {/*** 初始化方法* 实例化servlet之后&#xff0c;该方法仅调用一次 * init方法必须执行完…

SpringCloud(微服务介绍,远程调用RestTemplate,注册中心Nacos,负载均衡Ribbon,环境隔离,进程和线程的区别)【详解】

目录 一、微服务介绍 1. 系统架构的演变 1 单体架构 2 分布式服务 3 微服务 2. SpringCloud介绍 SpringCloud简介 SpringCloud版本 3. 小结 二、远程调用RestTemplate【理解】 1. 服务拆分 1 服务拆分原则 2 服务拆分示例 1) 创建父工程 2) 准备用户服务 1. 用户…

Kubernetes TDengine 系列|安装 TDengine 的 Grafana 插件|Grafana监控TDengine数据

为了让Grafana 能够监控到TDengine 数据&#xff0c;快速集成搭建数据监测报警系统&#xff0c;所以直接安装TDengine 插件。 目录 一、安装 TDengine 的 Grafana 插件1、下载TDengine grafana插件2、解压到指定目录3、配置未签名插件 二、配置数据源&#xff0c;简单查询TDen…

python的输入输出(爽文,备忘,查询,友好)

Python中的输入输出主要涉及到输入函数和输出函数。 输出函数&#xff1a;print() print() 函数用于将信息输出到屏幕上。它可以输出字符串、变量的值&#xff0c;以及其他各种数据类型。 name "Alice" age 30 print("姓名:", name, "年龄:&quo…

气象数据nc数据矢量化处理解析及可视化

气象数据可视化是将气象学领域中复杂的数据集转化为图形或图像的过程&#xff0c;以直观展示天气现象、气候模式、趋势和预报结果。气象数据的可视化技术广泛应用于科学研究、气象预报、航空、航海、农业生产、灾害预警系统、城市规划、公众服务等领域。以下是一些关键的气象数…

mac虚拟机软件哪个好 mac虚拟机怎么安装Windows 苹果Mac电脑上受欢迎的主流虚拟机PK Parallels Desktop和VM

什么是苹果虚拟机&#xff1f; 苹果虚拟机是一种软件工具&#xff0c;它允许在非苹果硬件上运行苹果操作系统&#xff08;如ios&#xff09;。通过使用虚拟机&#xff0c;您可以在Windows PC或Linux上体验和使用苹果的操作系统&#xff0c;而无需购买苹果硬件。 如何使用苹果虚…