Common Issues
Rockchip Platform Support
7.14 Common Issues
7.14.1 4K30 Plays Normally but 4K60 Stutters
- Confirm that
mppvideodec, rather than a software decoder, is actually being used. - Test the frame rate from the decoder to
fakesinkand from the decoder to the display sink separately. - Use
--flags=3to disable subtitles. - Check the CPU, GPU, and VPU frequencies, system load, and DDR bandwidth.
- Compare performance with AFBC when the entire path supports it.
- Test
sync=falseonly when measuring throughput; clock synchronization should normally remain enabled during playback.
7.14.2 High CPU Usage
Common causes include not using MPP hardware decoding, software format conversion, or high processing overhead from subtitles and scaling. Use GST_DEBUG and a DOT graph to confirm which decoder was actually created and whether videoconvert was inserted.
7.14.3 Playback Stalls or Progress Remains at 0
First try Playbin3:
gst-play-1.0 --flags=3 --use-playbin3 test.mp4Also use gst-discoverer-1.0 to check the container, tracks, and missing plugins.
7.14.4 Video Is Displayed but There Is No Audio
First use aplay to verify the sound card, and then specify the ALSA device explicitly:
gst-play-1.0 --flags=3 test.mp4 \
--audiosink='alsasink device=hw:0,0'7.14.5 Subtitles Cause Stuttering
Subtitle composition may involve image extraction, RGB conversion, blending, and conversion back to the display format. Use --flags=3 to disable subtitles during performance tests. For high-resolution products, consider drawing subtitles on a separate layer with a UI framework such as Qt.
7.14.6 v4l2src Cannot Capture at the Full Frame Rate
First bypass GStreamer to verify the V4L2 driver capability:
v4l2-ctl -d /dev/video0 \
--set-fmt-video=width=1920,height=1080,pixelformat=NV12 \
--stream-mmap=3 --stream-skip=1 --stream-pollIf v4l2-ctl reaches the full frame rate but GStreamer does not, increase the number of buffers:
gst-launch-1.0 v4l2src device=/dev/video0 min-buffers=64 \
! 'video/x-raw,width=1920,height=1080,format=NV12' \
! waylandsinkAlso confirm that the downstream path is not blocked, and add a queue before branches such as encoding and display.
7.14.7 v4l2src Format Negotiation Fails
v4l2-ctl -d /dev/video0 --list-formats-ext
gst-inspect-1.0 v4l2src- When the device outputs a raw format such as NV12, NV16, BGRA, or BGRx, connect it to a display or encoding plugin that supports the same Caps.
- When the device outputs JPEG/MJPEG, add
jpegparse ! mppjpegdec. - When the upstream and downstream formats do not match, add
videoconvert, while accounting for the CPU or RGA overhead.
7.14.8 Resolutions Above 4K Cannot Be Captured
Check the limit in /etc/profile.d/gst.sh:
export GST_V4L2SRC_MAX_RESOLUTION=3840x2160If the hardware, driver, and bandwidth all support the required resolution, increase this value as needed and reload the environment.

