vlcj und Windows

TiME-SPLiNTER

Aktives Mitglied
Hallo zusammen,

Ich wollte mich gerade in die ganze vlcj geschichte einarbeiten, jedoch stosse ich auf einen Fehler auf den offensichtlich viele stossen und wirklich eine klare Lösung habe ich nicht herausfinden können (hab vieles Probiert).

Es geht darum, dass vlcj die Libraries 'libvlc.dll' und 'libvlccore.dll' nicht finden kann. Das Laden der Libraries mittels [c]NativeLibrary.addSearchPath("libvlc", "path/to/vlc");[/c] funktioniert auch nicht.

Ich wollte mal fragen ob jemand vlcj zum laufen gebracht hat. Ich habe eine Java-Applikation gefunden die auf meinem Rechner funktioniert und auch mit vlcj arbeitet. Es muss also möglich sein.

Downloads - jbiteo - JBiteo Video Organizator based on vlcj project - Google Project Hosting

Welche JARs habt ihr eingebunden, wie sehen eure Pfade aus?

Hier noch das genaue Log:
Code:
The error was "Unable to load library 'libvlc': Das angegebene Modul wurde nicht gefunden.
".

The required native libraries are named "libvlc.dll" and "libvlccore.dll".

In the text below <libvlc-path> represents the name of the directory containing "libvlc.dll" and "libvlccore.dll".

There are a number of different ways to specify where to find the native libraries:
 1. Include NativeLibrary.addSearchPath("libvlc", "<libvlc-path>"); at the start of your application code.
 2. Include System.setProperty("jna.library.path", "<libvlc-path>"); at the start of your application code.
 3. Specify -Djna.library.path=<libvlc-path> on the command-line when starting your application.
 4. Add <libvlc-path> to the system search path (and reboot).
 

Michael...

Top Contributor
Alle Lösungsvorschläge schon durchprobiert?
z.B. das lib Verzeichnis in die PATH Variable des Betriebssystems aufgenommen oder die librarypath Option beim Starten der Anwendung verwendet?

Ist der Quellcode offen? Kann man sehen wo und wie die libraries geladen werden?
 

TiME-SPLiNTER

Aktives Mitglied
Nein das Beispielprogramm das ich gepostet habe ist leider nicht Open Source... deshalb kann ich nicht selber nachsehen. Ich möchte keine Änderungen am Betriebssystem vornehmen müssen. Das muss im Java-Programm selbst möglich sein. Da das Beispiel-Programm das ich gepostet habe auch ohne Installation und Admin-Rechte auf Anhieb funktioniert...

Ansonsten habe ich ziemlich alles ausprobiert das mir auch vom Sysout von vlcj vorgeschlagen wurde. Ohne Erfolg. Auch das kopieren des "plugins"-Verzeichnis und der beiden DLLs in das Projektverzeichnis hat nicht geholfen.
 

Michael...

Top Contributor
Ich möchte keine Änderungen am Betriebssystem vornehmen müssen. Das muss im Java-Programm selbst möglich sein.
Das Anpassen der PATH Variablen ist auch temporär und nur für den Aufruf des Programms möglich.
-Djna.library.path ist ja nur ein zusätzlicher Parameter beim Starten den Programms

Alternativ kann man auch mal per
Code:
System.getProperty("java.library.path")
schauen welche Verzeichnisse dort gelistet sind und die dlls testweise in eines dieser Verzeichnisse kopieren.
 

TiME-SPLiNTER

Aktives Mitglied
Es hilft einfach alles nichts. Ich habe die beide DLLs mal in das Verzeichnis: C:/Program Files/Java/jre6/bin kopiert. Das wird mittels [c]System.getProperty("java.library.path")[/c] unter anderen ausgegeben.

Ich habe auch folgende (auskommentierte Varianten) schon versucht:

Java:
  public static void main(String[] args) throws InterruptedException, InvocationTargetException {
	  //System.setProperty("jna.library.path", "C:/Program Files/Java/jre6/bin");
	  
	  System.out.println(System.getProperty("java.library.path"));
	  
	  /*NativeLibrary.addSearchPath("libvlc", "C:/Program Files/Java/jre6/bin");
	  NativeLibrary.addSearchPath("libvlccore", "C:/Program Files/Java/jre6/bin");*/
	  
    String[] args2 = new String[1];
	  
    args2[0] = "test.wmv";
    
	 if(args2.length < 1) {
      System.out.println("Specify a single media URL");
      System.exit(1);
    }

    String[] vlcArgs = (args2.length == 1) ? new String[] {} : Arrays.copyOfRange(args2, 1, args2.length);

    new DirectTestPlayer(args2[0], vlcArgs);

    // Application will not exit since the UI thread is running
  }

Und das mit dem Argument anhängen [c]-Djna.library.path=C:/Program Files/Java/jre6/bin[/c] in den Run Configurations. Nichts klappt. Immer noch die meldung aus dem Eröffnungspost. :(
 

Kr0e

Gesperrter Benutzer
2 Dinge:

1. Ich wrüde eher zu GStreamer-Java raten, als zu VLCj.

2. Deine FEhlermeldung könnte evt darauf hindeuten, dass du ein 64 bit JVM benutzt aber nur 32 bit Dll files. GStreamer, VLC gibt es meines Wissens nicht für 64 bit. Sprich deine JVM kommt damit dann nicht klar. Bei Gstreamer-Java hab ich mal was ähnlcihes gehabt... Lag genau daran. Vlt nur mal Ansatz für weitere Tests ;)
 

TiME-SPLiNTER

Aktives Mitglied
Okay danke für den Tipp... leider löst es das Problem auch nicht wenn ich GStreamer nehme. Gibt es keine Möglichkeit irgendwie vlcj oder von mir aus auch GStreamer (was soll an dem besser sein) mit einer 64 bit JVM laufen zu lassen? Oder gibt es eine Alternative zu den zweien die in 64 bit verfügbar ist?
 

Kr0e

Gesperrter Benutzer
Nein, leider nein! Glaub mir, wenn es die gäbe, hätte ich sie gefunden...

Alle Lösungen basieren auf FFMEPG / GStreamer. Eine andere Lösung gibt es nicht. VLCj ist auch ok, aber ich persönlich mag das API von GStreamer lieber. Hab mit beiden gearbeitet, aber wie das so ist, fängt man iwann an, iwas lieber als was anderem zu finden ;)
 

TiME-SPLiNTER

Aktives Mitglied
Okay danke für eure Hilfe. Dann werde ich es wohl oder übel mal mit einer 32 bit JVM versuchen. Und das im Jahr 2011 ;).

Aber eigentlich müsste doch "nur" jemand VLC in 64 bit für Windows kompilieren? Dann sollte das funktionieren. Dass das noch niemand gemacht hat... schade.
 

Kr0e

Gesperrter Benutzer
Ansich hast du recht, hab auch shcon gesucht, aber leider bisher nichts gefunden. Meine eigenen Versuche die Libs zu kompilieren waren erfolglos... Ich bekam endlos viele Fehler und link-error. Ich habs bei FFMPeg einmal geschafft, allerdings war das iwie nicht vollständig...
 

TiME-SPLiNTER

Aktives Mitglied
Ich glaube ich habe was gefunden:

The VideoLAN Forums &bull; View topic - 64bit VLC

Allerdings sind in dem Ordner Index of /build/win64/last alle Dateien mit 32 bit beschriftet. Die folgenden Beiträge im Thread des offiziellen VLC Forums scheinen aber von einer 64 bit Version aus diesem Verzeichnis zu sprechen... die grafische Oberfläche soll noch nicht funktionieren, aber das könnte uns ja egal sein. Wir brauchen nur die Libs in 64 bit.

EDIT Ich habe die neuste Version aus dem Verzeichnis mal versucht zu starten auf einem 32bit Windows. Da kommt die Meldung (im Anhang). Die Version ist 1.2.0 die aktuelle Stable Version ist 1.1.10. Das heisst wir können damit rechnen, dass ab 1.2.0 auch eine 64bit Windows Version angeboten werden wird. Solange müsste man nocht mit den Nightlies arbeiten.

Die letzte ist aber schon eine Weile her... 08. Januar 2011...
 

Anhänge

  • vlc64bit.jpg
    vlc64bit.jpg
    20,2 KB · Aufrufe: 41
Zuletzt bearbeitet:

Kr0e

Gesperrter Benutzer
Das sieht interessant aus! Jetzt hab ich mir nochmal die ganze Sache genauer angeschaut und hab festgestellt, dass ich von einem anderen Binding ausgegangen bin! jVLC schwirrte mir im Kopf rum... Das Projekt ist nämlich tot und war nur mittelmäßig brauchabr.. Aber VLCj sieht wirklich gut aus, was das angeht. Ich werde mir das auch mal bei Gelegenheit genau ansehen...
 

TiME-SPLiNTER

Aktives Mitglied
Ich bin schon ein Schritt weiter. Ich bekomme keine Fehlermeldung mehr wenn ich das Beispielprogramm starte. Das Problem ist, es wird kein Video abgespielt (ja ich hab eins angegeben ;-)). Ich denke es liegt an der Library LibX11: [c]LibX11.INSTANCE.XInitThreads();[/c]

Zwar gibt das kein Fehler aber danach heisst es wieder:

Code:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'libX11': Das angegebene Modul wurde nicht gefunden.

	at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:166)
	at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:239)
	at com.sun.jna.Library$Handler.<init>(Library.java:140)
	at com.sun.jna.Native.loadLibrary(Native.java:393)
	at com.sun.jna.Native.loadLibrary(Native.java:378)
	at uk.co.caprica.vlcj.binding.LibX11.<clinit>(LibX11.java:44)
	at DirectTestPlayer.main(DirectTestPlayer.java:50)

Und wieder kommt die Frage: Wo findet man eine 64 bit oder auch eine 32 bit version?
 
Zuletzt bearbeitet:

TiME-SPLiNTER

Aktives Mitglied
Okay also ich möchte unsere/meine Erkenntnisse zu VLCJ noch einmal kruz zusammenfassen:

  • JVM 64 bit und 32 bit Libraries kann man nicht mischen, es funktioniert nicht
  • Es existiert eine 64 bit kompilierte Version des VLC players mit den entsprechenden Libraries
  • Die 64 bit Version von VLC leidet noch an grösseren Bugs, diese werden hoffentlich mit dem Release von 1.2.0 Gold behoben


Daraus brauchen wir die Beiden Libaraires libvlc.dll, libvlccore.dll und das plugin-Verzeichnis.

Das Zusammenspiel von JRE/Java/JVM 32 bit mit den 1.2.0 Libraries des VLC in 32 bit klappt perfekt und schnell.
Hingegen funktioniert die Zusammenarbeit von JRE/Java/JVM 64 bit mit den 1.2.0 Libs von VLC 64 bit nur mässig. Es dauert ewig, bis er mit dem abspielen beginnt. Wenn er aber mal begonnen hat, läuft alles flüssig und wie bei der 32 bit Version.

Die 64 bit version wirft folgenden Fehler, welcher ich als Verursacher für das lange Laden der Medien Vermute:

Code:
[0xc4e57f0] directx generic error: overlay unuseable (might already be in use)
[0x6af4f20] main video output error: option direct3d-desktop does not exist

Ersteren nur wenn man das Java-Programm minimiert. Zudem wird die Oberfläche von Windows durcheinander geworfen (und Aero falls vorhanden deaktiviert).

Man kann aber dem VLC ein Argument mitgeben das ihm sagt, dass er ein anderen video output nutzen soll als directx (dies ist standardmässig der video output des VLCs unter windows). Mit

Code:
-V glx,opengl

Läuft der VLCJ dann mit OpenGL. Somit wird schon einmal die Oberfläche von Windows in ruhe gelassen. Der Fehler: [c][0x6af4f20] main video output error: option direct3d-desktop does not exist[/c] besteht jedoch weiterhin.

Das ist der aktuelle Stand am 30.06.2011.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
R -jar der Windows-Registry hinzufügen Allgemeine Java-Themen 1
C jar File mehrfach aufrufen (als Windows Dienst) Allgemeine Java-Themen 5
izoards JAR als Windows Service mit Appache Procrun (prunsrv) Allgemeine Java-Themen 6
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
N iText keine Sonderzeichen und Umlaute unter Windows Allgemeine Java-Themen 13
MarekLanger Filebeat in Docker unter Windows Allgemeine Java-Themen 1
M Registry Autostart Eintrag mit Java erstellen (über Windows cmd) Allgemeine Java-Themen 7
S Java-Task-Management-Tool für Windows und Mac selber programmieren Allgemeine Java-Themen 4
M Console geht nicht auf (Windows 10) Allgemeine Java-Themen 3
M TomEE auf Windows Server 2016 installieren Allgemeine Java-Themen 4
Thallius Rätsel für Windows Profis Allgemeine Java-Themen 8
F Java Code ausführen direkt nach Anmelden in Windows Allgemeine Java-Themen 2
J jar Dateien unter Windows 7 mit spezifischer jdk öffnen Allgemeine Java-Themen 2
T Java Windows sounds erkennen Allgemeine Java-Themen 1
P Java als Windows Dienst Allgemeine Java-Themen 2
I GUI für kleine Pop-Ups unter Windows Allgemeine Java-Themen 1
H Änderung im maximalen heap space unter Windows 7 ?! Allgemeine Java-Themen 5
dereki2000 Windows Benachrichtigung erzeugen Allgemeine Java-Themen 2
Neumi5694 Task-Name unter Windows Allgemeine Java-Themen 4
M Checkliste mit erweiterbaren Einträgen, Baumstruktur, wie Windows Explorer Navigation Allgemeine Java-Themen 2
S Java OpenOffice Problem mit Windows-Benutzerwechsel Allgemeine Java-Themen 19
R JDK installieren JDK / Maven auf Windows 10 installieren Allgemeine Java-Themen 9
K jar-Datei lässt sich unter Windows nicht verwenden Allgemeine Java-Themen 3
Blender3D Java Swing Programm Windows 10 Autostart Problem Allgemeine Java-Themen 2
D Jsch nur für Windows? Allgemeine Java-Themen 2
X JDK installieren Weiß jemand, wie ich GCJ (WINDOWS) installieren und anwenden kann? Allgemeine Java-Themen 11
D JRE in .jar verpacken unter Windows Allgemeine Java-Themen 4
I Programm im Hintergrund bei Windows zur Steuerung der Tastatur nutzen Allgemeine Java-Themen 2
D Aktuell installierte Java Version auslesen unter Windows Allgemeine Java-Themen 5
S Executable Jar File startet nicht unter Windows 10 Allgemeine Java-Themen 3
C Windows RCP Application unter Linux bauen lassen Allgemeine Java-Themen 3
E Anwendung verhält sich unter Mac anders als Unter Windows. Allgemeine Java-Themen 4
S JNLP startet seit 1.8.0_31 sehr langsam + Windows-Systemverzeichnis Allgemeine Java-Themen 3
M Windows 98 - Mit welchem JDK (Version) kann noch Programm dafür erstellt werden Allgemeine Java-Themen 6
Tom299 Beliebiges Windows-Programm / Prozess in den Vordergrund bringen Allgemeine Java-Themen 4
D Konsoleneingabe ist in Windows CMD nicht sichtbar Allgemeine Java-Themen 4
P Effizientes Programmieren - oder Windows Autostart fürs Herunterfahren Allgemeine Java-Themen 11
O Zugriff auf Windows Zertifikatstore Allgemeine Java-Themen 2
F Windows Umlaute Allgemeine Java-Themen 15
T Windows-Kontextmenü Eintrag hinzufügen? Allgemeine Java-Themen 3
O Socket-Unterschiede zwischen Windows und Ubuntu Allgemeine Java-Themen 2
G Wie installiere ich javax-usb unter windows? Allgemeine Java-Themen 0
M Swing Windows und Ubuntu Allgemeine Java-Themen 4
H JFileChooser soll NUR Windows-Netzwerkumgebung anzeigen Allgemeine Java-Themen 2
L Windows CMD werte Parsen. Allgemeine Java-Themen 2
M Code läuft unter windows aber nicht unter Linux Allgemeine Java-Themen 6
HarleyDavidson Tomcat VS Windows Scheduled Task Allgemeine Java-Themen 4
T JNI: kein Zugriff auf VM in Callback-Methode eines Windows-Hooks Allgemeine Java-Themen 3
W Windows (Service) Hooking Allgemeine Java-Themen 8
M Java auf Linux und Windows Allgemeine Java-Themen 6
R Windows-Firewall lässt Java nicht durch Allgemeine Java-Themen 17
R Java-Progamm über Icon starten unter Windows Allgemeine Java-Themen 9
N Input/Output Mit Windows 7 erzeugtes zip-File in Java 7 öffnen Allgemeine Java-Themen 5
P Eclipse Unter Windows erstelle .jar unter Linux (Ubuntu) funktioniert nicht Allgemeine Java-Themen 5
R ZIP FileSystem unter Windows wirft exception Allgemeine Java-Themen 7
njans Windows Verknüpfung von Icon Allgemeine Java-Themen 2
P windows mit java bedienen Allgemeine Java-Themen 8
X Windows-Environment-Variable per jRegistryKey anpassen Allgemeine Java-Themen 6
P .Jar Datein Windows Konsole zugewiesen Allgemeine Java-Themen 3
C Encoding Problem Windows Allgemeine Java-Themen 9
L Input/Output ProcessBuilder und Windows - Konsole verbergen? Allgemeine Java-Themen 5
R Welches User-Verzeichnis wählen für Configurationsdateien - Windows Allgemeine Java-Themen 2
R Änderungen in einem Verzeichnis beobachten - Windows Allgemeine Java-Themen 3
A Nach Benutzerwechsel mit anderem Account in Windows anmelden Allgemeine Java-Themen 8
T Jar File läuft unter Windows aber nicht unter linux Allgemeine Java-Themen 10
B Windows Konsolenbefehle Allgemeine Java-Themen 3
Z Probleme bei Stringvergleichen (Windows/Linux) Allgemeine Java-Themen 10
B Windows Shutdown abfangen Allgemeine Java-Themen 10
E CMD Registry Key für Windows 7? Allgemeine Java-Themen 9
S Prozess der von anderem Prozess gestartet wurde beenden? (Windows Bildschirmtastatur) Allgemeine Java-Themen 4
G Input/Output URLDecoder.decode - Unterschiedliche Ergebnisse Windows / Linux Allgemeine Java-Themen 2
R Windows ermitteln ob Administratorrechte vorhanden Allgemeine Java-Themen 17
Y MenuBar -> Windows / Mac OS X Allgemeine Java-Themen 2
L Java Quellcode auf Windows 7 ausführen? Allgemeine Java-Themen 3
I Encoding Problem bei exec und Windows Allgemeine Java-Themen 2
R Windows - User Passwort ändern Allgemeine Java-Themen 2
F java prog als windows-dienst. Erfahrungen? Allgemeine Java-Themen 2
R Dateien vom Windows-Explorer zum Programm senden Allgemeine Java-Themen 21
H Standard Windows-Druck-Dialog Allgemeine Java-Themen 2
S Windows "öffnen mit..." Allgemeine Java-Themen 4
D Clipboard getSystemSelection() funktioniert unter Windows* nicht Allgemeine Java-Themen 3
M Nach Programmdurchlauf werden Zeichen falsch dargestellt + Anderes Verhalten unter Windows Allgemeine Java-Themen 6
P Windows Media Player starten / finden Allgemeine Java-Themen 2
D Windows-Konsole auslesen - Zeichenkodierung Allgemeine Java-Themen 4
J Path-Eintrag unter Windows 7 Allgemeine Java-Themen 11
Q .jar wird mit cmd gestartet - Zuordnung von Dateitypen ändern (Windows 7) Allgemeine Java-Themen 7
G jad JDK1.6 Windows 7 Allgemeine Java-Themen 2
Z Position/Größe von Windows-Fenstern ermitteln Allgemeine Java-Themen 12
Z Probleme mit Java unter Vista/ Windows 7 Allgemeine Java-Themen 12
O Jar-Datei auf Windows 98 Allgemeine Java-Themen 6
K Windows Fehlerkanal -> Ausgabe in Datei Allgemeine Java-Themen 6
M Runtime.getRuntime().exec(cmd); auf windows ... Allgemeine Java-Themen 2
P Runnable Jar File über Windows ausführbar doch über Linux nicht Allgemeine Java-Themen 8
A JavaVM Zeit Windows 7 Allgemeine Java-Themen 9
P USB Temperatursensor auslesen Windows Allgemeine Java-Themen 7
T Mac OS X <--> Windows XP Portierungsprobleme Allgemeine Java-Themen 7
G Textdatei einlesen unter Windows 7 Allgemeine Java-Themen 4
Benji0815 Verzeichnis wie im Windows Explorer in einem JTree anzeigen Allgemeine Java-Themen 6
P Die (Windows)MAC-Adresse vor 1.6 Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben