I am integrating a 3rd party camera sensor from ON-Semiconductor with i.MX8M Mini (imx-yocto-L5.4.24_2.1.0). I want to capture 1080p@60fps stream from the camera using gstreamer but I do not get 60fps.
Below is the gstreamer command used to capture the stream:
gst-launch-1.0 -v v4l2src device=/dev/video0 num-buffers=1800 ! 'video/x-raw, width=1920, height=1080, framerate=(fraction)60/1, format=(string)UYVY' ! vpuenc_h264 ! h264parse ! mp4mux ! filesink location=1920x1080.mp4
I am getting only 40fps average in the recorded file.
I have configured the camera for 60fps and confirmed the same on the camera EVM. I am using 2-lane connection between the i.MX8MM and camera and configured the MIPI clock at 1.1Gbps. With this configuration I am able to capture 60fps on the EVM.
Although, I am able to capture 720p@60fps though with below command:
gst-launch-1.0 -v v4l2src device=/dev/video0 num-buffers=1800 ! 'video/x-raw, width=1280, height=720, framerate=(fraction)60/1, format=(string)UYVY' ! vpuenc_h264 ! h264parse ! mp4mux ! filesink location=1280x720.mp4
Please help to solve the problem.
Thanks in advance,
one can try decode example
gst-launch-1.0 filesrc location=file.mp4 ! video/quicktime ! qtdemux ! queue ! vpudec ! queue ! waylandsink sync=false
gst-launch-1.0 v4l2src ! video/x-raw,format=NV12,width=1920,height=1080 ! queue max-size-time=0 ! vpuenc_h264 ! h264parse ! vpudec ! queue max-size-time=0 ! waylandsink enable-tile=true sync=false
or could you try with Demo Image from
is below pipeline working for you (MIPI CSI camera accessory; part number: MINISASTOCSI & MIPI DSI to HDMI Converter)
1080p @60 fps camera capture:
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=1920,height=1080 ! waylandsink
I tried the camera transcode command I am getting good framerate though I do not know how much. So to check the fps I used "fpsdisplaysink text-overlay=true" instead of waylandsink, but with that I got only 10-11 fps. I think fpsdisplaysink is reducing the fps somehow.
Is there a way to confirm the fps while displaying the camera stream on HDMI screen?
I did not try the demo image, as it would not have the support for the 3rd party camera I am using.
I tried the suggested pipeline for 1080p@60fps camera capture with my camera but it did not work. I do not have a MINISASTOCSI module so I could not test with it.
Also, when I used below pipeline to capture a h264 video, I got 60FPS.
gst-launch-1.0 -v v4l2src device=/dev/video0 num-buffers=1800 ! 'video/x-raw, width=1920, height=1080, framerate=(fraction)60/1, format=(string)UYVY' ! vpuenc_h264 ! h264parse ! filesink location=1920x1080.h264
I have removed the mp4mux used in the original command. Is there a way to record mp4 video without using mp4mux?