Hello,
I have a e-CAM131_CUTX2 13MP MIPI camera attached to my TX1 board, and I want to save the video stream into discrete files, of 5 min each, then later reassemble the video recordings together again, without ANY frameloss, and also preferably while recording form an USB microphone.
I have earlier worked with FFMPEG, however I’d like to use Gstreamer for this project.
As I wanna use the Jetson board’s encoding capabilities, I’m using nvvidcon and omxh265enc to encode the video stream. The pipeline I have the best luck with is as follows;
gst-launch-1.0 -e
v4l2src device=$VIDEO_DEV
! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0
! “video/x-raw, format=(string)UYVY, framerate=30/1, width=(int)3840, height=(int)2160”
! nvvidconv
! “video/x-raw(memory:NVMM), format=(string)I420, width=(int)3840, height=(int)2160, framerate=30/1”
! omxh265enc
! mux.
alsasrc device=$AUDIO_DEV
! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0
! audioconvert
! voaacenc
! mux.
matroskamux name=mux
! multifilesink next-file=max-duration max-file-duration=300000000000 location=$FILENAME-%05d.mkv
However with this, I loose at least a couple of frames between files. I have tried removing different elements, like the audio part, however this changes nothing with the frameloss, I don’t think it’s a matter of CPU resources, as it only uses about 20% of the total CPU.
I thought I would try to set the number of Iframes encoded to a higher number, but when I use omxh265enc’s iframeinterval setting, it just keeps on sending Iframes every 60 frames.
Any help or input would be appreciated, thanks.