【问题标题】:saving frames from webcam stream从网络摄像头流中保存帧
【发布时间】:2018-12-30 18:38:04
【问题描述】:

我想要一个系统地从网络摄像头镜头中提取帧并将其保存到我个人计算机上的本地目录的例程。

具体来说,我正在尝试从黄石国家公园老忠实间歇泉的网络摄像头中保存帧。公园。 (https://www.nps.gov/yell/customcf/geyser_webcam_updated.htm)

理想情况下,我想:

  1. 能够控制下载帧的速率(例如,每分钟下载 1 帧)
  2. 使用 FFMPEG 或 R
  3. 保存实际框架,而不是网页的快照

尽管上面提到了第 3 点,我还是尝试在 R 中使用 webshot 包简单地拍摄 屏幕截图

library(webshot)
i=1
while(i<=2) { 
webshot('https://www.nps.gov/yell/customcf/geyser_webcam_updated.htm',delay=60,paste(i,'.png',sep=""))

i=i+1
}

但是,从上面的代码中我得到了这两个图像:

尽管 webshot() 函数有延迟(60 秒),但这两个图像是相同的,更不用说中间明显的播放按钮了。这种方法似乎也有点hack,因为它保存的是网站的快照,而不是框架本身。

我当然愿意使用更合适的命令行工具(我只是不确定它们是什么)。任何帮助是极大的赞赏!

【问题讨论】:

  • 这是一个直接的 HLS 播放列表。只需每分钟运行一次ffmpeg -i https://56cf3370d8dd3.streamlock.net:1935/nps/faithful.stream/playlist.m3u8 -vframes 1 out.png
  • 这正是我想要的。如果你把它放在答案中,我会立即接受。您介意解释一下您是如何识别该网址的吗?

标签: r ffmpeg video-streaming html5-video webcam


【解决方案1】:

视频标签下显示的URL源代码

<source type="application/x-mpegurl" src="//56cf3370d8dd3.streamlock.net:1935/nps/faithful.stream/playlist.m3u8">

src 标识 HLS 播放列表。因此,您可以定期运行 ffmpeg 以获得如下图像输出:

ffmpeg -i https://56cf3370d8dd3.streamlock.net:1935/nps/faithful.stream/playlist.m3u8 -vframes 1 out.png

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 2013-03-17
    • 1970-01-01
    • 2013-09-25
    相关资源
    最近更新 更多