Ответ 1
Может ли брат получить крик для Xuggler?
Мне нужно простое воспроизведение видео в Java.
Вот мои требования:
КАЧЕСТВО ПРОИЗВОДСТВА
Откройте и декодируйте видеофайлы, видео и аудио кодеки которых могут быть выбраны мной. I.E Я могу выбрать хорошо управляемые кодеки.
Уметь проигрывать, пауза, seekToFrame ИЛИ seekToTime и остановить. По сути, я хочу иметь возможность воспроизводить сегменты одного видеофайла нелинейным способом. Например, я могу играть в сегменте 20.3 сек до 25.6 сек, пауза в течение 10 секунд, а затем воспроизведение сегмента 340.3 сек до 350.5 сек и т.д.
Во время воспроизведения видео и аудио должны быть синхронизированы.
Видео должно отображаться в Swing JComponent.
Должен иметь возможность использовать в коммерческом продукте без необходимости использования открытого кода (например, LGE или LG)
Мои исследования привели меня к следующим решениям:
Я реализовал быстрый прототип, и это, похоже, делает то, что мне нужно. Я могу воспроизвести сегмент видео, используя:
player.setStopTime(new Time(end));
player.setMediaTime(new Time(start));
player.start();
Пока работает Fobs4JMF, я чувствую, что качество кода плохое, а проект больше не активен. Кто-нибудь знает какие-либо продукты, которые используют Fobs4JMF?
В отличие от Java, Flash играет блестящую роль при воспроизведении видео. Я мог бы написать небольшое приложение Flash с помощью методов:
open(String videoFile),
play(),
pause(),
seek(int duration),
stop()
Затем переведите его в Java с помощью JFlashPlayer, который может вызывать функции Flash из Java.
Что мне нравится в этом решении, так это то, что воспроизведение видео во Flash должно быть прочным. Кто-нибудь использовал JFlashPlayer для воспроизведения видео на Java?
Xuggler - это обертка FFMpeg для Java, которая кажется довольно активным и высококачественным проектом. Однако реализация простого воспроизведения видео, описанного в требованиях, не является тривиальной (в частности, поиск), но некоторые из работ были выполнены в MediaTools MediaViewer, который будет базой для построения.
Я попытался заставить FMJ работать, но до сих пор не удалось добиться успеха.
Я был бы признателен за ваши мнения по моей проблеме.
Может ли брат получить крик для Xuggler?
На мой взгляд, VLCJ - это путь вперед для этого типа вещей. Мне нравится Xuggler для работы с кодировкой/транскодированием, но, к сожалению, это просто сложно сделать простое воспроизведение и решить все проблемы с синхронизацией и т.п., И это очень похоже на повторное использование колеса.
Единственное, что с VLCJ заключается в том, чтобы заставить его работать надежно с несколькими игроками, мне приходилось прибегать к процессам игроков. Рамка была не самой простой вещью в мире, чтобы встать на свои места, но когда она там работает красиво. В настоящее время я запускаю 3 из игроков процесса в своем приложении бок о бок, без каких-либо проблем.
Другое предостережение заключается в том, что встроенный медиаплеер не будет работать с компонентом swing, просто с тяжелым холстом, но для меня это вообще не было проблемой. Если это так, то вы можете использовать прямой медиаплеер, чтобы получить bufferedimage и отобразить, что на все, что вы выберете, но он будет потреблять в ваш процессор немного больше (хотя и не больше, чем другие игроки, которые используют этот подход.)
JavaFX имеет встроенный набор видео и аудио кодеков. Вероятно, это решение с самой широкой поддержкой на данный момент.
Я использую jffmpeg так же, как вы используете FOBS, он работает очень хорошо, хотя я их не сравнивал.
Мне также хотелось бы видеть простой способ взаимодействия с родными кодеками так, как это делает JavaFX, но, похоже, не существует реальной интеграции между JavaFX и Java.
Там также была некоторая работа, пытающаяся получить библиотеку libllc VLC в java. Я еще не пробовал, и мне было бы интересно услышать от всех, кто имеет.
не пробовал Xuggler (который меня интересует), но я хорошо провожу время VLCJ. Недостатком, который я нахожу в нем, является то, что вы должны иметь VLC, установленный до вашего приложения.