Я кросс-скомпилировал Qt 5.5.1 для своей платы ARM и пытался воспроизводить видео файлы, используя gstreamer и Qt. У меня есть следующий конвейер на gstreamer, который работает нормально.
gst-launch-1.0 filesrc location=tracked.mp4 !
qtdemux name=demux demux.video_0! queue ! h264parse ! omxh264dec !
nveglglesink -e
Теперь я пытаюсь воспроизвести то же видео с примерами видеоплеера, поставляемого с qt multimedia, и получаю видео, которое отображается в оттенках серого, но воспроизводится 4 раза по экранам. Я не уверен, почему, но у моей платы ARM есть 4 процессора. Смотрите прикрепленный скриншот.
Кто-нибудь сталкивался с этой проблемой и, возможно, имеет представление о том, как успешно запустить такие конвейеры gstreamer с Qt?
Образец Qt обычно используют decodebin
или же playbin
играть в видео.
Так что это не является нормой для того, чтобы Qt воспроизводил видео по-другому с вашим конвейером.
Попробуйте воспроизвести это видео в GStreamer с decodebin
или же playbin
и проверьте, происходит ли такое же явление.
Еще один момент, который вы используете nveglglesink
для конвейера, но Qt всегда использует свой собственный элемент приемника (qtvideorendersink
или что-то).
Существует вероятность того, что ваш декодированный формат плохо обрабатывается приемником qt.
(«Серые и повторяющиеся изображения» явление обычно происходит, потому что элемент приемника неправильно обрабатывает формат).
Если это так, преобразуйте в другой формат, прежде чем отправка в приемник Qt может решить эту проблему.
Других решений пока нет …