I'm using GStreamer with CM-FX6 to record from the video-in analog source.
Initially, the command I used was :
Recording
gst-launch tvsrc fps-n=30 ! queue ! vpuenc codec=6 bitrate=4000000 ! matroskamux ! filesink location=output3.mkv sync=false
After 1 minute or so, there was a error saying
ERROR: from element /GstPipeline:pipeline0/MFWGstTVSRC:mfwgsttvsrc0: Internal data flow error
Aditional debug info
gstbasesrc.c(2582): gst_base_src_loop (): /GstPipeline:pipeline0/MFWGstTVSRC:mfwgsttvsrc0:
streaming task paused, reaosn error (-5)
But when I changed this to
gst-launch tvsrc fps-n=30 ! queue max-size-buffers=1 max-size-bytes=0 max-size-time=0 ! vpuenc codec=6 bitrate=4000000 ! matroskamux ! filesink location=output3.mkv sync=false
The error goes away. I can keep recording and play back the file using playbin2.
Can someone explain this to me? Even though it's working now for me, I don't really understand it.
Thanks.
To add on, there's a strange thing.
I am now using the setup with a dual-core imx6, instead of quad-core as previously.
Now,
gst-launch tvsrc fps-n=30 ! queue ! vpuenc codec=6 bitrate=4000000 ! matroskamux ! filesink location=output3.mkv sync=false
works.
I don't have to do the number of buffers thing for queue anymore. What gives?