gstreamer и Qt с nvidia на ARM

Я перекрестно скомпилировал 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, и я получаю видео, отображаемое в оттенках серого, но реплицированное 4 раза на экранах. Я не уверен, почему, но моя плата ARM имеет 4 процессора. Смотрите прикрепленный скриншот.

введите здесь описание изображения

Кто-нибудь сталкивался с этой проблемой и, возможно, имеет представление о том, как успешно запускать такие конвейеры gstreamer с Qt?


person Luca    schedule 08.03.2016    source источник


Ответы (1)


Образец Qt обычно использует decodebin или playbin для воспроизведения видео.
Так что это не является ненормальным для Qt воспроизводить видео по-разному с вашим конвейером.
Попробуйте воспроизвести это видео в GStreamer с decodebin или playbin и проверьте, происходит ли такое же явление.

Еще один момент заключается в том, что вы используете nveglglesink для конвейера, но Qt всегда использует свой собственный элемент приемника (qtvideorendersink или что-то в этом роде).
Существует вероятность того, что ваш декодированный формат плохо обрабатывается приемником qt.
(Явление "серых и повторяющихся изображений" обычно происходит из-за того, что элемент приемника неправильно обрабатывает формат).
Если это так, преобразование в другой формат перед отправкой в ​​приемник Qt может решить эту проблему.

person matilda gl    schedule 13.03.2016
comment
Спасибо за ответ. По крайней мере, этот конвейер gstreamer работает нормально: gst-launch-1.0 filesrc location=tracked.mp4 ! decodebin ! nveglglessink. Можно ли легко изменить конвейер gstreamer для QT? - person Luca; 13.03.2016
comment
@Luca: Да, можно легко изменить конвейер GStreamer по умолчанию. Он должен быть где-то внутри qtmultimedia (IIRC, это должен быть MediaPlayer). Однако имейте в виду, что ваше изменение также повлияет на другие приложения Qt. - person matilda gl; 16.03.2016