OSX上的Gstreamer

Prz*_*ach 1 gstreamer facetime gst-launch osx-mountain-lion

我正在尝试创建一个非常简单的Gstreamer管道,其中我的源元素是FaceTime相机,而接收器元素是udp接收器。

我首先按照此处的说明安装Gstreamer 。我运行一些基本管道没有问题;但是,当我尝试使用以下命令时

./gst-launch-0.10 v4l2src ! xviimagesink
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ERROR: pipeline could not be constructed: no element "v4l2src".
Run Code Online (Sandbox Code Playgroud)

因此,我进行了一些挖掘,结果发现v4l2src插件在gst-plugins-good中。我使用以下命令使用macports安装了这些优秀的插件:

port install gst-plugins-good
Run Code Online (Sandbox Code Playgroud)

经过很长一段时间后,所有内容均已正确安装。现在,gst-launch出现在三个位置。

/Library/Frameworks/GStreamer.framework/Versions/0.10/bin/gst-launch-0.10
/opt/local/bin/gst-launch
/opt/local/bin/gst-launch-0.10
Run Code Online (Sandbox Code Playgroud)

如果我尝试从任何这些目录中运行上面提到的pipline,我仍然会得到

ERROR: pipeline could not be constructed: no element "v4l2src".
Run Code Online (Sandbox Code Playgroud)

如果我从任何地方键入以下命令,都会遇到更多错误,但似乎仍然找不到v4lsrc。

gst-launch v4l2src ! xviimagesink
Run Code Online (Sandbox Code Playgroud)

给出:

Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
GConf Error: Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash. See http://projects.gnome.org/gconf/ for information. (Details -  1: Failed to get connection to session: Not enough memory)
ERROR: pipeline could not be constructed: no element "v4l2src".
Run Code Online (Sandbox Code Playgroud)

因此,似乎我的GStreamer混乱了,但我仍然无法使我的相机正常工作,因为GStreamer找不到v4l2src。

一些帮助,将不胜感激!提前致谢。

uml*_*ute 5

v4l2src表示“ video-for-linux(ver.2)源”。由于您没有运行“ linux”,因此不能使用“ v4l2”也就不足为奇了。

您可以尝试使用osxvideosrc(afaik,它在gstreamer-plugins-bad中)。

通常,我建议您在寻找特定功能时检查机器上安装了哪些元素,例如:

$ gst-inspect | grep -i video |grep -i source
Run Code Online (Sandbox Code Playgroud)

PS:通常,我发现ffmpegcolorspace在视频源和-sink之间添加一些色彩空间转换器(例如)是个好主意。

  • 感谢 umlauute 这个答案!检查命令对我有用。在 macbook pro high sierra 上,我需要此命令从网络摄像头流式传输。`gst-launch-1.0 autovideosrc device="/dev/video0" !视频/x-raw,宽度=640,高度=480!自动视频接收器` (3认同)