VLCj - это то, что вам нужно - это, по сути, прямая оболочка Java вокруг libvlc. Если вы используете его в процессе (особенно если вы используете несколько проигрывателей в процессе), вы иногда будете видеть сбои ВМ - это не ошибка VLCJ, скорее, libvlc и нативные библиотеки, которые он использует ниже, имеют некоторые тонкие ошибки потоков, которые выявляют эти проблемы
Вы можете надежно работать с несколькими экземплярами, но для этого вам нужно использовать его вне процесса. См. здесь для моих первоначальных попыток сделать это. Это небольшая работа по настройке, но однажды, кажется, все работает очень хорошо.