Войти
ПрограммированиеФорумГрафика

GStreamer + Qt

Advanced: Тема повышенной сложности или важная.

#0
14:25, 29 авг. 2018

Здравствуйте!
Задача у меня простая - рендерить видео от камеры Basler в QOpenGLWidget.
Т.к. в перспективе планируется усложнение функционала (в том числе совершенно разные источники данных), решил не изобретать велосипед и взял GStreamer.
Разобрался с SDK камеры и успешно воткнул её в пайплайн GStreamer - видео рендерится в отдельном окне, которое менеджит сам GStreamer. Научился даже перехватывать отрисовку в этом окне.
Теперь пытаюсь скрестить это всё с Qt. Начинают сыпаться не слишком информативные ошибки:

GLib-CRITICAL **: g_hash_table_insert_internal: assertion 'hash_table != NULL' failed
ERROR:gstglbufferpool.c:131:gst_gl_buffer_pool_set_config: assertion failed: (priv->allocator)
и всё вылетает.
Кому-нибудь удалось подружить GStreamer и Qt (пока только на Windows)? Хотя бы просто рендерить видео-файл (videotestsrc) в QOpenGLWidget/QOGLWidget


#1
16:58, 29 авг. 2018

Есть qt-gstreamer на github, хотя давно не обновлялся

#2
(Правка: 17:36) 17:28, 29 авг. 2018

animert
> хотя давно не обновлялся
Совершенно верно:
The QtGStreamer C++ bindings are very out of date and unmaintained.
Один разу уже садился за исходники. Сейчас попробую второй раз. Спасибо!

Даже, если эта тема превратится в мой монолог, я буду продолжать постить о прогрессе. Потом кому-нибудь пригодится.

#3
22:28, 4 дек. 2018

Сделал. Материала уже на целую статью. Если кому-нибудь это будет интересно, скажите.

#4
0:29, 5 дек. 2018

iLya84a
если были какие-то проблемы, и ты их решил, то конечно поделись.

#5
3:31, 5 дек. 2018

Это все вместе с кодом гуглится по запросу phonon gstreamer backend.
На винде же лучше эту каку вообще не использовать.

#6
9:36, 6 дек. 2018

Ghost2
> На винде же лучше эту каку вообще не использовать.
Что лучше использовать под виндой для стрима потокового видео (покадрово)? Точнее нужно стримить видео с андройда на винду и винде его уже обрабатывать.. Если что-то готовое самому кадры складывать в буфер на определённой длинны, потом его жать каким-то MPEG-ом, потом отправлять и пока отправляется - жать следующую партию? А что на счёт MJPEG?

#7
16:26, 6 дек. 2018

™­•-=MASTER=-•™

Можно ffmpeg, если хочется попроще. Можно DirectShow.

#8
1:34, 7 дек. 2018

QMediaRecorder + QVideoProbe не?
там довольно много по этой теме: http://doc.qt.io/qt-5/videooverview.html

ПрограммированиеФорумГрафика