Обработка видеопотоков с помощью Xuggler API

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

Я только что услышал о библиотеке Xuggler, которая основана на Java и выглядит многообещающей. Предоставляет ли он какие-либо функции для доступа к видеопотокам и обработки изображений перед передачей?

Пожалуйста, представьте любые другие библиотеки потоковой передачи / обработки мультимедиа на основе Java, если вы знаете о них.


person Tina J    schedule 31.05.2017    source источник


Ответы (1)


Для обработки видео Java, несмотря на то, что он давно устарел, Xuggler был лучшим решением, которое я нашел, кто-то еще может знать об альтернативе.

Поскольку он больше не поддерживается, вам нужно сделать несколько вещей, чтобы начать работу. Сначала найдите Xuggler-5.4.jar. Также вам понадобится Java 7 Jdk для его запуска, он не будет работать с Java 8, тогда вам понадобятся jar-файлы sl4j-api и sl4j-simple.

У него сложный, но хорошо документированный api, но основная суть в том, что вы используете интерфейс MediaToolAdapter, создаете IMedia Reader и Writer, добавляете что-то, реализующее интерфейс для читателя в качестве слушателя, а во реализованных методах для аудио и видео вы можете обрабатывать данные в каждом кадре и передавать их писателю.

Этот пример - хорошее место для начала: https://github.com/artclarke/xuggle-xuggler/blob/master/src/com/xuggle/mediatool/demos/ModifyAudioAndVideo.java

person oraz    schedule 01.06.2017
comment
Спасибо. Могу ли я использовать Android в качестве ресивера? Ему нужно принимать стримы и играть. - person Tina J; 01.06.2017
comment
Я не уверен в использовании Xuggler для потоковой передачи. Вероятно, это можно сделать, но я не думаю, что это встроенная функция. Я использовал его только для вывода файлов, но есть группа Google, в которой люди могли бы попробовать, что, возможно, стоит поискать. Другой вариант - Gstreamer или OpenCv для Java. Openframeworks может быть хорошей средой для использования, но это C ++ - person oraz; 02.06.2017
comment
Не уверен, что у кого-то из них есть встроенные функции потоковой передачи. Также fluent-ffmpeg для nodejs определенно может передавать и обрабатывать одновременно, но это javascript. - person oraz; 02.06.2017