Gstreamer encoding pipeline does not work with higher resolution and gives internal data stream error

Viewed 10

I am trying to encode a video from the camera, See3CAM_CU30, on Zynq UltraScale+ MPSoC ZCU104 Evaluation Kit. I have built a pipeline in the terminal of the board that is using camera footage as input and encodes it into a file.

gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=640,height=480,framerate=30/1 ! videoconvert ! video/x-raw, format=\(string\)NV12 ! queue max-size-bytes=0 ! omxh264enc control-rate=0 target-bitrate=9953 latency-mode=0 ! avimux name=mux ! filesink name=filesink location=/run/media/mmcblk0p1/input/cameraTryV_correctV2.mp4

The above code works just fine and gives me an encoded file. However, when I changed only the resolution into 1920x1080, and nothing else is changed, it gives this error:

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
Additional debug info:
../../../../gstreamer-1.12.2/libs/gst/base/gstbasesrc.c(2939): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)
Execution ended after 0:00:00.118965368
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

I have also tried other resolutions but it continued to give the same error. I looked the gstreamer documentations and online resources, yet could not find a solution for my case. What should I do encode with higher resolutions. There are 2 restrictions for me that:

  1. I do not have sudo permissions. Thus, it would be the best if the solution does not require downloading new plugins.
  2. 1920x1080 is the main resolution that should be encoded.
0 Answers
Related