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

Обновление:

Поскольку исходный код JFX для мультимедиа открыт, я сам изучил это, и это действительно возможно, но требует изменения и перестройки Исходный код JFX (как Java, так и части C). Процесс описан здесь для всех, кто хочет попробовать - я добавляю поддержку MKV в этом примере, но он должен быть очень похож на другие плагины.

Остальная часть вопроса, таким образом, в основном историческая, но я оставлю ее здесь для справки.

Предпосылки

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

Все сводится к тому, что пока он работает, требует много обслуживания и хлопот, работая с несколькими виртуальными машинами и стабильно соединяя их, если есть другое решение, которое было бы проще. VLC действительно имеет довольно легендарный уровень поддержки для игры практически во что угодно, поэтому я до сих пор использовал его, и мне было бы интересно посмотреть, смогу ли я получить аналогичный результат в JavaFX - или, по крайней мере, может ли он предоставить средства для этого кроссплатформенным образом.

Исследования

JavaFX 2.0 поддерживает видео - отлично! Но на данный момент официальная линия поддерживает «FLV, содержащий видео в формате VP6 и аудио в формате MP3». Есть ли способ расширить это, чтобы добавить поддержку большего количества кодеков? Нет жесткого кодека, который я хотел бы поддерживать, это скорее случай, когда я могу столько, сколько я могу, поэтому я ищу расширяемый метод для решения вышеизложенного.

Мне было интересно, будет ли он воспроизводить видео для кодеков, изначально установленных на машине, и что он просто не рекламирует себя как таковой (потому что эта функциональность, очевидно, зависит от машины, а не кроссплатформенности). попробовал ряд распространенных форматов, и он действительно отказывается воспроизводить что-либо, кроме того, что он заявляет.

Судя по JavaFX 1.3, он также поддерживает другие кодеки, зависящие от платформы, в зависимости от того, где он установлен . Есть ли способ добиться такого поведения с помощью JavaFX 2? Или это вообще планируется в следующем выпуске? Мне не удалось найти никакой информации об этом в дорожной карте или каких-либо комментариев от Oracle по этому поводу.

Единственное, что я смог найти в результате тщательного поиска, - это здесь , что подразумевает, что это возможно, но, кажется, никто не знает, как это сделать. Мне также было бы интересно узнать, основан ли он на GStreamer, почему все форматы, поддерживаемые GStreamer, также не включены по умолчанию?

Что касается воспроизведения DVD с помощью JavaFX, у меня нет абсолютно ничего, поэтому я предполагаю на данный момент это просто недопустимо. Если у кого-то есть какие-то идеи или информация, я все слышу.

Другие подходы

Один из подходов, который я наполовину удивился, может быть возможен - это вытащить JMC jar из старого JavaFX, как описано здесь , и попытаться заставить его работать вместе с JavaFX 2. Я не Неужели кому-то повезло с этим подходом или чем-то подобным?

Все терпит неудачу, если у кого-то есть какая-либо информация или ссылки о том, будет ли / когда поддержка дополнительных кодеков будет поддерживаться из коробки, тогда мне было бы интересно это тоже слышать. Или, если у кого-то есть какие-либо контактные данные для кого-то в Oracle, я мог бы спросить, это тоже будет признательно! В течение некоторого времени я жаждал достойной поддержки видео в Java, и я предполагаю, что все это сводится к попытке выяснить, является ли JavaFX ответом на это, или просто еще одна нерешительная попытка, которая никогда не будет воспроизводить больше, чем то, что она делает на данный момент! Я надеюсь, что это не последнее, но мне еще предстоит многое показать, чтобы показать, что это так.

17
задан Community 23 May 2017 в 11:47
поделиться