如何从 http 网络摄像头直播中捕获图像

Posted

技术标签:

【中文标题】如何从 http 网络摄像头直播中捕获图像【英文标题】:How to catch images from a http webcam livestream 【发布时间】:2016-05-10 02:35:16 【问题描述】:

我需要从here 提供的网络摄像头直播中捕获图像

有人知道怎么做吗?

我找到了this 的答案,但这对我没有帮助。当我进入

ffmpeg -i rtmp://85.126.233.214/heidelberg-live/stream1.flv -r 1 -f image2 -vcodec mjpeg captured%d.jpg

返回

[rtmp @ 0xc45f40] Cannot open connection tcp://85.126.233.214:1935
rtmp://85.126.233.214/heidelberg-live/stream1.flv: Connection timed out
Conversion failed!

这是网站直播部分的样子:

<embed type="application/x-shockwave-flash"  
src="http://www.blitzvideoserver06.de/blitzvideoplayer4.swf"  
 
 
style="undefined" 
id="blitzvideoplayer" 
name="blitzvideoplayer" 
bgcolor="#ffffff" 
quality="high" 
allowfullscreen="true"  
flashvars="videofile1=rtmp://85.126.233.214/heidelberg-live/stream1.flv&amp;

live=1&amp;
keinlogo=1&amp;
mitstartbutton=1&amp;
bgc=ffffff">

【问题讨论】:

【参考方案1】:

您可能希望使用 rtmpdump 来指定所有 FLV 元数据并模拟原始 SWF 文件的行为,这肯定会在那里进行自定义。

请在屏幕截图中查看 RTMP 通信期间的自定义握手和重置消息。

最好的问候,

尤金

【讨论】:

啊,好吧,我的 IP 错了。您的图片显示正确的 IP,谢谢!我还尝试按照您的示例使用wireshark获取正确的服务器地址。我确实可以看到正确的 IP,但没有完整的字符串用于流式传输图像,即rtmp:///heidelberg-live/stream2.flv(我是从与网站相关的人那里得到的)Wireshark 只提供62.113.221.5heidelberg-live 的信息。有没有办法使用wireshark获取完整正确的服务器地址(如上所示)? 嘿 @mcExchange 原来的 RTMP URL 是正确的。您需要使用 WireShark 自己查看握手,并使用您拥有的工具重新创建相同的通信。包括SWF、window、referrer、channel等信息。 所以你的意思是我必须从flashvars="videofile1=rtmp://85.126.233.214/heidelberg-live/stream1.flv&amp;amp; 中提取从rtmp&amp;amp 的所有内容,同时用wireshark (62.113.221.5) 找到的IP 替换IP?这是规则吗?如果至少不必删除&amp;amp,我会理解的。或者地址末尾总是有&amp;amp

以上是关于如何从 http 网络摄像头直播中捕获图像的主要内容,如果未能解决你的问题,请参考以下文章

如何直接从 Web 应用程序中的内置网络摄像头捕获图像?

如何在 OpenCV 中使用网络摄像头捕获 Mat 图像的像素值

在 .Net Core 2.0 中从网络摄像头捕获图像

从网络摄像机捕获实时图像

python 从网络摄像头捕获两个图像并检测移动

OpenCv - 从网络摄像头捕获帧时发生内存泄漏