We’re currently evaluating the video decoding capabilities of the TK1 (using LfT R19.3), and are not too impressed so far. The only way to get decent performance with acceptable CPU load looks like:
gst-launch-0.10 filesrc location="$1" ! qtdemux name=demux demux.video_00 ! \ queue ! nv_omx_h264dec ! nv_omx_hdmi_videosink
This allows to decode a single 4k video stream (the “Roast Duck” demo by Red) and output it over HDMI (no xorg involved). Trying to play the same video in an X window using
nvgstplayer -i <filename>
Gives ~1 fps (tried the 0.10 and 1.0 versions; also tried under Ubuntu desktop with compiz and lxde without any compositor; all the same). Is 4k playback under xorg supported? And if so, how can we get it going?
Another problem that’s troubling us is playing back multiple 1080p video streams simultaneously. Playback of up to 4 streams under xorg is kind-of acceptable, with all 4 cores maxed out and occasional drops.
One goal is to play 4-6 streams concurrently in a grid, and we’ve tried several gstreamer pipelines to test this. One route might be something along the lines of
gst-launch \ nv_omx_videomixer name=mix ! nv_omx_hdmi_videosink \ filesrc location="big_buck_bunny_1080p_h2642.mov" ! queue ! \ qtdemux name=demux1 demux1.video_00 ! nv_omx_h264dec ! mix. \ filesrc location="big_buck_bunny_1080p_h2642.mov" ! queue ! \ qtdemux name=demux2 demux2.video_00 ! nv_omx_h264dec ! mix.
However, we’re unable to get the omxh264dec talk to the nv_omx_videomixer (“could not link” error). Throwing in a nvvidconv does not seem help. And even if it would, it’s still puzzling how to specify the video offsets / sizes with the nv_omx_videomixer. The port parameters from the original gstreamer videomixer (“xpos”, “ypos”, etc) seem to be unsupported by nv_omx_videomixer.
Simply replacing the nv_omx_videomixer with said standard gstreamer component actually does get something on the screen, but again with horrible performance (which is not entirely surprising, because it’s processing lots of pixels using the CPU). Also, we were unable to find a configuration which gives correct colors. It seems that at some place in the pipeline YUV is interpreted as RGB(A), but we did not bother to figure out where because the performance is not acceptable anyway.
So, is there any chance to play several videos in a grid like arrangement?