Модифицируйте конвейер gstreamer на лету - PullRequest
0 голосов
/ 06 февраля 2020

Основная идея моего приложения - «основной» конвейер, который транслирует видео на экран. А приложение может выполнять другие функции, такие как масштабирование, сохранение изображения / видео и т. Д. c. Эти дополнительные действия запускаются с клавиатуры.

Вот общий конвейер:

sr c -> debayer-> square (для масштабирования) -> videocrop-> videoscale-> queue-> sink

Масштабирование работает правильно, потому что изменение свойства панели на лету - не большая проблема.

Моя идея реализации «сохранения» функциональности был в добавлении «тройника» с настройкой необходимой части конвейера для сохранения. Это должно выглядеть так:

sr c -> debayer-> square (для масштабирования) -> videocrop-> videoscale-> tee-> queue-> sink

_________________________________________________ tee-> queue-> videoconvert-> jpegen c -> filesink

Я протестировал этот подход с использованием gst-launch-1.0 - все работает нормально, но у меня есть некоторые проблемы с кодом реализация. После нажатия на нужную кнопку изображение просто зависает и больше ничего не происходит.

У кого-нибудь есть идеи или примеры или связанные ссылки для такой проблемы? Я могу поделиться всем конвейером для gst-launch-1.0 и необходимыми частями кода. Просто спросите их, пожалуйста.

Я продолжаю работать над этим вопросом и отправлю ответ, если найду его.

...