I am just trying to capture the camera raw to a file at a certain resolution and frame rate . Could you please tell me how this command could do that capture?
nvidia@tegra-ubuntu:~/scripts/scfile$ sh -x ./e.sh
gst-launch-1.0 nvcamerasrc fpsRange=30 30 intent=3 ! video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, framerate=(fraction)30/1 ! nvvidconv ! video/x-raw, format=(string)I420, width=(int)1280, height=(int)720 ! filesink location=raw.420 -e
WARNING: erroneous pipeline: could not link nvcamerasrc0 to nvvconv0
nvidia@tegra-ubuntu:~/scripts/scfile$
since gstreamer go through ISP, you’re not able to capture the camera raw if you’re going through gstreamer pipeline.
the other way to capture camera raw files would be v4l2-ctl, which we called VI-mode.
here’s command for your reference.
however, there’s a known issue of TX2 that camera sensor with embedded metadata might got PXL_SOF failure.
here’s topic for your reference: https://devtalk.nvidia.com/default/topic/1007058/
thanks
@JerryChang does the v4l2-ctl work with bayer’s camera presented at the developers board?
By now it was found that recording from it could be captured with e.g:
For videoparse, I420 is the default format. You can use other formats, see available ones with
gst-inspect-1.0 videoparse
under properties/format.
For y4m, you may have to decode it first. With gstreamer, check y4mdec gstreamer plugin.
Otherwise, maybe ffmpeg can convert a y4m file to a I420 file.
Note: when I run the bigger file I get the following output:
gst-launch-1.0 -v filesrc location=/home/nvidia/ducks_take_off_2160p50.y4m ! y4mdec ! nvvidconv ! video/x-raw(memory:NVMM), format=I420 ! nvoverlaysink
Setting pipeline to PAUSED …
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingPipeline is PREROLLING …
/GstPipeline:pipeline0/GstY4mDec:y4mdec0.GstPad:src: caps = “video/x-raw,\ format=(string)I420,\ width=(int)3840,\ height=(int)2160,\ interlace-mode=(string)progressive,\ pixel-aspect-ratio=(fraction)1/1,\ chroma-site=(string)mpeg2,\ colorimetry=(string)bt2020,\ framerate=(fraction)50/1”
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:src: caps = “video/x-raw(memory:NVMM),\ width=(int)3840,\ height=(int)2160,\ interlace-mode=(string)progressive,\ pixel-aspect-ratio=(fraction)1/1,\ framerate=(fraction)50/1,\ format=(string)I420”
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = “video/x-raw(memory:NVMM),\ width=(int)3840,\ height=(int)2160,\ interlace-mode=(string)progressive,\ pixel-aspect-ratio=(fraction)1/1,\ framerate=(fraction)50/1,\ format=(string)I420”
/GstPipeline:pipeline0/GstNvOverlaySink-nvoverlaysink:nvoverlaysink-nvoverlaysink0.GstPad:sink: caps = “video/x-raw(memory:NVMM),\ width=(int)3840,\ height=(int)2160,\ interlace-mode=(string)progressive,\ pixel-aspect-ratio=(fraction)1/1,\ framerate=(fraction)50/1,\ format=(string)I420”
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = “video/x-raw(memory:NVMM),\ width=(int)3840,\ height=(int)2160,\ interlace-mode=(string)progressive,\ pixel-aspect-ratio=(fraction)1/1,\ framerate=(fraction)50/1,\ format=(string)I420”
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:sink: caps = “video/x-raw,\ format=(string)I420,\ width=(int)3840,\ height=(int)2160,\ interlace-mode=(string)progressive,\ pixel-aspect-ratio=(fraction)1/1,\ chroma-site=(string)mpeg2,\ colorimetry=(string)bt2020,\ framerate=(fraction)50/1”
Pipeline is PREROLLED …
Setting pipeline to PLAYING …
New clock: GstSystemClock
WARNING: from element /GstPipeline:pipeline0/GstNvOverlaySink-nvoverlaysink:nvoverlaysink-nvoverlaysink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2854): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstNvOverlaySink-nvoverlaysink:nvoverlaysink-nvoverlaysink0:
There may be a timestamping problem, or this computer is too slow.
WARNING: from element /GstPipeline:pipeline0/GstNvOverlaySink-nvoverlaysink:nvoverlaysink-nvoverlaysink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2854): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstNvOverlaySink-nvoverlaysink:nvoverlaysink-nvoverlaysink0:
There may be a timestamping problem, or this computer is too slow.
WARNING: from element /GstPipeline:pipeline0/GstNvOverlaySink-nvoverlaysink:nvoverlaysink-nvoverlaysink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2854): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstNvOverlaySink-nvoverlaysink:nvoverlaysink-nvoverlaysink0:
There may be a timestamping problem, or this computer is too slow.
WARNING: from element /GstPipeline:pipeline0/GstNvOverlaySink-nvoverlaysink:nvoverlaysink-nvoverlaysink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2854): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstNvOverlaySink-nvoverlaysink:nvoverlaysink-nvoverlaysink0:
There may be a timestamping problem, or this computer is too slow.
WARNING: from element /GstPipeline:pipeline0/GstNvOverlaySink-nvoverlaysink:nvoverlaysink-nvoverlaysink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2854): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstNvOverlaySink-nvoverlaysink:nvoverlaysink-nvoverlaysink0:
There may be a timestamping problem, or this computer is too slow.
^Chandling interrupt.
Interrupt: Stopping pipeline …
Execution ended after 0:00:12.979387839
Setting pipeline to PAUSED …
Setting pipeline to READY …
Setting pipeline to NULL …
Freeing pipeline …