简体   繁体   中英

gstreamer and Qt with nvidia on ARM

I have cross compiled Qt 5.5.1 for my ARM board and been trying to play video files using gstreamer and Qt. I have the following pipeline on gstreamer which works fine.

gst-launch-1.0 filesrc location=tracked.mp4 ! 
qtdemux name=demux demux.video_0! queue ! h264parse ! omxh264dec ! 
nveglglesink -e

Now I try to play the same video with the video player examples coming with qt multimedia and I get the video being shown in grayscale but replicated 4 times across the screens. I am not sure why but my ARM board does have 4 processors. See the attached screenshot.

在此处输入图片说明

Has anyone come across this problem and perhaps have an idea on how to run such gstreamer pipelines with Qt successfully?

Qt sample usually use decodebin or playbin to play video.
So it is not abnormal for Qt play video differently with your pipeline.
Try to play this video in GStreamer with decodebin or playbin , and check whether same phenomenon occur.

One more points is that you use nveglglesink for the pipeline, but Qt always uses its own sink element ( qtvideorendersink or somethings).
There is chance that your decoded format is not handled well by qt sink.
( "Gray and duplicate images" phenomenon usually happens because sink element not handle the format correctly).
If it is the case, convert to other format before send to Qt sink may solve it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM