Обработка и потоковая передача видео Java HD Video Capture

У меня есть приложение, которое захватывает живое видео с HD-камеры и передает его на сервер потокового видео. В настоящее время я использую Adobe Flash Media Live Encoder (FMLE) для отправки захваченного видеопотока на сервер.

Проблема в том, что FMLE не поддерживает Linux. Я использовал acroos VLCJ и Xuggler в качестве возможных альтернатив FMLE, а также то, что они обеспечивают лучший контроль над закодированными носителями, так что мы можем устанавливать дополнительные детекторы движения, фильтры и т. Д. Можно ли использовать поддержку захвата видео VLCJ и обработки поддержка xuggler для моего приложения. Я имею в виду, есть ли какие-нибудь общие интерфейсы, в которых я могу представить захваченный поток от vlcj до Xuggler?


person user2156721    schedule 11.03.2013    source источник


Ответы (1)


Не существует приятного интерфейса, который связывает обе библиотеки (о чем я знаю), но вы можете передавать необработанные данные между ними.

VLCJ DirectMediaPlayer имеет обратный вызов рендеринга, который обеспечивает привязку к необработанным данным пикселей (см. здесь для конкретного примера.) Обычно это используется для прямого манипулирования пикселями на уровне Java (например, изменение оттенков серого в приведенном выше примере ), но нет реальной причины, по которой вы не должны иметь возможность передавать данные в Xuggler IBuffer, а затем, в свою очередь, превратите его в IVideoPicture (и оттуда вы повторно на земле Xuggler.)

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

person Michael Berry    schedule 10.06.2015