【问题标题】:FFMPEG API - Retrieve device camera informationFFMPEG API - 检索设备相机信息
【发布时间】:2015-08-24 16:06:07
【问题描述】:

我需要获得可用相机的兼容帧速率/分辨率。 ffmpeg 库如何做到这一点?我尝试过使用avdevice 的功能,但它们似乎都检索到错误。我也无法获得可用设备的列表。

这是在使用 avfoundation 的 mac 上完成的(稍后将使用 dshow 移植到 windows)。

感谢您的宝贵时间。

【问题讨论】:

  • 不幸的是,这些输入设备的“获取名称”和“获取帧率”API 可能还没有“充实”。对于 dshow,您可以将输出解析为“ffmpeg -f dshow -list_devices true -i x”,但这与目前的情况差不多。可能 avfoundation 也有类似的选项 [?]
  • 但这意味着从我的程序运行 ffmpeg,用户必须与应用程序一起安装,对吧?它会起作用,但我认为它有点麻烦。
  • 你可以“自己”枚举它们,就像trac.ffmpeg.org/wiki/…
  • 嗯,可以。所以我只会处理打印到终端的内容。不幸的是,avfoundation 不支持 dshow 支持的 list_options。所以我无法在 mac 上获取该信息。我想唯一的解决方案是直接使用 avfoundation?
  • 另外,该函数将信息打印到控制台。我怎样才能检索它以便我可以处理它?

标签: c++ c ffmpeg webcam


【解决方案1】:

尝试运行

ffmpeg -f dshow -list_options true -i video="Integrated Camera"

根据平台,将“dshow”和“集成摄像头”替换为您拥有的任何内容。如上,您可以使用

获取视频设备的名称
ffmpeg -f dshow -list_devices true -i x

然后,您可以使用 > 运算符将结果输出通过管道传输到文件,或者传输到进一步的命令行工具以使用 | 进行处理。操作员。例如,

ffmpeg -f dshow -list_options true -i video="Integrated Camera" > test.txt

ffmpeg -f dshow -list_options true -i video="Integrated Camera" | grep 'pixel_format'

【讨论】:

  • 感谢您的回复。 :) 这是我几年前提出的一个老问题,但当时我不是在寻找命令行解决方案,而是在寻找带有代码的解决方案,使用他们的 API,这似乎还没有实现。
  • 好的,我刚刚遇到了同样的问题,并得到了解决(显然是更新版本;)
  • 很高兴知道。 :) 您能否在您的答案中添加 API 现在也可以使用?这样我可以接受答案:)
  • 如果@k_ride 在这里发布解决方案以便人们可以看到它会很好,而不是仅仅说解决了没有进一步的细节。
  • 非常抱歉措辞不好 - 以及延迟 - 但我的意思是我有同样的需求,我用答案中的命令行解决方案解决了这个问题。我从来没有通过 API 这样做过。
猜你喜欢
  • 2011-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多