Библиотеки медиаплееров в Java

Я оцениваю библиотеки для воспроизведения аудио/видео на Java. Он не должен быть 100% Java; Связывание Java с родными библиотеками в порядке. Внешнее приложение, которое можно управлять с помощью Java, также отлично, если оно может отображать видео на Java-компоненте.

Целевая платформа - Linux. Поддержка Windows - это плюс, но не требуется.

Я играл с VLC, используя привязки VLCj, и в целом он работает довольно хорошо, но иногда изредка возникает при стрессе, Я также использовал mplayer в режиме

Ответ 1

Хорошо, я провел последний месяц с несколькими вариантами, и это результаты:

  • VLC. Это была моя первая мысль, поскольку все продолжают говорить, что она "играет все". Я использовал и VLCj привязки Java, а встроенный удаленный интерфейс (-I rc). Я нашел, что это работает очень хорошо в целом, но есть некоторые проблемы. Я продолжал видеть аварийные аварии при большой нагрузке (а не VLCj, поскольку это также происходит при непосредственном использовании двоичного кода). Также я обнаружил, что потребление памяти относительно велико по сравнению с другими параметрами.

  • MPlayer. Это на самом деле работает лучше, чем VLC по моему опыту, никаких сбоев, а потребление памяти ниже. Нет привязок Java, хотя режим ведомый работает очень хорошо.

  • GStreamer. Очень мощный, очень гибкий, в то время как все еще легко начать работу. Попробовал привязки Java и выполнил gst-launch двоичный файл от Java. Оба подхода работают замечательно.

  • Xuggler выглядел неплохо, однако, похоже, у него проблемы с RTP (как указано в FAQ). Поскольку оба GStreamer и MPlayer работали так хорошо, я не прошел первоначальное исследование.

Я обнаружил, что GStreamer является лучшим решением с учетом требований, причем вторым вариантом является MPlayer.

Ответ 2

Вы посмотрели gstreamer?

Ответ 3

Я также потратил некоторое время на изучение моих опций, и на самом деле я пришел к выводу, что VLCJ - лучший вариант, но здесь, в первую очередь, вам нужно запустить его из процесса (особенно с несколькими игроками) для это даст вам 100% надежную работу. Это подход, который я принимаю, и я еще не видел, чтобы он разбился. Таким образом, он обладает такими же преимуществами:

  • Он может играть почти все. Да, это немного клише, но это включает в себя DVD, видео Youtube, практически любой видеофайл...
  • Следует поддерживать Linux/Mac/Windows, хотя я еще не уверен, что Mac работает.
  • Активно поддерживается, и если вы спросите хороший (как в хорошо продуманном) вопросе в дискуссионной группе, владелец часто отвечает минутой моего опыта!
  • Открытый исходный код, а активность группы Google на момент написания статьи высока.
  • Использование графического ускорения VLC делает
  • Возможность играть в любой тяжеловесный компонент Canvas (и если вы используете прямой плеер, вы получаете BufferedImage для отображения в любом месте, даже если вы находитесь в JOGL 3D, если вы так сумасшедший!

Я также не нашел его слишком сильным на фронте ресурсов, хотя я не провел тщательного тестирования (но 3 игрока отлично работают в тандеме, а также мое относительно мощное приложение на моем 4-летнем базовом ноутбуке!)

Недостатки? Там нет официальной структуры для игроков, не имеющих выхода к процессу, поэтому вы должны сами их построить (см. здесь, как я это сделал). И вам иногда приходится делать какие-то шаги, чтобы заставить его работать. Но, насколько я вижу, это работает для меня до сих пор!