Forums

Using Gstreamer for simultaneous

  • Hi,

    I am attempting to construct a pipeline that uses a tee element so that I can run a few different threads from my Leopard board. So far, I have tried to record and live preview simultaneously but I have not been successful.

    Taking a stab, I would have thought that the following would be an appropriate pipeline to do this:

    / # gst-launch v4l2src always-copy=false ! dmaiaccel ! \

       > tee name=tee .src0,src1 tee.src0 ! \

       > queue ! TIDmaiVideoSink sync=false displayStd=v4l2 displayDevice=/dev/video2 tee.src1 !\

       > queue ! dmaienc_mpeg4 ! qtmux ! filesink location=test.mp4

    This piepline results in a live image on the screen for about a second which freezes, and a file is created with nothing in it - the terminal window loom like this:

    / # gst-launch v4l2src always-copy=false ! dmaiaccel ! tee name=tee .src0,src1 t
    ee.src0 ! queue ! TIDmaiVideoSink sync=false displayStd=v4l2 displayDevice=/dev/
    video2 tee.src1 ! queue ! dmaiaccel ! dmaienc_mpeg4 ! qtmux ! filesink location=
    test.mp4
    <7>mt9v113 1-003c: mt9v113_write_reg reg=0x98c, val=0x2739
    Setting pipeline to PAUSED ...
    [ 3060.700000] mt9v113 1-003c: invalid control id 9963781
    [ 3060.710000] mt9v113 1-003c: invalid control id 9963782
    [ 3060.710000] mt9v113 1-003c: invalid control id 9963783
    [ 3060.720000] mt9v113 1-003c: invalid control id 9963784
    [ 3060.720000] mt9v113 1-003c: invalid control id 9963785
    [ 3060.730000] mt9v113 1-003c: invalid control id 9963786
    [ 3060.730000] mt9v113 1-003c: invalid control id 9963787
    [ 3060.740000] mt9v113 1-003c: invalid control id 9963788
    [ 3060.740000] mt9v113 1-003c: invalid control id 9963789
    [ 3060.750000] mt9v113 1-003c: invalid control id 9963790
    [ 3060.750000] mt9v113 1-003c: invalid control id 9963791
    [ 3060.760000] mt9v113 1-003c: invalid control id 9963792
    [ 3060.760000] mt9v113 1-003c: invalid control id 9963793
    [ 3060.770000] mt9v113 1-003c: invalid control id 9963796
    [ 3060.780000] mt9v113 1-003c: invalid control id 9963797
    [ 3060.780000] mt9v113 1-003c: invalid control id 9963798
    [ 3060.790000] mt9v113 1-003c: invalid control id 9963799
    [ 3060.790000] mt9v113 1-003c: invalid control id 9963800
    [ 3060.800000] mt9v113 1-003c: invalid control id 9963801
    [ 3060.800000] mt9v113 1-003c: invalid control id 9963802
    [ 3060.810000] mt9v113 1-003c: invalid control id 9963803
    [ 3060.810000] mt9v113 1-003c: invalid control id 9963804
    [ 3060.820000] mt9v113 1-003c: invalid control id 9963805
    [ 3060.820000] mt9v113 1-003c: invalid control id 9963806
    [ 3060.840000] vpfe-capture: hpitch = 640, vpitch = 480, bpp = 2
    [ 3060.850000] vpfe-capture: adjusted hpitch = 640, vpitch = 480, bpp = 2
    [ 3060.870000] vpfe-capture vpfe-capture: calling ccdc_config_raw()
    Pipeline is live and does not need PREROLL ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock

    The pipeline does not stop until I press ctrl C.

    I have played around a little with the elements and theire order and from what I can gather it appears that the dmaienc_mpeg4 element (I think) that causes the freeze.

    I was wondering if anybody could help

     

    Kacie

  • Actually, I think it works for all other plugins, but only one TI plugin can be used at a time.

    Any ideas?

    kacie

  • Hi Kacie

    Have you seen this link?

    gstreamer.freedesktop.org/.../gstreamer-plugins-tee.html

    or even this link has a pipeline based on the Tee plugin:

    blog.elphel.com/.../interfacing-elphel-cameras-with-gstreamer-opencv-opengl-and-python-get-profit-of-dsp-or-gpu-based-optimisation-control-camera-settings-from-python-application-or-human-interface-device-hid

  • Also found these two sample pipelines for DM365 on TI's website:

     

    Captured (alsasrc) -> AAC + PlayBack:

    gst-launch -v alsasrc num-buffers=1000 ! audio/x-raw-int, endianness=1234, signed=true, width=16, depth=16, rate=44100, channels=2 ! tee name=t ! queue ! TIAudenc1 bitrate=64000 engineName=codecServer codecName=aaclcenc ! filesink location=output.aac t. ! queue ! alsasink sync=false

     

    PCM File -> AAC + PlayBack:

    gst-launch filesrc location=sample.pcm ! audio/x-raw-int, endianness=1234, signed=true, width=16, depth=16, rate=44100, channels=2 ! tee name=t ! queue ! TIAudenc1 bitrate=64000 engineName=codecServer codecName=aaclcenc ! filesink location=output.aac t. ! queue ! alsasink sync=false

     

    They are for Audio playback and record though.