GStreamer unable to create pipeline

hello,
i’m moving the discussion from this thread (Errors compiling ofxAxisGrabber) here because i’ve identified that my issue a with GStreamer itself

i’m compiling a project generated with the ofxGStreamer addon; i am able to compile the example but i see no video and get these errors in the xcode console:

[ error ] ofGstUtils: startPipeline(): unable to pause pipeline
[warning] ofGstUtils: getDurationNanos(): couldn’t query time duration
[ error ] ofGstVideoPlayer: allocate(): cannot get pipeline caps
[warning] ofGstVideoUtils: update(): ofGstVideoUtils not loaded
[warning] ofGstVideoUtils: update(): ofGstVideoUtils not loaded
[warning] ofGstVideoUtils: update(): ofGstVideoUtils not loaded

when i test to see if i have gstreamer installed properly, it appears that i do (see below).

if there’s another test i can perform to assure that GStreamer is installed properly, i’d be happy to try.


mill:~ ali$ /Library/Frameworks/GStreamer.framework/Versions/1.0/bin/gst-inspect-1.0
y4menc: y4menc: YUV4MPEG video encoder
y4mdec: y4mdec: YUV4MPEG demuxer/decoder
xingmux: xingmux: MP3 Xing muxer
x264: x264enc: x264enc
wavparse: wavparse: WAV audio demuxer
wavpack: wavpackenc: Wavpack audio encoder
wavpack: wavpackdec: Wavpack audio decoder
wavenc: wavenc: WAV audio muxer
vpx: vp9enc: On2 VP9 Encoder
vpx: vp9dec: On2 VP9 Decoder
vpx: vp8enc: On2 VP8 Encoder
vpx: vp8dec: On2 VP8 Decoder
vorbis: vorbistag: VorbisTag
vorbis: vorbisparse: VorbisParse
vorbis: vorbisdec: Vorbis audio decoder
vorbis: vorbisenc: Vorbis audio encoder
volume: volume: Volume
voaacenc: voaacenc: AAC audio encoder
videotestsrc: videotestsrc: Video test source
videoscale: videoscale: Video scaler
videorate: videorate: Video rate adjuster
videoparsersbad: vc1parse: VC1 parser
videoparsersbad: h265parse: H.265 parser
videoparsersbad: pngparse: PNG parser
videoparsersbad: mpeg4videoparse: MPEG 4 video elementary stream parser
videoparsersbad: mpegvideoparse: MPEG video elementary stream parser
videoparsersbad: diracparse: Dirac parser
videoparsersbad: h264parse: H.264 parser
videoparsersbad: h263parse: H.263 parser
videomixer: videomixer: Video mixer 2



adpcmdec: adpcmdec: ADPCM decoder
adder: adder: Adder
accurip: accurip: AccurateRip™ CRC element
a52dec: a52dec: ATSC A/52 audio decoder
gnonlin: gnlurisource: GNonLin URI Source
gnonlin: gnloperation: GNonLin Operation
gnonlin: gnlcomposition: GNonLin Composition
gnonlin: gnlsource: GNonLin Source
staticelements: bin: Generic bin
staticelements: pipeline: Pipeline object

Total count: 159 plugins, 1052 features
mill:~ ali$

what video are you trying? i would try first with the example that comes with ofxGStreamer. ofxAxisGrabber might require some changes depending on the specific model of camera or version of gstreamer you are using. i would try making the camera work from the console using gst-launch-1.0 and the pipeline that the addon prints when it starts, once you manage to make that run you can easily modify the addon to use the new pipeline

Actually I am trying gstreamer with the built-in example of “fingers.mov”

No ip camera

The pipeline problem persists with video files (not just ip streams)

here is a test with the command line tools; an “internal error”…

mill:bin ali$ ./gst-launch-1.0 videotestsrc pattern=11
Setting pipeline to PAUSED …
Pipeline is PREROLLED …
Setting pipeline to PLAYING …
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2933): void gst_base_src_loop(GstPad *) (): /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0:
streaming task paused, reason not-linked (-1)
Execution ended after 0:00:00.002579000
Setting pipeline to PAUSED …
Setting pipeline to READY …
Setting pipeline to NULL …
Freeing pipeline …
mill:bin ali$

ok, i finally figured this out.
i think the issue is with the subtleties of how gstreamer is installed on os x;
finally, i was able to get gstreamer addon’s video and streaming axis features working by

  1. removing all existing gstreamer components all over my machine,
  2. installing the following packages with homebrew:

gstreamer
gst-ffmpeg
gst-plugins-base
gst-libav
gst-plugins-good

homebrew installed gstreamer 1.2.4 this way, tho the latest binaries from gstreamer’s site is at 1.3.9

thanks for the help everyone.

ali

Hello …

i was able to play the streamer … but the grabber is showing in black…

can anyone give me some suggestion please?


#include "ofApp.h"
    #include "ofGstVideoPlayer.h"

//--------------------------------------------------------------
void ofApp::setup(){
    axisGrabber = ofPtr<ofxAxisGrabber>(new ofxAxisGrabber);
    axisGrabber->setCameraAddress("192.168.100.90");
    axisGrabber->setAuth("root", "pass");
    grabber.setGrabber(axisGrabber);
    grabber.initGrabber(320,200);
    
    player.setPlayer(ofPtr<ofGstVideoPlayer>(new ofGstVideoPlayer));
    player.loadMovie("fingers.mov");
    player.play();
    
}

//--------------------------------------------------------------
void ofApp::update(){
    grabber.update();
    player.update();
    
}

//--------------------------------------------------------------
void ofApp::draw(){
    grabber.draw(0,0);
    player.draw(340,0);
}