2013-02-26 2 views
0

Я использую gstreamer-java для отправки данных через UDP через пользовательский AppSink. Вот как это эффективно установка:Отправить видео синхронно с AppSink

fileSrc ! streamTee ! displayQueue ! tsdemux ! demuxQueue ! (mpeg2dec || h264dec) ! videosink

и

streamTee ! sendQueue ! udpSink

Я хотел бы послать данные таким образом, что имитирует живой поток. Я предполагаю, что единственный способ сделать это - синхронизировать отправку с воспроизведением через videoSink. То есть, отправьте со скоростью воспроизведения 1.0x.

Однако значение параметра sync udpSink не имеет отношения к подбору. Я проверил, что пакеты отправляются как можно быстрее из-за sendQueue.

Должен ли я добавить streamTee между другими элементами? Есть ли что-то очевидное, что мне не хватает?

+0

Перемещение streamTee после displayQueue, похоже, решило эту проблему. – Nick

ответ

1

Перемещение streamTee после displayQueue, похоже, решило эту проблему. Свойство sync ничего не делает.

UDP-пакеты, кажется, отправлены на некоторое время впереди видеоизображения videoSink, но оно последовательно .5-1.0s впереди в конце любого видео любой длины. Так что кажется, что он достаточно синхронный.

Смежные вопросы