Воспроизведение видео в настольном приложении Java

Я пробую Java Media Framework и замечаю, что он не поддерживает многие форматы видео и, кажется, недостаточно обновлен. Есть ли альтернатива JMF для настольных приложений Windows Java?


person Jonás    schedule 15.05.2012    source источник
comment
возможный дубликат воспроизведения видео на Java   -  person artbristol    schedule 15.05.2012
comment
@artbristol Не согласен, это касается фреймворков, а последний вопрос касается JMF. В любом случае, этот другой вопрос уже довольно старый и не содержит много ссылок на хорошие фреймворки, кроме Xuggler.   -  person Michael Berry    schedule 16.05.2012
comment
@ berry120 Нет хороших фреймворков, поэтому. Этот вопрос задавали уже много раз.   -  person artbristol    schedule 16.05.2012
comment
@artbristol Это, конечно, зависит от вашего определения хорошего фреймворка, но я бы сказал, что сейчас (в отличие от года или двух назад) они начинают появляться. Мое приложение успешно использует VLCJ для обеспечения кроссплатформенной поддержки видео с настраиваемыми текстовыми наложениями, и аналогичная вещь может быть достигнута с помощью JavaFX. Или для извлечения пакетов из потоков на более низком уровне Xuggler очень хорош. Все зависит от того, что вам нужно!   -  person Michael Berry    schedule 16.05.2012
comment
@ berry120 Справедливый пункт. Приятно слышать, что ваш опыт работы с VLCJ положительный - возможно, конкуренция подстегнет JavaFX и получит достойную поддержку на официальной платформе.   -  person artbristol    schedule 16.05.2012
comment
@artbristol Спасибо, я очень на это надеюсь! :-)   -  person Michael Berry    schedule 16.05.2012


Ответы (2)


Да, я определенно рекомендую держаться подальше от JMF. Я чувствовал твое разочарование! Лично я рекомендую VLCJ, особенно если вам нужна поддержка для широкого диапазона форматов - я использую его в своем приложении, и он очень хорошо работает.

Также могут быть актуальны следующие вопросы:

Работа с видео (DVD, .avi .mkv) на Java

Добавление других видеокодеков / поддержки DVD в JavaFX 2.2

person Michael Berry    schedule 15.05.2012
comment
Спасибо. Наконец, я использовал vlcj, потому что для JavaFX требуется проект JavaFX, а у меня уже был запущен проект Java. На самом деле у меня проблема. Мне нужно воспроизвести видеокомпонент внутри JPanel. Как бы я это сделал? - person Jonás; 15.05.2012
comment
@honnix Лучше всего использовать Canvas, а не JPanel - тогда VLC может просто воспроизводить его напрямую. Другой способ - использовать DirectMediaPlayer, который дает вам BufferedImage, который вы можете отображать во всем, что вы выберете. Последний подход более гибкий, но он может потреблять огромное количество ресурсов ЦП для HD-видео даже в мощных системах. - person Michael Berry; 15.05.2012
comment
Привет, я использую Canvas, но получаю исключение java.lang.IllegalStateException: компонент поверхности видео должен быть отображаемым. Я спросил в stackoverflow.com/questions/10609338/, потому что я действительно застрял. Все примеры, которые я видел, запускают один и тот же код. Не могу заметить, в чем я ошибаюсь. Заранее спасибо. - person Jonás; 16.05.2012
comment
@honnix См. мой ответ, но когда вы получаете эту ошибку, это почти всегда потому, что холст не отображается на экране до того, как вы попытаетесь воспроизвести видео. - person Michael Berry; 16.05.2012

Короче тупиковый вид. Я бы перешел на JavaFX 2.1 - он имеет гораздо лучшую поддержку и, кажется, тоже "живой". Здесь также есть дополнительная информация о переполнении стека: Добавление других видеокодеков / поддержки DVD в JavaFX 2.2

person Ewald    schedule 15.05.2012