Mac网络摄像头 - 获取设备

mic*_*ael 8 macos terminal video ffmpeg

如何在Mac上访问我的默认摄像机?我知道在Linux上它是/ dev/video0但我的Mac没有.我正在尝试将我的网络摄像头捕获到ffmpeg中

ffmpeg -i /dev/video0
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为/ dev/video0不存在.

Mik*_*e F 6

您可以通过使用VLC的qtcapture(QTKit)或avcapture(AVFoundation)模块来实现这一点,VLC 2.0.0和

通过命令行尝试这个 - 注意:你仍然需要点击播放我猜:

QTCapture(使用QTKit框架)

VLC.app/Contents/MacOS/VLC -vvv qtcapture://
Run Code Online (Sandbox Code Playgroud)

AVCapture(使用AVFoundation框架)

VLC.app/Contents/MacOS/VLC -vvv avcapture://
Run Code Online (Sandbox Code Playgroud)

您也可以通过GUI控制它:VLC - >文件 - >打开捕获设备...

此外,如果您真的想控制某些内容,可以通过编程方式查看AVFoundationFramework或旧QTKit框架以访问您的相机(视频/音频设备).

如果您在查找设备时遇到问题,请尝试通过查看VLC是否实际识别设备来调试它.通过终端的详细输出或GUI模式下的日志视图应显示实际可用的设备:

VLC日志输出


mcv*_*mcv 0

我的印象是,这很难甚至是不可能的。苹果对此进行了相当程度的锁定。有一个几乎找不到的iSightCapture,它显然只能在直接在命令行上运行时起作用(在 10.4 之前的脚本中可以正常工作,但 Apple 阻止了它),而且我认为它只获取图像,而不是视频。

考虑到有人写了这个,应该可以通过编程方式访问它,但 iSightCapture 不是开源的,我自己也找不到如何做到这一点。不过我承认,当我意识到它显然不是一个标准的网络摄像头时,我很快就放弃了。