Raspbian命令行RTSP/RTP服务

Raspbian命令行RTSP/RTP服务

  • 1. 源由
  • 2. Raspbian摄像头
    • 2.1 命令行启动RTP摄像头
    • 2.2 命令行启动RTSP摄像头
  • 3. 示例
    • 3.1 测试RTP摄像头
    • 3.2 测试RTSP摄像头
    • 3.3 QGroundControl测试
      • 3.3.1 RTSP配置
      • 3.3.2 RTP配置
  • 4. 总结
  • 5. 参考资料

1. 源由

鉴于实际测试发现RTP协议下,摄像头明显比RTSP协议下响应快。

因此,这里记录下命令行模式下启动RTP和RTSP摄像头,以及VLC图像界面的操作。

2. Raspbian摄像头

2.1 命令行启动RTP摄像头

在树莓派上进行RTP(Real-time Transport Protocol)视频流式传输需要使用一些工具。一个常见的工具是raspivid结合ffmpeg,ffmpeg可以将视频流编码并通过RTP进行传输。

以下是在树莓派上设置RTP视频流的命令行:

raspivid -t 0 -w 640 -h 480 -fps 25 -b 2000000 -o - | ffmpeg -i - -vcodec copy -an -f rtp rtp://<destination_ip>:<destination_port>
raspivid -t 0 -w 640 -h 480 -fps 25 -b 2000000 -o -: 使用raspivid捕获视频流,并将其发送到标准输出。
ffmpeg -i - -vcodec copy -an -f rtp rtp://<destination_ip>:<destination_port>: 使用ffmpeg接收来自raspivid的视频流,并将其编码为RTP格式,然后通过指定的目标IP地址和端口进行传输。

确保替换<destination_ip>和<destination_port>为接收视频流的设备的IP地址和端口号。这个命令将在树莓派上启动视频流,并将其发送到指定的目标。

接收视频流的设备可以使用VLC等RTP兼容的媒体播放器来接收和播放视频流。

2.2 命令行启动RTSP摄像头

要在树莓派上使用命令行设置RTSP视频流,您可以使用raspivid结合cvlc(VLC的命令行版本)来实现。以下是一个示例命令:

raspivid -t 0 -w 640 -h 480 -fps 25 -b 2000000 -o - | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264

这个命令将树莓派的摄像头视频流通过RTSP进行传输。解释一下命令的各个部分:

raspivid -t 0 -w 640 -h 480 -fps 25 -b 2000000 -o -: 使用raspivid捕获视频流,并将其发送到标准输出。
cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264: 使用cvlc接收来自raspivid的视频流,将其编码为RTP格式,并通过RTSP进行传输。其中rtsp://:8554/指定了RTSP服务器的地址和端口号。

确保您已经在树莓派上安装了vlc和raspivid。这个命令将在树莓派上启动视频流,并将其通过RTSP传输,您可以在任何支持RTSP的播放器中播放该流。

3. 示例

Raspbian摄像头: 192.168.1.17
Windows笔记本: 192.168.1.14
QGroundControl:192.168.1.8

3.1 测试RTP摄像头

  • Step 1:制作VLC的SDP文件,并保存为rtp.sdp
m=video 5004 RTP/AVP 96
a=rtpmap:96 H264
a=framerate:25
c=IN IP4 127.0.0.1
  • Step 2:启动Windows端RTP服务

注:Windows桌面先要装好VLC图形界面软件,双击rtp.sdp文件,启动RTP服务。

  • Step 3:树莓派运行RTP摄像头程序
$ raspivid -t 0 -w 640 -h 480 -fps 25 -b 2000000 -o - | ffmpeg -i - -vcodec copy -an -f rtp rtp://192.168.1.14:5004
  • Step 4:等待大概1~2秒,摄像头图像即可显示

3.2 测试RTSP摄像头

  • Step 1:树莓派运行RTSP摄像头服务
$ raspivid -t 0 -w 640 -h 480 -fps 25 -b 2000000 -o - | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/test}' :demux=h264
  • Step 2:Windows启动VLC软件

  • Step 3:选择【Media】–>【Open Network Stream…】–>【Network】,填写RTSP地址

rtsp://192.168.1.17:8554/test
  • Step 4:点击【Play】开始播放RTSP摄像头画面

在这里插入图片描述

3.3 QGroundControl测试

3.3.1 RTSP配置

$ raspivid -t 0 -w 640 -h 480 -fps 25 -b 2000000 -o - | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/test}' :demux=h264

在这里插入图片描述

3.3.2 RTP配置

$ raspivid -t 0 -w 640 -h 480 -fps 25 -b 2000000 -o - | ffmpeg -i - -vcodec copy -an -f rtp rtp://192.168.1.8:5004

在这里插入图片描述

4. 总结

经测试:

  1. RTP协议较RTSP协议延迟明显改善
  2. VLC需要使用SDP文件启动RTP服务(待查)
  3. VLC无法使用SDP文件启动RTSP客户端(待查)
  4. 所有测试过程都需要先启动服务端程序,然后再启动客户端程序

RTP摄像头(客户端)
RTSP摄像头(服务端)

5. 参考资料

【1】Raspbian简易RTSP服务
【2】Raspbian安装摄像头
【3】Raspbian镜像无头烧录

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MATLAB】CEEMD_ MFE_SVM_LSTM 神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 CEEMD_MFE_SVM_LSTM神经网络时序预测算法是一种结合了多种先进技术的复杂预测方法&#xff0c;旨在提高时序预测的准确性和稳定性。下面是对该算法的详细介绍&#xff1a; CEEMD&#xff…

常用的函数式接口(Supplier、Consumer、Predicate、Function)

目录 一.函数式接口作为方法的参数 二.函数式接口作为方法的返回值 三.常用的函数式接口 3.1生产型Supplier接口 3.2消费型Consumer接口 抽象方法&#xff1a;accept 默认方法&#xff1a;andThen 3.3判断型Predicate接口 抽象方法&#xff1a;test 默认方法&#xf…

【vue】provide/inject

provide/ inject这对选项需要一起使用&#xff0c;以允许一个祖先组件向其所有子孙后代注入一个依赖&#xff0c;不论组件层次有多深&#xff0c;并在起上下游关系成立的时间里始终生效。 通途点来讲可以用来实现隔代传值&#xff0c;传统的props只能父传子&#xff0c;而 prov…

电影《热辣滚烫》观后感

过完年&#xff0c;回来的时候&#xff0c;上周看了这部电影《热辣滚烫》&#xff0c;是贾玲自导自演的一部电影&#xff0c;个人感觉还是非常好的&#xff0c;偏向小人物&#xff0c;写实风格。 &#xff08;1&#xff09;电影相关评价 但是你说这部电影有多立志&#xff0c…

SQL Server——建表时为字段添加注释

在 MySQL 中&#xff0c;新建数据库表为字段添加注释可以使用 comment 属性来实现。SQL Server 没有 comment 属性&#xff0c;但是可以通过执行 sys.sp_addextendedproperty 这个存储过程添加扩展属性来实现相同的功能。 这个存储过程的参数定义如下&#xff1a; exec sys.s…

【微服务生态】Elasticsearch

文章目录 一、概述二、下载和部署2.1 单机部署2.2 集群部署2.2.1 环境配置2.2.2 安装及部署 三、基本操作3.1 概述3.2 HTTP 操作3.2.1 索引操作3.2.2 文档操作3.2.3 关系映射3.2.4 高级查询 3.3 Java API 操作 四、Elasticsearch 进阶4.1 核心概念4.2 系统架构4.3 分布式集群4.…

C++之Easyx——图形库的基本功能(3):形状绘制(上)

目录 目录 目录 一、bar 函数定义 使用说明 示例程序 二、circle 函数定义 使用说明 示例程序 三、rectangle 函数定义 使用说明 示例程序 四、arc 函数定义 使用说明 参考线 示例程序 一、bar 函数定义 void EGEAPI bar(int left, int top, int right, int bottom, PIMAG…

【前端素材】推荐优质后台管理系统Sneat平台模板(附源码)

一、需求分析 后台管理系统是一种用于管理网站、应用程序或系统的工具&#xff0c;它通常作为一个独立的后台界面存在&#xff0c;供管理员或特定用户使用。下面详细分析后台管理系统的定义和功能&#xff1a; 1. 定义 后台管理系统是一个用于管理和控制网站、应用程序或系统…

snmp协议开通教程

目录 一、什么是snmp协议&#xff1f; 二、snmp协议可以用来干什么&#xff1f; 三、snmp协议的开通 1、snmpv2协议开通 2、snmpv3协议开通 一、什么是snmp协议&#xff1f; SNMP&#xff08;Simple Network Management Protocol&#xff09;是一种用于网络管理的标准协议&a…

Redis cluster集群搭建

1.cluster集群原理 1.1最低需要6个节点即三主三从&#xff0c;每个主节点对应一个从节点 1.2数据存储采用分片存储方式&#xff0c;整个redis集群有16384个哈希槽&#xff0c;集群中的每个节点负责一部分哈希槽&#xff0c;现在集群中三个主节点&#xff0c;就会把这些哈希槽…

VR系统的开发流程

虚拟现实&#xff08;Virtual Reality&#xff0c;VR&#xff09;系统是一种通过计算机技术模拟出的具有三维视角和交互性的虚拟环境&#xff0c;使用户能够沉浸在其中并与虚拟环境进行交互。这种技术通常利用头戴式显示器和手柄等设备&#xff0c;使用户能够感觉到仿佛身临其境…

Elasticsearch:基于 Langchain 的 Elasticsearch Agent 对文档的搜索

在今天的文章中&#xff0c;我们将重点介绍如何使用 LangChain 提供的基础设施在 Python 中构建 Elasticsearch agent。 该 agent 应允许用户以自然语言询问有关 Elasticsearch 集群中数据的问题。 Elasticsearch 是一个强大的搜索引擎&#xff0c;支持词法和向量搜索。 Elast…

C 嵌入式系统设计模式 11:观察者模式

本书的原著为&#xff1a;《Design Patterns for Embedded Systems in C ——An Embedded Software Engineering Toolkit 》&#xff0c;讲解的是嵌入式系统设计模式&#xff0c;是一本不可多得的好书。 本系列描述我对书中内容的理解。本文章描述访问硬件的设计模式之四&…

VSCODE include错误 找不到 stdio.h

解决办法&#xff1a; Ctrl Shift P 打开命令面板&#xff0c; 键入 “Select Intellisense Configuration”&#xff08;下图是因为我在写文章之前已经用过这个命令&#xff0c;所以这个历史记录出现在了第一行&#xff09; 再选择“Use gcc.exe ”&#xff08;后面的Foun…

C# If与Switch的区别

在 switch 语句中使用表达式比较时&#xff0c;编译器会生成一个查找表&#xff0c;其中包含所有表达式的值和对应的 case 标签。因此&#xff0c;与使用常量或字面量比较相比&#xff0c;使用表达式比较可能会略微降低性能。 只有当 switch 语句中的所有 case 标签都使用常量或…

Linux快速修改ip地址

Linux修改IP配置 一 、查找ip配置文件 ifcfg-ens33二、编辑 vi ifcfg-ens33文件三、重启网络或者重启系统 一 、查找ip配置文件 ifcfg-ens33 cd /etc/sysconfig/network-scripts/ls //查看network-scripts文件夹下面的文件二、编辑 vi ifcfg-ens33文件 vi ifcfg-ens33注意&…

反序列化 [NPUCTF2020]ReadlezPHP1

打开题目 直接查看源代码 打开源代码发现了个./time.php?source 访问一下 审计代码&#xff1a; 现存在反序列化语句&#xff1a;$ppp unserialize($_GET["data"]);和执行漏洞&#xff1a;echo $b($a); 发现在__destruct()方法里面有 echo $b($a); 这个是php的…

用6点结构标定5点结构的顺序

( A, B )---6*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有6个节点&#xff0c;AB训练集各由6张二值化的图片组成&#xff0c;A的6张图片共有5个点&#xff0c;B全是0.收敛误差7e-4&#xff0c;收敛199次&#xff0c;统计迭代次数平均值并排序。 如果使行和列自由变换&#xff0…

Sora是什么?

文章目录 前言Sora是什么&#xff1f;功能特色优点 缺点Sora模型的工作原理如何使用Sora模型Sora模型的应用场景Sora模型带来的问题虚假信息版权问题 后记 前言 Sora是美国人工智能研究公司OpenAI发布的一款令人惊叹的人工智能文生成视频大模型。近年来&#xff0c;人工智能技…

《凤凰架构》 -分布式事务章节 读书笔记

分布式事务严谨的定义&#xff1a;分布式环境下的事务处理机制 CAP定理&#xff1a;在一个分布式系统中&#xff0c;涉及共享数据问题时&#xff0c;以下三个特性最多只能同时满足两个 一致性&#xff1a;代表数据在任何时刻、任何分布式节点中看到的都是符合预期的&#xff0…