AnsweredAssumed Answered

iMX6 gstreamer pipeline appsrc to mp4mux

Question asked by Evgeny Molchanov on Apr 19, 2016
Latest reply on Apr 19, 2016 by Evgeny Molchanov

Hello all.

i need to record video from IP cameras in chunks of 1 minute each.

This command line pipeline

gst-launch rtspsrc location=rtsp://admin:admin@192.168.1.200/0 ! gstrtpjitterbuffer ! rtph264depay ! h264parse ! mp4mux ! filesink location=/media/Videos/mvr.mp4 -e -v

works perfectly.

But then I split it programmatically on two pipelines:

descr = g_strdup_printf ("rtspsrc name=rtspsrc location=%s ! gstrtpjitterbuffer ! rtph264depay ! legacyh264parse ! appsink name=appsink", url);

 

and

descr = g_strdup_printf ("appsrc name=appsrc !  mp4mux ! filesink name=filesink");

 

i rceive an error:

Error: Internal data flow error.

[Debug details: /home/mef/iMX6/fsl-release-bsp/build-dfb/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/gstreamer/0.10.36-r2/gstreamer-0.10.36/libs/gst/base/gstbasesrc.c(2625): gst_base_src_loop (): /GstPipeline:pipeline1/GstAppSrc:appsrc:

streaming task paused, reason not-negotiated (-4)]

Returned, stopping playback

Deleting pipeline

if I change second pipeline to:

 

descr = g_strdup_printf ("appsrc name=appsrc ! vpudec output-format=1 ! queue ! vpuenc ! mp4mux ! filesink name=filesink");

 

everything works fine.

 

I don't want to use VPU for this cause I need VPU for decoding and displaying video from IP cameras.

Help me please.

Outcomes