GStreamer, как добавить задержку в один из входных потоков? - PullRequest
1 голос
/ 04 марта 2010

Я создал конвейер GStreamer, который принимает несколько входных источников: аудио / видео с камеры, логотип и видео с экрана, которое принимается в виде потока RTP). Он объединяет эти источники в одно видео с использованием элемента videomixer.

Поток захвата экрана, однако, отстает от остальных на 2 секунды. Чтобы это исправить, я хотел бы ввести задержку в 2 секунды в других потоках. И вот где я сейчас застрял. Я попытался добавить элемент очереди после источника камеры и установить атрибут «min-threshold-time», чтобы создать задержку в 2 секунды, но GStreamer, кажется, исправляет это для других потоков. В результате весь поток задерживается, и задержка между потоком RTP и видео с камеры все еще сохраняется.

Ответы [ 2 ]

3 голосов
/ 08 апреля 2010

В итоге я реализовал проверку буфера, которая позволила мне изменять временные метки отдельных пакетов. См. Управление трубопроводом .

0 голосов
/ 10 февраля 2017

Плагин Gstreamer rtpjitterbuffer имеет свойство ts-offset, которое можно использовать для настройки метки времени одной входящей камеры для достижения синхронизации между потоками между источниками:

https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--ts-offset

...