Доброго дня!
Пытаюсь сделать вывод видео (c камер наблюдения за домом, т.е. не из файла)
Что бы вывести в QML загоняю покадрово в QVideoFrame и вывожу с помощью QAbstractVideoSurface (а в QML использую соответственно VideoOutput).
Всё более менее нормально, но вот начинаются проблемы, когда мне нужно вывести картинку сразу с 4 камер - интерфейс жутко лагает. Да, я попробовал объединить все 4 потока в один и выводить на один VideoOtput скорость отображения устраивает (то есть тормозит именно QML интерфейс, а не сами преобразования для вывода).
Но нужно выводить каждый поток именно в свой VideoOutput.
Когда-то очень давно помню был один хак - заливали область каким-либо цветом, а потом по-моему через directx выводили картинку, которая отображалась только где была заливка этим цветом... Но это было ещё во времена Delphi 7.
Сейчас же Qt, а точнее QML использует OpenGL, вот я думаю - может быть здесь можно как-то такой трюк провернуть?
Или же может быть есть хороший пример, как наиболее быстро отобразить видео поток из c++ в QML?
sim3x, вообще резонно, но если использовать картинки QImage, потом перегонять это в Qml, выводить на Image или создавать свой компонент возникают проблемы с частотой обновления, да и тормоза схожие.
Может быть, конечно, я криво реализовал, попробую ещё раз...
Просто я думал VideoOutput как раз что-то вроде того и должен делать, как в вопросе описал... Может быть нужно как-то по особенному использовать это в связке с QML...
Да, вручную. Пробовал - встроенный выводит с преобразованием через ffmpeg, но видео поток с камер идёт в своём проприентарном формате, который только родной программой и отображается, реверсинжинерингом удалось победить формат. Было бы проще написать дополнение для ffmpeg, что бы он его поддерживал, но как глянул - это жжесть как сложно.