Осмотрев достойную библиотеку для воспроизведения видео на Java, я расстался. Все вокруг кричат, чтобы не использовать JMF, потому что он устарел, старый и требует от пользователя его установки, другие альтернативы, такие как VLCJ, кажутся хорошими, если они работают, но все еще относительно нестабильны и опираются на здоровенные количества собственного кода, а также на DVD, которые выглядят как золотая пыль, которые можно найти в бесплатной библиотеке!
Текущие параметры:
- Теперь JavaFX 2 набирает обороты, это то, над чем я серьезно смотрел (отсюда мой вопрос здесь), но мне пока не удастся попытаться как заставить его играть что-то большее, чем стандартное видео FLV для болота.
- VLCJ хорошо работает для того, что он делает (см. мой текущий ответ), и на данный момент я продвигаюсь вперед. Он использует libvlc, чтобы делать что угодно, так как в нем можно играть практически в любом файле и воспроизводить DVD-диски из коробки. Большая проблема заключается в том, что вам нужно использовать несколько виртуальных машин для каждого игрока, чтобы заставить его работать стабильно, а это означает, что ответ относительно медленный. У меня также нет такого подхода для работы на Mac.
- JMF смехотворно устаревший, ужасный и просто не вариант, насколько мне известно. Я играл с ним в прошлом, и опыт не был хорошим!
- FMJ говорит, что это замена для JMF. Мне еще предстоит сделать это, как и большинство других людей, с которыми я разговаривал, и это само по себе заставляет меня уставать от его качества и понимания, даже если мне удастся заставить его работать!
- Xuggler отлично подходит для того, что он делает, он получил блестящие учебники, и он очень хорошо написан. Но в то время как это отлично подходит для работы по перекодировке на низком уровне, воспроизведение видео и получение кадров в правильном порядке и в синхронизации и т.д. - это просто кошмар, чтобы нормально работать, и снова добавляет больше кода, что означает больший объем обслуживания, потенциально больше ошибок и т.д. и т.д.
- Я еще не пробовал GStreamer-Java с любым гневом, хотя он, похоже, не поддерживает воспроизведение DVD (это приложение с открытым исходным кодом, над которым я работаю, так что коммерческие плагины тоже не являются), а кодек поддержка не кажется самой широкой.
- JCodec - это интересное усилие, единственное, что я видел для реализации поддержки видео с чистой перспективы Java, но поддержка для форматов в настоящий момент отсутствует, и это относительно новый проект.
- Написание чего-то самого в другой родной библиотеке для каждой платформы, которую я хочу поддержать. Это абсолютная опция последнего курорта из-за дополнительного времени обслуживания и кодирования, которое потребуется.
Основываясь на вышеизложенном (или что-нибудь еще, что вы можете придумать), какие варианты будут рекомендовать людям и есть ли какие-то другие разумные, которые я пропустил? Или любые другие люди думают, что могут быть доступны в ближайшем будущем?