gstreamer和Qt与ARM上的nvidia
问题描述:
我为我的ARM板交叉编译Qt 5.5.1,并试图使用gstreamer和Qt播放视频文件。我有gstreamer上的以下管道工作正常。gstreamer和Qt与ARM上的nvidia
gst-launch-1.0 filesrc location=tracked.mp4 !
qtdemux name=demux demux.video_0! queue ! h264parse ! omxh264dec !
nveglglesink -e
现在,我尝试与视频播放器实例使用Qt多媒体来播放相同的视频和我得到的灰度该影片,但在整个屏幕上重复4次。我不确定为什么,但是我的ARM主板确实有4个处理器。请参阅附件截图。
有没有人碰到这个问题,也许对如何使用Qt成功运行的GStreamer等管道的想法?
答
Qt示例通常使用decodebin
或playbin
播放视频。
因此,Qt播放视频与您的管道不同并不是不正常的。
尝试使用decodebin
或playbin
在GStreamer中播放此视频,并检查是否出现相同的现象。
还有一点是你使用nveglglesink
作为流水线,但Qt总是使用它自己的sink元素(qtvideorendersink
或某些东西)。
有可能您的解码格式不能很好地通过qt接收器处理。
(“Gray and duplicate images”现象通常会发生,因为sink元素不能正确处理格式)。
如果是这样,在发送到Qt接收器之前转换为其他格式可能会解决它。
感谢您的回复。至少这个gstreamer管道工作正常:'gst-launch-1.0 filesrc location = tracked.mp4!解码器! nveglglessink'。是否可以轻松地为QT创建gstreamer管道? – Luca
@Luca:是的,可以轻松更改默认的GStreamer管道。它应该在qtmultimedia(IIRC,它应该是MediaPlayer)内的某个地方。但请记住,您的更改也会影响其他Qt应用程序。 –