简体   繁体   English

gstreamer和Qt与ARM上的nvidia

[英]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. 我已经为我的ARM板交叉编译了Qt 5.5.1,并一直尝试使用gstreamer和Qt播放视频文件。 I have the following pipeline on gstreamer which works fine. 我在gstreamer上有以下管道,效果很好。

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. 现在,我尝试使用qt多媒体附带的视频播放器示例来播放相同的视频,并且该视频以灰度显示,但在屏幕上复制了4次。 I am not sure why but my ARM board does have 4 processors. 我不确定为什么,但是我的ARM板确实有4个处理器。 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运行这样的gstreamer管道有一个想法?

Qt sample usually use decodebin or playbin to play video. Qt样本通常使用decodebinplaybin播放视频。
So it is not abnormal for Qt play video differently with your pipeline. 因此,Qt与您的管道以不同的方式播放视频并非异常。
Try to play this video in GStreamer with decodebin or playbin , and check whether same phenomenon occur. 尝试使用带有decodebinplaybin GStreamer播放此视频,并检查是否发生相同现象。

One more points is that you use nveglglesink for the pipeline, but Qt always uses its own sink element ( qtvideorendersink or somethings). 还有一点是,您将nveglglesink用于管道,但是Qt始终使用其自己的接收器元素( qtvideorendersink或其他)。
There is chance that your decoded format is not handled well by qt sink. Qt接收器可能无法正确处理您的解码格式。
( "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. 如果是这种情况,请先转换为其他格式,然后再发送到Qt接收器即可解决该问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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