Сборка QT5 с поддержкой Gstreamer 1.6 и Video Acceleration API (VA-API)

Задача стояла следующая — воспроизведение видео h264 из видеопотока по протоколу rtsp приложением написанным на QT5. Целевая платформа SECO Q7-BT (Q974-5410-2100-IO) с i386 архитектурой процессора. Штатный QT gstmutlimedia-plugins из коробки собран с gstreamer-0.10 который не поддерживает VA-API, из-за чего декодирование и воспроизведение видеопотока h264 осуществляется программными методами без использования аппаратных возможностей и работает крайне медленно. Целевая платформа Linux Ubuntu 14.04 i386.

1 Сборка GStreamer 1.6.1
Сборка будет вестись в отдельный каталог, что позволит в будущем легко перенести и подключить полученные бинарные файлы на другую систему.
1.1 Подготовка к сборке, установка необходимых пакетов:

1.2 Установка переменных окружения:
Создайте и исполните скрипт с следующим содержимым:

В данном случае /opt/gst — директория куда будет собран GStreamer. Если вы используете данную директорию не забудьте что для операций make install вам понадобятся права root.

2. Сборка ORC
Загрузите последнюю версию ORC http://gstreamer.freedesktop.org/src/orc/ распакуйте архив и выполните:

 

3. Сборка gstreamer
Загрузите последнюю версию gstreamer http://gstreamer.freedesktop.org/src/gstreamer/ распакуйте и выполните действия аналогичные прошлому пункту.

4. Сборка плагинов gstreamer.
Загрузите последние версии плагинов base, good, bad и ugly соответственно с:
http://gstreamer.freedesktop.org/src/gst-plugins-base/
http://gstreamer.freedesktop.org/src/gst-plugins-good/
http://gstreamer.freedesktop.org/src/gst-plugins-bad/
http://gstreamer.freedesktop.org/src/gst-plugins-ugly/

Распакуйте и соберите в выше приведённом порядке выполнив:

 

5. Сборка gst-libav
Загрузите последнюю версию gst-libav http://gstreamer.freedesktop.org/src/gst-libav/
распакуйте и выполните действия аналогичные предыдущему пункту.

2. Сборка QT5
Загрузите последний архив с исходниками http://download.qt.io/official_releases/qt/5.5/
и распакуйте его.
Создайте конфигурационный скрипт config.i386:

 

В данном случае сборка будет вестись в целевой каталог /opt/Qt5.5.1-i386

Выполните скрипт, при успешном конфигурировании в результате в таблице модулей QT должна быть строка:

Далее выполните make & sudo make install
Будьте готовы что операция сборки может занять до нескольких часов!

3. Запуск QT приложения.
Для запуска приложения желательно сделать исполняемый скрипт или же прописать объявления по умолчанию. Для указанных выше настроек и путей скрипт будет иметь следующий вид:

 

Где ИСПОЛНЯЕМЫЙ_ФАЙЛ название файла вашей программы расположенной в той же директории что и скрпит.

В случае ошибоки:

Проверьте следующее:
1) Установлен ли пакет libqt5multimedia5-plugins
2) Есть ли в папке /opt/Qt5.5.1-i386/plugins/mediaservice/ файлы libgstmediaplayer.so, libgstaudiodecoder.so, libgstcamerabin.so, libgstmediacapture.so. В случае их отстутствия пересоберите Qt с поддержкой multimedia

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">