Bluray on Fedora

*nix specific usage questions
fedusr
New Cone
New Cone
Posts: 2
Joined: 11 May 2022 17:52

Bluray on Fedora

Postby fedusr » 11 May 2022 18:03

Hi all,

I’ve done a clean install of Fedora 36 and am trying to get bluray playback working. I’ve installed VLC from RPM Fusion, along with libbluray-bdj and MakeMKV (licenced).

Bluray playback works without menus, but menu support does not work due to not finding Java. I've tried installing Fedora’s java-openjdk-latest package, but Java is still not found. I’ve tried the official Oracle JRE, but get an error on the terminal:

Code: Select all

$ JAVA_HOME=/home/fedusr/Downloads/jdk-18.0.1.1 vlc VLC media player 3.0.17.2 Vetinari (revision ) [0000561e2894db70] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface. [0000561e289efef0] main playlist: playlist is empty [00007fe5a8001130] libbluray demux: First play: 1, Top menu: 1 HDMV Titles: 3, BD-J Titles: 78, Other: 0 Error occurred during initialization of boot layer java.lang.AbstractMethodError: Receiver class java.io.BDFileSystemImpl does not define or inherit an implementation of the resolved method 'abstract boolean isInvalid(java.io.File)' of abstract class java.io.FileSystem.
So, does anyone know how to make bluray menus work with either Fedora’s OpenJDK or Oracle Java? I had this working on F35 before I reinstalled so I know there’s a way…

Thanks!

Rémi Denis-Courmont
Developer
Developer
Posts: 15291
Joined: 07 Jun 2004 16:01
VLC version: master
Operating System: Linux
Contact:

Re: Bluray on Fedora

Postby Rémi Denis-Courmont » 11 May 2022 18:49

You either need to downgrade the JDK or install a very new version of libblurary that is compatible with the latest JDK.
Rémi Denis-Courmont
https://www.remlab.net/
Private messages soliciting support will be systematically discarded

fedusr
New Cone
New Cone
Posts: 2
Joined: 11 May 2022 17:52

Re: Bluray on Fedora

Postby fedusr » 11 May 2022 21:08

How can I find out what version of Java libbluray actually wants?

I’m using the official Fedora 36 packages (1.3.1) and its RPM dependencies are apparently satisfied. I’ve installed all the available JDKs in the Fedora repos and tried them all with alternatives:

Code: Select all

Selection Command ----------------------------------------------- *+ 1 java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.3.0.7-1.fc36.x86_64/bin/java) 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.fc36.x86_64/jre/bin/java) 3 java-latest-openjdk.x86_64 (/usr/lib/jvm/java-18-openjdk-18.0.1.0.10-1.rolling.fc36.x86_64/bin/java) 4 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.15.0.10-1.fc36.x86_64/bin/java)
All except 1.8.0 give “Java required: This Blu-ray disc requires Java for menus support.Java was not found on your system. The disc will be played without menus.” 1.8.0 throws an exception instead.

Is this an RPM Fusion packaging bug?

Energo Koder

Re: Bluray on Fedora

Postby Energo Koder » 17 Jul 2022 07:43

On Triskel 10 (Ubuntu 20.04 compatible) this works:

Code: Select all

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 /usr/bin/vlc bluray:///dev/sr0
The problem is that my Blu-Ray movies require newer version of Java. The result is menu appear but not work.
It reports this in strange way:

Code: Select all

<unknown.java>:a.a.a.k.a.a:-1: Error!! [a.a.a.c.j] Info flags is 8 <unknown.java>:a.a.a.k.a.a:-1: Error!! [a.a.a.c.j] Info flags is 8 <unknown.java>:a.a.a.k.a.a:-1: Error!! [a.a.a.c.j] Info flags is 8 [...] <unknown.java>:a.a.a.k.a.a:-1: Error!! [a.a.a.c.j] Info flags is 8 <unknown.java>:a.a.a.k.a.a:-1: Error!! [a.a.a.c.j] Info flags is 8 <unknown.java>:a.a.a.k.a.a:-1: Error!! [a.a.a.c.j] Info flags is 8 <unknown.java>:a.a.a.k.a.a:-1: Error!! [a.a.a.c.j] Info flags is 8 <unknown.java>:a.a.a.k.a.a:-1: Error!! [a.a.a.c.j] Image main.0.png failed with 32 <unknown.java>:a.a.a.k.a.a:-1: Error!! Loaded the full menu!
But not hangs.
When I try:

Code: Select all

JAVA_HOME=/usr/lib/jvm/openjdk-17 /usr/bin/vlc bluray:///dev/sr0
VCL hangs and the result is:

Code: Select all

VLC media player 3.0.9.2 Vetinari (revision 3.0.9.2-0-gd4c1aefe4d) [000055e5439bd5b0] main libvlc: Uruchamianie vlc z domyślnym interfejsem. Użyj 'cvlc', aby używać vlc bez interfejsu. [00007f8db4001120] libbluray demux: First play: 1, Top menu: 1 HDMV Titles: 2, BD-J Titles: 2, Other: 0 bdj.c:865: Detected Java 9 or later JVM - support is experimental ! Error occurred during initialization of boot layer java.lang.AbstractMethodError: Receiver class java.io.BDFileSystemImpl does not define or inherit an implementation of the resolved method 'abstract boolean isInvalid(java.io.File)' of abstract class java.io.FileSystem.
I think this not work due to line:

Code: Select all

bdj.c:865: Detected Java 9 or later JVM - support is experimental !
BTW: Strange, but JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 /usr/bin/vlc dvd:///dev/sr0 properly run DVD disc menu and it works as expected.
Summary:
VLC version included in Ubuntu 20.04 and compatible has experimental support for Java versions used in new Blu-Ray movies.
I think this is low priority for VLC team. Because Java 8 is old as Earth. And none newer version works.
Maybe some donations will motivate the Team to fix this.
I donated VLC project in the past as Jacek Marcin Jaworski, but I can't afford now because I lost my job.
Last edited by Energo Koder on 17 Jul 2022 09:46, edited 1 time in total.

Rémi Denis-Courmont
Developer
Developer
Posts: 15291
Joined: 07 Jun 2004 16:01
VLC version: master
Operating System: Linux
Contact:

Re: Bluray on Fedora

Postby Rémi Denis-Courmont » 17 Jul 2022 09:13

This has nothing to do with VLC. It is (or was) a libbluray bug. You just need compatible versions of the libbluray and the JVM.
Rémi Denis-Courmont
https://www.remlab.net/
Private messages soliciting support will be systematically discarded

zoouf
New Cone
New Cone
Posts: 2
Joined: 20 Sep 2024 11:51

Re: Bluray on Fedora

Postby zoouf » 20 Sep 2024 12:03

For anyone else having trouble getting VLC BD-J menus working. I ran into all the same errors but I managed to get it working under Ubuntu 22.04.

First I installed 3.0.20 using an alternative PPA (you can find detais by googling but I'll paste below).

```
sudo add-apt-repository ppa:ubuntuhandbook1/vlc
sudo apt update
sudo apt install vlc libbluray2 libbluray-bdj libbdplus0

ii libbluray-bdj 1:1.3.1-1 all Blu-ray Disc Java support library (BD-J library)
ii libbluray2:amd64 1:1.3.1-1 amd64 Blu-ray disc playback support library (shared library)
ii libbdplus0:amd64 0.2.0-1 amd64 implementation of BD+ for reading Blu-ray Discs
```

If you need to do aacs decryption you will need additional libraries

Next I needed to use oracle jvm. And since my libbluray2 version was only 1.3.1 I went for 1.16 as that is the latest version they say they added support for in 1.3.1.

```
from code.videolan.org videolan libbluray - blob master ChangeLog
2022-03-03: Version 1.3.1
- Add support for Java 13 ... 16.
```

The name of the file I installed for oracle jvm 16 was "jdk-16.0.2_linux-x64_bin.deb"

After I installed it I couldn't use the command to switch it because it wasn't added so I first needed to add it.
```
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-16.0.2/bin/java 2
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-16.0.2/bin/javac 2
sudo update-alternatives --config java
sudo update-alternatives --config javac
```

After installing it I can launch the following command to play blurays with bd-j menus under ubuntu 22.04.
```
BD_DEBUG_MASK=141314 BD_DEBUG_FILE=/home/user/Downloads/bd_debug.log JAVA_HOME=/usr/lib/jvm/jdk-16.0.2 /usr/bin/vlc bluray:///media/user/bluray_disc_name/
```

You will need extra steps to support aacs and what not but hopefully this will help someone.
Openjdk, would NOT work no matter what version I tried that was available from the ubuntu ppa.


Return to “VLC media player for Linux and friends Troubleshooting”

Who is online

Users browsing this forum: No registered users and 21 guests