VLC, makemkv and BD+

For questions and discussion that is NOT (I repeat NOT) specific to a certain Operating System.
legluondunet
New Cone
New Cone
Posts: 3
Joined: 03 Jan 2009 11:28

VLC, makemkv and BD+

Postby legluondunet » 25 May 2019 20:46

Hello,

I installed makemkv, use the libmmbd emulation to play my blu ray with VLC, all but the BD+.
VLC can not read BD+ with makemkv.
Is it a know issue?
VLC complained about a java error:

Code: Select all

VLC media player 4.0.0-dev Otto Chriek (revision 4.0.0~rc1~~git20190303+r79643+178~ubuntu19.04.1) [000055c3d29989c0] main libvlc: Lancement de vlc avec l'interface par défaut. Utilisez « cvlc » pour démarrer VLC sans interface. dec.c:245: WARNING: using libmmbd for BD+. On-disc menus won't work with all discs. [00007ff390000e60] libbluray access: First play: 1, Top menu: 1 HDMV Titles: 5, BD-J Titles: 86, Other: 0 bdj.c:861: Detected Java 9 or later JVM - support is experimental ! Exception in thread "main" PrintStream.java:java.io.PrintStream.println:899: java.lang.NoClassDefFoundError: org/objectweb/asm/commons/SimpleRemapper PrintStream.java:java.io.PrintStream.println:899: at java.base/org.videolan.BDJClassFileTransformer.rename(BDJClassFileTransformer.java:64) PrintStream.java:java.io.PrintStream.println:899: at java.base/org.videolan.mmbd.Adapter.<init>(Adapter.java:78) PrintStream.java:java.io.PrintStream.println:899: at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) PrintStream.java:java.io.PrintStream.println:899: at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) PrintStream.java:java.io.PrintStream.println:899: at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) PrintStream.java:java.io.PrintStream.println:899: at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) PrintStream.java:java.io.PrintStream.println:899: at java.base/java.lang.Class.newInstance(Class.java:584) PrintStream.java:java.io.PrintStream.println:899: at java.base/org.videolan.Libbluray.loadAdapter(Libbluray.java:98) PrintStream.java:java.io.PrintStream.println:899: at java.base/org.videolan.Libbluray.init(Libbluray.java:345) bdj.c:733: Failed to initialize BD-J (uncaught exception) GUIManager:0: ERROR: getInstance(): no instance ! bluray.c:3169: Can't play BD-J title 65535 [00007ff390000e60] libbluray access: Closing overlays.
I can reproduce this issue with all my BD+ played with vlc/makemkv and you?

Daniel Abrecht
New Cone
New Cone
Posts: 1
Joined: 06 Oct 2019 19:41

Re: VLC, makemkv and BD+

Postby Daniel Abrecht » 06 Oct 2019 20:11

I've had the same issue on Devuan Beowulf (which is basically Debian Buster). It was obvious to me that a necessary jar hasn't been loaded, I'm not sure though if the issue is with vlc or with libbluray-bdj. After searching for a while with `apt-file` and searching looking at the content of various jars, I found that the jars /usr/share/java/asm-7.0.jar and /usr/share/java/asm-commons.jar from the package libasm-java contained the necessary classes. I then did a little hack to temporarily fix this, I checked with `lsof /usr/share/java/*.jar` which jars had been loaded, and then decided to just merge one of those jars, namely libbluray-j2se-1.1.0.jar, with the other two. I did this as follows:

Code: Select all

sudo su - cd /usr/share/java/ mkdir tmp cd tmp unzip -uo ../libbluray-j2se-1.1.0.jar unzip -uo ../asm-commons.jar unzip -uo ../asm-7.0.jar jar -cvf combined.jar . cd .. mv libbluray-j2se-1.1.0.jar libbluray-j2se-1.1.0.jar.old mv tmp/combined.jar libbluray-j2se-1.1.0.jar
Please note that this could cause other problems and that it will probably stop working after the next update of libbluray-bdj.

Anyway, after that, the menus showed up and everything seamed to work fine for me.

passingthrough
New Cone
New Cone
Posts: 1
Joined: 20 Feb 2020 17:59

Re: VLC, makemkv and BD+

Postby passingthrough » 20 Feb 2020 18:07

You can override the bluray classpath with

Code: Select all

LIBBLURAY_CP=$(ls /usr/share/java/{asm-7*.jar,libbluray-j2se-*,asm-commons.jar} | paste -sd:) vlc bluray://$PWD
I forgot why this wasn't working when I looked at it earlier, the lookup is in https://code.videolan.org/videolan/libbluray/blob/master/src/libbluray/bdj/bdj.c#L515


Return to “General VLC media player Troubleshooting”

Who is online

Users browsing this forum: No registered users and 38 guests