Russian Qt Forum

Qt => Мультимедиа => Тема начата: navrocky от Март 12, 2013, 16:00



Название: Как лучше выводить видео картинку и с помощью чего?
Отправлено: navrocky от Март 12, 2013, 16:00
Работаю с видео на низком уровне, читаю с помощью libavformat, получаю кадры, и надо их выводить на виджет.

Вопрос следующий: чем лучше воспользоваться в данной ситуации? Картинку будет масштабироваться под размер виджета.

Пока вижу такие варианты:

1) QImage рисовать QPainter'ом на виджете. Тут никакого аппаратного ускорения масштабирования не получится скорее всего, зато можно выводить всякие полупрозрачные штуки поверх картинки.

2) YUV оверлей - не знаю с помощью чего его можно сделать в Qt. Поверх оверлея, насколько я знаю, можно добиться рисование без прозрачности.

3) OpenGL ?

Что мне выбрать и, в случае с оверлеем, куда копнуть, чтобы научиться его использовать с Qt?


Название: Re: Как лучше выводить видео картинку и с помощью чего?
Отправлено: alexis031182 от Март 13, 2013, 00:59
А что за "YUV оверлей"? Это из SDL? Ошибаюсь?

На Linux ещё через XVideo можно. Знаю, виндовс, но так, на всякий случай.


Название: Re: Как лучше выводить видео картинку и с помощью чего?
Отправлено: navrocky от Март 13, 2013, 11:24
А что за "YUV оверлей"? Это из SDL? Ошибаюсь?

На Linux ещё через XVideo можно. Знаю, виндовс, но так, на всякий случай.

Не только SDL, это независимое понятие. Про SDL думал, но не хочется зависимость тащить. В Qt есть phonon и он как-то выводит, но он очень высокоуровневый.

И надо кроссплатформенное решение, пишу под линуксом, результат запускать надо под виндой.


Название: Re: Как лучше выводить видео картинку и с помощью чего?
Отправлено: alexis031182 от Март 13, 2013, 11:56
QImage с QPainter работают довольно шустро. Во всяком случае, особо заметной разницы в нагрузке не заметил при рисовании "живого" видео между пайнтером с имаджем с одной стороны и opengl с другой. При этом производился постоянный ресайз видеокадров под размер виджета с сохранением пропорций и центрированием.


Название: Re: Как лучше выводить видео картинку и с помощью чего?
Отправлено: navrocky от Май 20, 2013, 11:10
QImage с QPainter работают довольно шустро. Во всяком случае, особо заметной разницы в нагрузке не заметил при рисовании "живого" видео между пайнтером с имаджем с одной стороны и opengl с другой. При этом производился постоянный ресайз видеокадров под размер виджета с сохранением пропорций и центрированием.

Разница проявляется при мощной видеокарте и большой площади масштабируемой картинки. Я на своем встроенном видео тоже разницы не замечал. А вот на дискретной карточке с opengl существенно шустрее отрисовывает.