cancel
Showing results for 
Search instead for 
Did you mean: 

Playing Video with gst-launch

gokhannsahin
Associate II

Hi,

I want to play a video from mounted USB stick. Once USB plugged the host, I mount it with "mount /dev/sda1 /mnt" and than quit the psplash screen with "psplash-drm-quit" on target. After that, trying to play a video with "gst-launch-1.0 playbin uri=file:///media/aaa.mp4" but there is nothing screen on TFT. Also, I have tried this "gst-launch-1.0 v4l2src ! "video/x-raw, width=1280, Height=720, framerate=(fraction)15/1" ! queue ! autovideosink -e" command but there is nothing again.  

Console Output;

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
WARNING: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0: Could not open DRM module (NULL)
Additional debug info:
../../../gst-plugins-bad-1.14.2/sys/kms/gstkmssink.c(709): gst_kms_sink_start (): /GstKMSSink:autovideosink0-actual-sink-kms:
reason: No such file or directory (2)
Setting pipeline to PLAYING ...
New clock: GstSystemClock

Furthermore, I have tried camera examples for qt it too can't playing video or not seen on TFT altough the path of video has been selected right . Also, why is the landscape of TFT wrong and width/height of screen? I can't see the application fullscreen.

9 REPLIES 9
gokhannsahin
Associate II

I can't still play a video, is there someone have the same issue?

AntonioST
ST Employee

My understanding is that you are not using weston and you want to play a video directly on the screen.

In this case you will use the CPU (not the GPU) for all the operation of scaling and color conversion, with low performance.

Anyway, it is possible, but the gstreamer command should be similar to this

gst-launch-1.0 playbin uri=file:///home/test/file.mp4 video-sink='videoconvert ! videobox left=0 right=0 top=-440 bottom=0 ! video/x-raw,width=480,height=800 ! kmssink driver-name=stm connector-id=31 force-modesetting=true'

The parameter connector-id can be retrieved from the output of

modetest -M stm

together with "width" and "height".

The parameters "left", "right", "top" and "bottom" are computed separately based on display size and frame size of the video. If you do not provide the correct cropping you force gstreamer to do a re-sampling, and the performance drops further.

In the example above I use the display of board DK2 and my video is 480x360.

Thank you @AntonioST (ST Employee)​ 

I need a Qt application and your manual says you should choose openstlinux-eglfs for qt. 

Therefore not used weston, but playing a video from USB can be needed in qt application, what should we then? I have just tried it without GPU, it's really low performance. 

AntonioST
ST Employee

The image st-example-image-qt is for example only and includes some standard QT packages available in yocto.

You can run some of the QT examples, e.g.

export QT_QPA_PLATFORM=eglfs
/usr/share/examples/multimedia/video/qmlvideo/qmlvideo

gokhannsahin
Associate II

This example can't play the video. A black screen always seems. I attached a screen of it.

Is it possible to use wayland with qt for your example distros?(if choose openstlinux-weston)

Or which is better performance while playing a video?

0690X000009ZdqOQAS.jpg

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

EDIT:

It was solved after installed qt to /opt/ path.

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

Also, I have tried qt to develop a simple application, but it gives that error;

Note : I have done all settings of kits, compiler and debugger according to http://www.emsyslabs.com/configure-new-kit-in-qtcreator-based-on-yocto-meta-toolchain-qt5/

/opt/st/stm32mp1/2.6-snapshot/sysroots/x86_64-openstlinux_eglfs_sdk-linux/usr/libexec/arm-openstlinux_eglfs-linux-gnueabi/gcc/arm-openstlinux_eglfs-linux-gnueabi/8.2.0/real-ld:-1: error: cannot find -lGLESv2
:-1: error: collect2: error: ld returned 1 exit status

gokhannsahin
Associate II

After installed qt to /opt/, it works and not give error.

However, qt is too low performance while playing a video with eglfs. How can I solve this problem? It needs weston/wayland distro?

And, it gives a warning "A lot of buffers are being dropped." while playing.

Also, after the program run once, I can't run again. It gives error "Could not queue DRM page flip on screen DSI1 (Device or resource busy)"

15:06:30: Starting /opt/deneme/bin/deneme ...
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
qt.qpa.input: X-less xkbcommon not available, not performing key mapping
Warning: "A lot of buffers are being dropped."
Warning: "A lot of buffers are being dropped."
15:16:36: Application finished with exit code 1.
 
15:16:38: Starting /opt/deneme/bin/deneme ...
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
qt.qpa.input: X-less xkbcommon not available, not performing key mapping
Could not queue DRM page flip on screen DSI1 (Device or resource busy)
Could not queue DRM page flip on screen DSI1 (Device or resource busy)

AntonioST
ST Employee

It's also possible to run QT over weston/wayland with QtWayland.

gokhannsahin
Associate II

It can't compile st_example-image-qt with weston distro.

ERROR: Nothing PROVIDES 'st-example-image-qt'
st-example-image-qt was skipped: conflicting distro feature 'x11' (in DISTRO_FEATURES)

 Also, after the program run once, I can't run again. It gives error "Could not queue DRM page flip on screen DSI1 (Device or resource busy)". Why does it give this error?

And, how can I change the landscape of LCD on eval-kit like in your GTK example?

Ara.1
Senior

hi

i am also made it work with gst play

do we have any option to video resize ?