Question about IMX8MQ and Gstreamer's glimagesink performance.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Question about IMX8MQ and Gstreamer's glimagesink performance.

978 Views
jkshin
Contributor II

I am developing equipment(using I.MX8MQ) that divides one 4K 60p video into one to six parts and rotates 90 degrees to play on one to six monitors. Each monitor stands with a rotation of 90 degrees side by side. I use Gstreamer as a video playback library.

When playing a 4K 60p video, the original video without editing is played without difficulty on waylandsink. (In this case, glimagesink is slow.(about 40~50fps))
When the video needs to be divided and rotated, the rotate-method of glimagesink should be used. (videoflip/videorotate is too slow)
The problem is as follows. If I use glimagesink to crop the video into two and rotate it 90 degrees, the frame rate falls below 30 fps. The 4K 60p video, which is divided into three, four, five, and six, is operated without difficulty.

I tried to use Appsink and SDL2, but to use SDL2, I had to use videoconvert because I had to change color format from NV12 to other formats such as RGB and YV12, which is too slow.

The following is the gstreamer pipeline used for the test.

1. original video - waylandsink : no problem(60 fps)

gst-launch-1.0 -v filesrc location=4K_60p_HEVC_WorldCup.mp4 ! qtdemux name=demux demux.video_0 ! queue ! vpudec ! queue ! waylandsink

-------------------------------------------------------------------------------------------------------------------

2. original video - glimagesink : low frame rate(about 40~50 fps)

gst-launch-1.0 -v filesrc location=4K_60p_HEVC_WorldCup.mp4 ! qtdemux name=demux demux.video_0 ! queue ! vpudec ! queue ! glimagesink render-rectangle='<0, 0,3840,2160>

-------------------------------------------------------------------------------------------------------------------

3. divide a 4K 60p video into 2 part and rotate 90 degree - glimagesink : low frame rate(below 30 fps)

gst-launch-1.0 -v filesrc location=4K_60p_HEVC_WorldCup.mp4 ! qtdemux name=demux demux.video_0 ! queue ! vpudec ! queue ! videocrop top=0 bottom=0 left=0 right=1920 ! queue ! glimagesink rotate-method=1 force-aspect-ratio=false render-rectangle='<0, 0,3840,2160>'

-------------------------------------------------------------------------------------------------------------------

4. divide a 4K 60p video into 3 part and rotate 90 degree - glimagesink : no problem(60 fps)

gst-launch-1.0 -v filesrc location=4K_60p_HEVC_WorldCup.mp4 ! qtdemux name=demux demux.video_0 ! queue ! vpudec ! queue ! videocrop top=0 bottom=0 left=0 right=2560 ! queue ! glimagesink rotate-method=1 force-aspect-ratio=false render-rectangle='<0, 0,3840,2160>'

-------------------------------------------------------------------------------------------------------------------

The current situation is as above and the questions are as follows.

1) Why is waylandsink slow to play on glimagesink when there is no problem?(Original, split into two)
2) Is there a way to make 60 fps come out when playing the original or two split images with glimagesink?

0 Kudos
0 Replies