USB摄像头视频流转RTSP流

一、VLC查看USB摄像头视频流原理:
USB摄像头的工作原理与VLC播放其他视频文件类似,主要区别在于视频流的来源是实时捕获的,而不是预先录制的文件。如果使用VLC将USB摄像头的视频流作为RTSP服务器广播,需要进一步配置

二、VLC查看USB摄像头视频流过程:

  1. 识别设备
    • 当USB摄像头连接到计算机时,操作系统会识别这个新设备,并尝试加载适当的驱动程序。
  2. 设备枚举
    • VLC会枚举所有可用的视频捕捉设备,这通常是通过DirectShow(Windows)Video4Linux(Linux)AVFoundation(macOS)等框架来完成的。
    • 用户可以在VLC中选择“媒体”(Media)菜单中的“打开捕获设备”(Open Capture Device)选项,然后在弹出的对话框中看到所有识别到的视频捕捉设备。
  3. 配置捕获参数
    • 用户可以在VLC中配置捕获参数,如视频分辨率、帧率、压缩格式等。
  4. 打开设备
    • 用户选择好摄像头和配置后,VLC将尝试打开这个设备。
  5. 视频流捕获
    • 一旦设备被成功打开,摄像头开始捕捉视频并将其发送到计算机。
  6. 解码和显示
    • VLC接收到原始的视频数据后,会使用相应的解码器(通常是H.264、MJPEG或其他格式,取决于摄像头支持的编码)对视频流进行解码,然后送显。
  7. 实时播放
    • VLC会以实时方式播放视频流,这意味着它会尽可能快地处理和显示每一帧,从而使用户能够观看到实时的视频画面。

三、VLC查看USB摄像头视频流播放方法:
在VLC媒体播放器中,dshow:// 是一个特殊的协议,用于访问DirectShow设备。DirectShow是微软提供的一套在Windows操作系统中用于处理多媒体流的框架。以下是关于 dshow:// 协议的一些详细信息:
在这里插入图片描述

  1. DirectShow
    • DirectShow是Windows平台上用于捕获和播放音频及视频的一种技术。
    • 它可以处理来自各种源的数据,包括USB摄像头、DV摄像机、电视调谐器等。
  2. dshow:// 协议
    • VLC使用 dshow:// 协议来与DirectShow框架交互,从而能够访问连接到计算机上的DirectShow兼容设备。
    • 当在VLC中使用 dshow:// 协议时,VLC会列出所有可用的DirectShow设备,包括USB摄像头。
  3. 使用方法
    • 在VLC中,你可以通过输入以下格式的URL来访问USB摄像头:
dshow://
  1. **其他配置:
    • dshow:// 协议后,你可以指定特定的设备名称或设备ID,以及配置参数,如分辨率、帧率等。例如:

// 通过这种方式,VLC能够直接利用DirectShow的功能,提供实时的视频捕获和播放功能,这对于使用USB摄像头进行视频会议、监控或直播等活动非常有用。dshow:// :dshow-vdev="USB Video Device" :dshow-adev="麦克风阵列 (Realtek High Definition Audio)" :dshow-size="640x480" :dshow-fps=30

四、USB摄像头的视频流转为RTSP流: 使用VLC,或者使用FFmpeg

  1. 使用VLC作为服务器进行转流(方法一)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    不要勾选激活转码
    在这里插入图片描述
    打开一个cmd查看本机ip:使用命令 ipconfig,我这里是使用的WiFi
    在这里插入图片描述

运行如下命令:

// 不激活编码,这里的网络地址需要替换为本地机的IP地址,可以在cmd中使用ipconfig查看
:sout=#rtp{sdp=rtsp://123.45.6.78:8554/test} :no-sout-all :sout-keep

不要勾选串流所有基本流
在这里插入图片描述

  1. 使用FFmpeg查看设备状态:(方法二)
// 执行如下命令
ffmpeg -list_devices true -f dshow -i dummy

在这里插入图片描述

  1. 使用FFmpeg作为RTSP流媒体服务器,进行转流:先打开mediamtx.exe(方法二)
    在这里插入图片描述

  2. 运行FFmpeg命令如下,选一个命令即可:(方法二)


// 以下命令直接在放置ffmpeg.exe的文件夹的空白处,右键打开cmd执行。或者在文件夹头部的路径栏中输入cmd+回车,也可以唤起cmd。一句话就是cmd的路径要正确// 命令一
ffmpeg -f dshow -i video="WN USB CAMERA" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -rtsp_transport tcp -f rtsp rtsp://127.0.0.1/test// 命令二 缓冲区溢出(实时缓冲区的大小可能不足以处理从摄像头捕获的视频流)执行本命令指定缓冲区为10MBffmpeg -f dshow -i video="WN USB CAMERA" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -rtbufsize 10485760 -rtsp_transport tcp -f rtsp rtsp://127.0.0.1/test// 命令三
ffmpeg -f dshow -i video="WN USB CAMERA" -vcodec libx264 -preset ultrafast -rtsp_transport tcp -f rtsp rtsp://127.0.0.1/test
  1. 然后再VLC中使用:rtsp://127.0.0.1/test 查看视频即可
    在这里插入图片描述


其他补充:

  1. 可能会出现如下情况缓冲区溢出问题:
    在这里插入图片描述

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

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

相关文章

【machine learning-六-supervise learning之线性回归模型】

监督学习之线性回归模型 线性回归模型线性模型回归模型 如何使用线性模型实现智能化预测呢寻找数据训练模型输入、特征、目标、预测值、模型代价函数 线性模型是人工智能监督学习中最广泛的应用,所以有必要先学习一下这个基础模型,做好基石。 线性回归模…

Reactor介绍,如何从简易版本的epoll修改成Reactor模型(demo版本代码+详细介绍)

目录 Reactor demo​​​​​​​ 引入 比喻 修改代码 connection tcp_server ET模式 主逻辑 处理事件 运行结果 代码 完善功能 读取数据 运行结果 ​编辑 代码 处理数据 回指指针 如何处理写事件 引入 循环内 处理对写事件的关心 异常处理 代码 se…

C# 携手 7-Zip 命令行:大文件压缩的终极武器?

前言 嗨,大家好! 今天咱们来聊聊如何用 C# 调用 7-Zip 命令行来压缩大文件,这是个既高效又稳定的好办法,亲测有效! 在实际工作中,压缩文件几乎是家常便饭,但可惜的是,许多常用的方…

【科技论文写作与发表】论文分类

目录 一、实验性论文特点写作结构适用学科方向 二、报道性论文特点写作结构适用学科方向 三、理论性论文特点写作结构适用学科方向 一、实验性论文 通过科学实验获得的数据和结果进行详细阐述和分析,检验某一科学理论或假说。 特点 详细描述实验目的、实验设计、实…

ORM框架详解:为什么不直接写SQL?

想象一下,你正在开发一个小型的在线书店应用。你需要存储书籍信息、用户数据和订单记录。作为一个初学者,你可能会想:“我已经学会了SQL,为什么还要使用ORM框架呢?直接写SQL语句不是更简单、更直接吗?” 如…

Uniapp的alertDialog返回值+async/await处理确定/取消问题

今天在使用uniui的alertDialog时,想添加一个确定/取消的警告框时 发现alertDialog和下面的处理同步进行了,没有等待alaertDialog处理完才进行 查询后发现问题在于 await 关键字虽然被用来等待 alertDialog.value.open() 的完成,但是 alertDi…

前端mock了所有……

目录 一、背景描述 二、开发流程 1.引入Mock 2.创建文件 3.需求描述 4.Mock实现 三、总结 一、背景描述 前提: 事情是这样的,老板想要我们写一个demo拿去路演/拉项目,有一些数据,希望前端接一下,写几个表格&a…

vs code 跳转很慢

查看结构体、接口等非常之慢。c/c语言服务功能使用了智能引擎所致,设置为模糊检索即可。 修改如下: 1.打开"文件",选"首选项","设置" 2.弹出的窗口中搜索 "C_Cpp.intelliSenseEngine" …

TCP客户端编码和解码处理:发送和接收指定编码消息

文章目录 引言基于Netty实现TCP客户端Netty发送GBK编码指令Netty接收GBK编码基于Channel发送指令基于ChannelHandlerContext发送指令:建立连接时发送登陆指令开启日志,查看报文信息基于ChannelInboundHandlerAdapter进行业务逻辑处理原生API实现TCP客户端基于DataOutputStrea…

C语言 | Leetcode C语言题解之题409题最长回文串

题目&#xff1a; 题解&#xff1a; int longestPalindrome(char * s) {int c[128]{0},ret0;for(int i0;i<strlen(s);i){c[s[i]];}for(int i0;i<128;i){retc[i]-c[i]%2;}return ret(ret!strlen(s)); }

gazebo 仿真阶段性问题汇总二

目录 写在前面的话遇到的问题问题一&#xff1a;启动了多个 robot_state_publisher解决办法 问题二&#xff1a;rviz 启动报错解决办法 问题三&#xff1a;rviz 中 wheel 一直指向 base_link解决方法 问题四&#xff1a;摄像头和opencv坐标系的问题解决方法 问题五&#xff1a;…

JavaWeb笔记整理——Redis

目录 Redis数据类型 各种数据类型的特点 Redis常用命令 字符串操作命令 哈希操作命令 列表操作命令 集合操作命令 有序集合操作命令 通用命令 在Java中操作Redis Spring Data Redis的使用方式 操作字符串类型的数据 ​编辑操作hash类型的数据 ​编辑 操作列表类…

Rasa对话模型——做一个语言助手

1、Rasa模型 1.1 模型介绍 Rasa是一个用于构建对话 AI 的开源框架&#xff0c;主要用于开发聊天机器人和语音助手。Rasa 提供了自然语言理解&#xff08;NLU&#xff09;和对话管理&#xff08;DM&#xff09;功能&#xff0c;使开发者能够创建智能、交互式的对话系统。 1.2…

《中国数据库前世今生》纪录片观感:从古至今数据库的演变与未来

我的数据库之路&#xff1a;从新手到稳步前行 三年数据库开发的经历&#xff0c;让我从一名菜鸟程序员逐步成长为能够独立解决问题的开发者。这段时间里&#xff0c;我经历过迷茫、困惑&#xff0c;也感受过技术攻关后的成就感。最近看了腾讯云推出的《中国数据库前世今生》纪…

ARM相关概念

ARM课程大纲 ARM相关的基本概念 机器码 计算机能够识别由1和0组成的编码格式 汇编&#xff1a;将汇编文件转换为二进制文件&#xff08;.bin/.elf&#xff09; 汇编指令 是一条具备特殊功能的指令 编译&#xff1a;生成汇编文件 int a 10; ------> mov r0 #10 …

架构师:在 Spring Cloud 中实现全局异常处理的技术指南

1、简述 在分布式系统中,微服务架构是最流行的设计模式之一。Spring Cloud 提供了各种工具和库来简化微服务的开发和管理。然而,随着服务的增多,处理每个服务中的异常变得尤为复杂。因此,实现统一的全局异常处理成为了关键。本篇博客将介绍如何在 Spring Cloud 微服务架构…

Docker日志管理

ELK Filebeat Filebeat 是 ELK 组件的新成员&#xff0c; 也是 Beat 成员之一。基于 Go 语言开发&#xff0c; 无任何依赖&#xff0c; 并且比 Logstash 更加轻量&#xff0c; 不会带来过高的资源占用&#xff0c; 非常适合安装在生产机器上。轻量意 味着简单&#xff0c;Fileb…

51单片机-DA(数字转模拟)

作者&#xff1a;Whappy 个人理解&#xff1a;将电压或电流信号进行等分或不等分&#xff08;高电平的电压范围和低电平的范围&#xff0c;如0-5v&#xff0c;0-1.8位低电平&#xff0c;3.8-5v为高电平&#xff09;&#xff0c;同样也是通过采样&#xff0c;量化等操作将不连续…

苍穹外卖Day01-2

目录 导入接口文档 创建项目​编辑 导入接口文件 ​编辑 导入结果界面​编辑 Swagger 介绍 如何集成 Swagger&#xff1f; 1.添加依赖 2.配置 Swagger 3.创建 Swagger 配置类 4.使用注解生成文档 5.访问 Swagger UI 6.Swagger 的优势 导入接口文档 yApi接口管理平台h…

Oracle从入门到放弃

Oracle从入门到放弃 左连接和右连接Where子查询单行子查询多行子查询 from子句的子查询select子句的子查询oracle分页序列序列的应用 索引PL/SQL变量声明与赋值select into 赋值变量属性类型 异常循环游标存储函数存储过程不带传出参数的存储过程带传出参数的存储过程 左连接和…