Gstreamer 在 Mac 上找不到内置摄像头
Gstreamer cannot find internal camera on a Mac
我已经在 mac 上通过自制软件安装了 Gstreamer。我想流式传输 mac 的内部摄像机的镜头,但是当我 运行
gst-device-monitor-1.0
我不断收到 Probing devices... Failed to start device monitor!
我也尝试 运行 使用 GST_DEBUG=2
使用相同的命令然后我得到
WARN devicemonitor gstdevicemonitor.c:501:gst_device_monitor_start:<devicemonitor0> No filters have been set, will expose all devices found
0:00:00.002759000 24294 0x7ffc5151c190 WARN devicemonitor gstdevicemonitor.c:507:gst_device_monitor_start:<devicemonitor0> No providers match the current filters
我运行宁的版本是
gst-device-monitor-1.0 version 1.20.0
GStreamer 1.20.0
我如何让它工作?我已经检查了 mac 设置,但没有看到任何阻止它的东西。如何让 gstreamer 看到我的 mac 的内部摄像头?
我的 Mac(M1,macOS 蒙特雷)也有同样的问题。这是 gst-device-monitor-1.0 的问题。根据其source code找不到任何对应的设备供应商:
if (monitor->priv->filters->len == 0) {
GST_WARNING_OBJECT (monitor, "No filters have been set, will expose all "
"devices found");
gst_device_monitor_add_filter_unlocked (monitor, NULL, NULL);
}
if (monitor->priv->providers->len == 0) {
GST_OBJECT_UNLOCK (monitor);
GST_WARNING_OBJECT (monitor, "No providers match the current filters");
return FALSE;
}
问题出现在一年前,至今未解决:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/780
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/667
gstreamer 本身仍然可以访问 macOS 上的视频(包括 mac 的内部摄像头)和音频源。
视频:
gst-launch-1.0 avfvideosrc device-index=0 ! video/x-raw, framerate=30/1, width=1280, height=720 ! queue ! autovideosink
音频:
gst-launch-1.0 -v osxaudiosrc device=0 ! audio/x-raw ! queue ! autoaudiosink
注意:avfvideosrc
是 gst-plugins-bad
的一部分,osxaudiosrc
- gst-plugins-good
的一部分
我已经在 mac 上通过自制软件安装了 Gstreamer。我想流式传输 mac 的内部摄像机的镜头,但是当我 运行
gst-device-monitor-1.0
我不断收到 Probing devices... Failed to start device monitor!
我也尝试 运行 使用 GST_DEBUG=2
使用相同的命令然后我得到
WARN devicemonitor gstdevicemonitor.c:501:gst_device_monitor_start:<devicemonitor0> No filters have been set, will expose all devices found
0:00:00.002759000 24294 0x7ffc5151c190 WARN devicemonitor gstdevicemonitor.c:507:gst_device_monitor_start:<devicemonitor0> No providers match the current filters
我运行宁的版本是
gst-device-monitor-1.0 version 1.20.0
GStreamer 1.20.0
我如何让它工作?我已经检查了 mac 设置,但没有看到任何阻止它的东西。如何让 gstreamer 看到我的 mac 的内部摄像头?
我的 Mac(M1,macOS 蒙特雷)也有同样的问题。这是 gst-device-monitor-1.0 的问题。根据其source code找不到任何对应的设备供应商:
if (monitor->priv->filters->len == 0) {
GST_WARNING_OBJECT (monitor, "No filters have been set, will expose all "
"devices found");
gst_device_monitor_add_filter_unlocked (monitor, NULL, NULL);
}
if (monitor->priv->providers->len == 0) {
GST_OBJECT_UNLOCK (monitor);
GST_WARNING_OBJECT (monitor, "No providers match the current filters");
return FALSE;
}
问题出现在一年前,至今未解决: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/780 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/667
gstreamer 本身仍然可以访问 macOS 上的视频(包括 mac 的内部摄像头)和音频源。
视频:
gst-launch-1.0 avfvideosrc device-index=0 ! video/x-raw, framerate=30/1, width=1280, height=720 ! queue ! autovideosink
音频:
gst-launch-1.0 -v osxaudiosrc device=0 ! audio/x-raw ! queue ! autoaudiosink
注意:avfvideosrc
是 gst-plugins-bad
的一部分,osxaudiosrc
- gst-plugins-good