osx-mountain-liongstreamerfacetimegst-launch

Gstreamer on OSX


I'm trying to create a very simply Gstreamer pipeline where I have a source element that is my FaceTime camera and a sink element that is a udp sink.

I first install Gstreamer using the instructions here. I ran some of the basic pipelines no problem; however, when I tried to use the following command

./gst-launch-0.10 v4l2src ! xviimagesink

I got the following error:

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

So I did some digging and turns out that the v4l2src plugin is in a gst-plugins-good. I installed these good plugins using macports using the following command:

port install gst-plugins-good

After a very long time everything installed without error. Now gst-launch appears in three places.

/Library/Frameworks/GStreamer.framework/Versions/0.10/bin/gst-launch-0.10
/opt/local/bin/gst-launch
/opt/local/bin/gst-launch-0.10

If I try to run the above mentioned pipline from any of those directories I still get

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

If I type the following command from anywhere I get some more errors but seems like it still is not finding v4lsrc.

gst-launch v4l2src ! xviimagesink

Gives:

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

So it seems like I have GStreamer mess and I still can't get my camera to work because GStreamer can't find v4l2src.

Some help would be appreciated! Thanks in advance.


Solution

  • v4l2src means "video-for-linux (ver.2) source". since you are not running "linux", it is not so surprising that you cannot use "v4l2".

    you might try to use the osxvideosrc (afaik this is in gstreamer-plugins-bad).

    generally i suggest to check which elements are installed on your machine when you are looking for a a specific functionality, e.g.:

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

    PS: and usually i find it a good idea to throw some colorspace-converter (like ffmpegcolorspace) between a video-source and and -sink.