2015-05-07 1 views
-2
{ String media = "d:\\a.mp4"; 
    String options = formatHttpStream("127.0.0.1", 5555); 
    System.out.println("Streaming '" + media + "' to '" + options + "'"); 
    MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory(args[0]); 
    HeadlessMediaPlayer mediaPlayer = mediaPlayerFactory.newHeadlessMediaPlayer(); 
    mediaPlayer.playMedia(media, options); 
    Thread.currentThread().join(); 
} 
private static String formatHttpStream(String serverAddress, int serverPort) { 
    StringBuilder sb = new StringBuilder(60); 
    sb.append(":sout=#duplicate{dst=std{access=http,mux=ts,"); 
    sb.append("dst="); 
    sb.append(serverAddress); 
    sb.append(':'); 
    sb.append(serverPort); 
    sb.append("}}"); 
    return sb.toString(); 
} 

LOG ОШИБКА:Java - vlcj выдает ошибку при попытке создать поток SERVER

SLF4J: Не удалось загрузить класс "org.slf4j.impl.StaticLoggerBinder".

SLF4J: Дефолт ни к какому-операции реализации (NOP) Регистратор

SLF4J: Смотрите http://www.slf4j.org/codes.html#StaticLoggerBinder для получения более подробной информации.

Streaming 'd: \ a.mp4' to ': sout = # duplicate {dst = std {access = http, mux = ts, dst = 127.0.0.1: 5555}}' Исключение в потоке "main" java .lang.RuntimeException: Не удалось загрузить собственную библиотеку.

Ошибка: «Невозможно загрузить библиотеку libvlc»: встроенная поддержка JNA (win32-amd64/libvlc.dll) не найдена в пути ресурса (C: \ Users \ Adam \ http \ VLC STREAM \ bin; E: \ Adam \ Desktop \ vlcj-3.7.0 \ ЮНА-3.5.2.jar; E: \ Adam \ Desktop \ vlcj-3.7.0 \ платформы 3.5.2.jar; E: \ Адама \ Desktop \ vlcj-3,7 +0,0 \ SLF4J-апи-1.7.10.jar; E: \ Адама \ Desktop \ vlcj-3.7.0 \ vlcj-3.7.0.jar; E: \ Adam \ Desktop \ апач-каротаж log4j.jar)» ,

Необходимые родные библиотеки называются «libvlc.dll» и «libvlccore.dll».

В приведенном ниже тексте представляет имя каталога, содержащего «libvlc.dll» и «libvlccore.dll» ...

Есть целый ряд различных способов определить, где найти родные библиотеки:

  1. Включить NativeLibrary.addSearchPath ("libvlc", ""); в начале вашего кода приложения.

  2. Включить System.setProperty ("jna.library.path", ""); в начале вашего кода приложения.

  3. Укажите -Djna.library.path = в командной строке при запуске приложения.

  4. Добавьте к пути поиска системы (и перезагрузитесь).

Если это все еще не работает, то это может быть необходимо явно добавить родной каталог библиотеки в конфигурации системы операционной - например, в Linux это может означать настройку переменной среды LD_LIBRARY_PATH или добавление конфигурации в файл «/etc/ld.so.conf» или каталог «/etc/ld.so.conf.d». Из этих параметров установка LD_LIBRARY_PATH является единственной, которая не требует привилегий root.

Наконец, невозможно смешивать архитектуры процессора - невозможно, чтобы 64-разрядная виртуальная машина Java загружала 32-разрядные родные библиотеки.

Дополнительная информация может быть доступна в журнале.

at uk.co.caprica.vlcj.binding.LibVlcFactory.create(LibVlcFactory.java:198) 
at uk.co.caprica.vlcj.player.MediaPlayerFactory.<init>(MediaPlayerFactory.java:256) 
at StreamHttp.main(StreamHttp.java:11) 

LIB:

http://zapodaj.net/ed5de522e2b3e.jpg.html

У меня нет ни малейшего представления

+2

Вставьте текст ошибки в вопрос. Не связывайте изображение. –

ответ

0

Сообщение об ошибке очень полным и полезным в данном случае - VLCJ не удалось найти DLL файлы, которые нужны для бегите, поэтому вам нужно сказать, где они!

Ваше изображение показывает, что вы добавили правильные библиотеки Java, в нем ничего не говорится о libvlc.dll и libvlccore.dll.

Цитирование из вашего вопроса:

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

In the text below 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:

Include NativeLibrary.addSearchPath("libvlc", ""); at the start of your application code.

Include System.setProperty("jna.library.path", ""); at the start of your application code.

Specify -Djna.library.path= on the command-line when starting your application.

Add to the system search path (and reboot).

Есть несколько вариантов, у вас есть там попробовать, я не вижу каких-либо доказательств их используется в коде, который вы при условии.

Если он по-прежнему не работает, скорее всего, у вас неправильная архитектура (и это самая распространенная причина отказа в моем опыте) - если у вас установлен 64-битный JDK, вам понадобится 64-битный VLC, аналогично 32-битный JDK будет работать только с 32-битным VLC.