【问题标题】:Gstreamer on OSXOSX 上的 Gstreamer
【发布时间】:2012-10-20 21:55:54
【问题描述】:

我正在尝试创建一个非常简单的 Gstreamer 管道,其中我有一个源元素,即我的 FaceTime 摄像头和一个接收器元素,即 udp 接收器。

我首先使用说明 here 安装 Gstreamer。我跑了一些基本的管道没问题;但是,当我尝试使用以下命令时

./gst-launch-0.10 v4l2src ! xviimagesink

我收到以下错误:

ERROR: pipeline could not be constructed: no element "v4l2src".

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

port install gst-plugins-good

在很长一段时间后,一切安装都没有错误。现在 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

如果我尝试从这些目录中的任何一个运行上述管道,我仍然会得到

ERROR: pipeline could not be constructed: no element "v4l2src".

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

gst-launch v4l2src ! xviimagesink

给予:

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".

所以看起来我的 GStreamer 乱七八糟,我仍然无法让我的相机工作,因为 GStreamer 找不到 v4l2src。

我们将不胜感激!提前致谢。

【问题讨论】:

    标签: osx-mountain-lion gstreamer facetime gst-launch


    【解决方案1】:

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

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

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

    $ gst-inspect | grep -i video |grep -i source
    

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

    【讨论】:

    • 您好,感谢您的回复。这就解释了事情。当我试图弄清楚这一点时,我运行了 gst-inspect 命令,并且由于明显的原因从未在列表中获得 v4lsrc。我去看看 osxvideosrc。
    • 感谢 umlaute 的回答!检查命令对我有用。在 macbook pro high sierra 上,我需要这个命令从网络摄像头流式传输。 gst-launch-1.0 autovideosrc device="/dev/video0" ! video/x-raw,width=640,height=480 ! autovideosink
    【解决方案2】:

    对我来说,这两部作品来自 MacPorts (https://www.macports.org/):

    GStreamer 1.0,applemedia: avfvideosrc: Video Source (AVFoundation),使用device-index参数选择设备(索引会因连接顺序而异)。

    bash-3.2# port install gstreamer1*
    
    iCeDeROM:~ cederom$ gst-inspect-1.0 |grep video | grep src
    inter:  intervideosrc: Internal video source
    decklink:  decklinkvideosrc: Decklink Video Source
    applemedia:  qtkitvideosrc: Video Source (QTKit)
    applemedia:  avfvideosrc: Video Source (AVFoundation)
    ximagesrc:  ximagesrc: Ximage video source
    videotestsrc:  videotestsrc: Video test source
    autodetect:  autovideosrc: Auto video source
    

    GStreamer 0.10(自动检测:autovideosrc:自动视频源)

    bash-3.2# port install gstreamer0*
    
    iCeDeROM:~ cederom$ gst-inspect-0.10 |grep video | grep src
    ximagesrc:  ximagesrc: Ximage video source
    inter:  intervideosrc: FIXME Long name
    gsettings:  gsettingsvideosrc: GSettings video src
    gconfelements:  gconfvideosrc: GConf video source
    autodetect:  autovideosrc: Auto video source
    applemedia:  qtkitvideosrc: Video Source (QTKit)
    applemedia:  miovideosrc: Video Source (MIO)
    videotestsrc:  videotestsrc: Video test source
    

    我使用autovideosink 或osxvideosink 进行测试(第二个工作更快,首先使用Xorg)。使用gst-inspect <module> 获取模块信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-03
      • 2018-06-30
      • 2016-09-09
      相关资源
      最近更新 更多