如何减少延迟 - 来自网络摄像头的 VLC 流式传输

     2023-03-14     204

关键词:

【中文标题】如何减少延迟 - 来自网络摄像头的 VLC 流式传输【英文标题】:How to reduce the delay - VLC Streaming from a web cam 【发布时间】:2012-02-25 12:10:48 【问题描述】:

我正在通过 UDP 从我的网络摄像头/麦克风流式传输视频和音频。当我查看流(即使在同一台机器上)时,会有大约 4 秒的延迟。我尝试将 UDP 缓存设置为 0 或 1,但似乎没有帮助。我尝试降低视频和音频比特率,使用单声道声音并降低采样率都无济于事。

有没有人知道如何将延迟减少到更适合视频会议的时间,即

是否有我可以应用于查看器/流媒体的设置来提供帮助?

谢谢,

马克

【问题讨论】:

【参考方案1】:

如果您使用 rtsp 协议流式传输到视频/音频,您可以在以下位置调整延迟

tools->preferences->all->input/codecs->demuxers->RTP/RTSP->缓存值

tools->preferences->all->input/codecs->demuxers->RTP->RTP去抖动缓冲长度

【讨论】:

注意:Caching value (ms)RTP de-jitter buffer length (msec) 选项在夜间构建版本 VLC 2.1.0-git-20120203-0008 的 GUI 中不存在。甚至缺少 Input/Codecs->Access modules->UDP 树项,因此 GUI 中没有 UDP caching 选项。 他们现在称之为“网络缓存”,但它的工作方式似乎不同。我无法在 2.0.4 中获得我在 1.1.9(~100-150 毫秒)中获得的巨大延迟(更多,对于如此低的值变得不稳定)。 @YngveSneenLindal 在 1.1.9 中,您使用什么命令行来实现如此好的延迟? 我将 --rtsp-caching 设置为 130 到 200 之间的任何值。您必须进行实验。请记住,这种延迟可以被视频源的任何缓冲延迟所掩盖。我对 1.1.3 和 1.1.6 也有很好的体验。与 >= 2.0 相比,它们很摇滚【参考方案2】:

试试这个。

#!/bin/sh
ETH=eth0

cvlc --miface=$ETH v4l2:///dev/video0 :input-slave=alsa://hw:0,0 :sout=#transcodevcodec=h264,venc=x264preset=ultrafast,tune=zerolatency,intra-refresh,lookahead=10,keyint=15,scale=auto,acodec=mpga,ab=128:rtpdst=224.10.0.1,port=5004,mux=ts :sout-keep >/dev/null 2>/dev/null &
vlc1=$!
vlc  --miface=$ETH rtp://224.10.0.1 >/dev/null 2>/dev/null &
vlc2=$!
wait $vlc2
kill -9 $vlc1

我使用 720p 网络摄像头有 2 秒的延迟,它产生约 2.5Mbit/s 的流量,一个核心的负载约为 30%。

【讨论】:

【参考方案3】:

在我对使用网络摄像头进行 VLC 流式传输的研究中,我发现 UDP 多播流使用 WMV/ASF 容器 + WMV2 编解码器从戴尔 Creative 集成网络摄像头以 cif 视频大小进行转码时延迟 2-3 秒。

如果使用 MP4/MOV 容器 + H.264 编解码器,在比特率、fps 和比例设置相同的情况下,我得到的延迟是前者的两倍。

我在两个流媒体设置中都禁用了音频,因为我对此不感兴趣。

我使用两个 VLC 版本进行了研究:

VLC 1.1.11(最新的 Windows 稳定版本) VLC 2.1.0(最新的夜间构建版本)

使用第一个版本,我可以从网络摄像头转码和流式传输,但无法正确播放流(它只是提供了一个变黑的视频流)

使用第二个版本,它可以很好地进行转码、流式传输和播放。

这项研究是在:

Intel Core 2 Duo T7250
4GB DDR2-667 SDRAM 
SATA 7200 RPM HDD
GeForce 8400M GS 128MB GDDR3 (+ 128MB shared memory = 256MB video memory)
Windows XP Pro SP3

【讨论】:

我在笔记本电脑上尝试了类似的设置,处理器是 i7,但显卡是集成的 Intel 显卡。您知道流式传输视频时是否使用显卡处理器吗?那可能是我的问题。 是的,在Windows下,dshow://是一个DirectShow接口;与任何 DirectX 接口一样,它将使用 DirectX GPU 的所有硬件加速功能,如果在服务器端或客户端检测到这些功能,可以提高性能。

树莓派:使用 VLC 流式传输网络摄像头:罗技 C920 [H264 视频无转码 + 音频 + LED 控制] - SpyCam / BabyCam

】树莓派:使用VLC流式传输网络摄像头:罗技C920[H264视频无转码+音频+LED控制]-SpyCam/BabyCam【英文标题】:RaspberryPi:useVLCtostreamwebcam:LogitechC920[H264Videowithouttranscoding+Audio+LEDcontrol]-SpyCam/BabyCam【发布时间】:2018-09-2513:10:48【问题描述... 查看详情

使用 vlc 将 mp4 流式传输到 html 浏览器

...【发布时间】:2012-07-0222:27:51【问题描述】:我在将网络摄像头图片(无声)流式传输到html页面时遇到问题。我正在使用最新的(v2.0.2vlcforwindows)进行流式传输,这是命令行:"c:\\ProgramFiles(x86)\\VideoLAN\\VLC\\vlc.exe"-Idummy 查看详情

如何使用 C# 流式传输网络摄像头视频? [关闭]

】如何使用C#流式传输网络摄像头视频?[关闭]【英文标题】:HowcanIstreamwebcamvideowithC#?[closed]【发布时间】:2010-09-2511:02:35【问题描述】:我想制作一个简单的服务器应用程序,人们可以使用基于浏览器的客户端(我稍后会制作... 查看详情

Android:如何流式传输视频

...】:我正在编写android客户端,它可以实时显示来自网络摄像头的视频。问题是我通过RTMP协议获得了这个流。似乎没有人知道一个简单的方法来做到这一点。在***上,我发现了关于HowtostreamoverRTMPonAndroid?的未解决问题,但现在可... 查看详情

如何使用来自网络套接字的网络音频 API 流式传输音频块?

】如何使用来自网络套接字的网络音频API流式传输音频块?【英文标题】:howtostreamaudiochunksusingwebaudioAPIcomingfromweb-socket?【发布时间】:2016-12-2714:07:59【问题描述】:我正在通过服务器的web-Socket以块的形式流式传输音频数据ws.on(... 查看详情

如何在 flash/rtmp 中将客户端网络摄像头流式传输到网络服务器

】如何在flash/rtmp中将客户端网络摄像头流式传输到网络服务器【英文标题】:Howtostreamclientwebcamtowebserverinflash/rtmp【发布时间】:2016-06-0117:40:46【问题描述】:我想将客户端网络摄像头数据流式传输到Nginx-rtmp服务器,而客户端不... 查看详情

如何将 USB 网络摄像头中的视频流式传输到远程 HTML 页面

】如何将USB网络摄像头中的视频流式传输到远程HTML页面【英文标题】:HowDoIStreamVideoFromMyUSBWebcamToARemoteHTMLPage【发布时间】:2015-11-2714:54:16【问题描述】:我想创建一个程序,将视频从我的USB网络摄像头通过互联网传输到网页。... 查看详情

通过opencv和c ++从ip摄像头流式传输视频

】通过opencv和c++从ip摄像头流式传输视频【英文标题】:Streamingvideofromipcamerabyopencvandc++【发布时间】:2018-05-0906:52:03【问题描述】:我正在尝试使用openCV代码从c++访问网络摄像头流,但它失败并显示无法打开流的错误。下面提到... 查看详情

将 h.264 流包装在 mp.4 容器中并使用 nodejs 流式传输

...】:2017-08-2403:20:13【问题描述】:我有一个来自远程网络摄像头的h.264数据流。如果我将它保存到一个文件中,我可以在VLC中播放它(这意味着数据完好无损)。最终目标是将此流转换为虚拟网络摄像头。环顾四周后,我发现many... 查看详情

如何将流式 rtsp 媒体嵌入到 html5 页面中

...018-02-0218:04:55【问题描述】:我有一个通过rtsp发送的安全摄像头,我可以在vlc播放器上捕获它,但我想将它嵌入到我的网页中。我一直在寻找如何做到这一点的几个小时,但没有找到任何关于如何做到这一点的最新文档。我也没... 查看详情

在网络浏览器中嵌入ip摄像头(代码片段)

...用户和管理传感器。我还想添加相机流媒体。我有一个IP摄像头,我想将它连接到同一个网络,并能够在网页上看到它。我不介意有一些延迟或延迟,我不需要访问我的家庭网络之外的服务。我搜索了一下,但我找不到任何简单... 查看详情

在流式传输网络摄像头时定期拍照

】在流式传输网络摄像头时定期拍照【英文标题】:Takingpicturesperiodicallywhilestreamingawebcam【发布时间】:2016-11-0423:06:22【问题描述】:我想在将视频流式传输到浏览器时定期(即每5秒)用网络摄像头拍照。我如何在Python中做到这... 查看详情

如何从网络摄像头获取原始 mjpg 流

】如何从网络摄像头获取原始mjpg流【英文标题】:howtogetrawmjpgstreamfromwebcam【发布时间】:2017-02-1204:27:53【问题描述】:我有罗技网络摄像头,它通过USB2.0使用MJPG压缩流式传输1080p@30fps。我需要将此原始流写入硬盘驱动器或通过... 查看详情

如何通过 nginx 将 rtsp 网络摄像机流式传输到网站

】如何通过nginx将rtsp网络摄像机流式传输到网站【英文标题】:HowcanIstreamartspipcameratoawebsitevianginx【发布时间】:2021-12-3122:04:33【问题描述】:我尝试在网站上流式传输我的RTSP-IP-Camera。我使用Nginx网络服务器。我在html代码中的... 查看详情

如何将视频从我的应用程序流式传输到网络?

...:18【问题描述】:我有一个应用程序,它可以从多个网络摄像头抓取视频,进行一些图像处理,然后在屏幕上显示结果。我希望能够将视频输出流式传输到网络上-最好是某种分发服务,而不是自己直接连接到客户端。所以我的... 查看详情

如何在浏览器中使用 Flash 客户端将网络摄像头流式传输到 RTMP 服务器?

】如何在浏览器中使用Flash客户端将网络摄像头流式传输到RTMP服务器?【英文标题】:HowtostreamwebcamtoRTMPserverusingFlashclientinbrowser?【发布时间】:2016-08-0512:49:56【问题描述】:我用nginx-rtmp-module构建了非常简单的RTMP服务器。它工... 查看详情

如何在 C++ 中读取来自网络摄像头的输入?

】如何在C++中读取来自网络摄像头的输入?【英文标题】:HowtoreadinputfromawebcaminC++?【发布时间】:2010-10-0720:51:43【问题描述】:是否可以像从流对象中一样从C++中的通用网络摄像头中读取数据?是否有适用于所有网络摄像头的... 查看详情

通过流式传输网络摄像头。 Wowza 流媒体服务器

】通过流式传输网络摄像头。Wowza流媒体服务器【英文标题】:Streamwebcamvia.Wowzastreamingserver【发布时间】:2015-09-1007:00:27【问题描述】:我正在尝试创建一个网站,用户可以在其中通过Wowza服务器流式传输他们的网络摄像头。我... 查看详情