{ 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();
}
日志错误:
SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。
SLF4J:默认为无操作(NOP)记录器实现
SLF4J:有关更多详细信息,请参见http://www.slf4j.org/codes.html#StaticLoggerBinder。
将'd:\ a.mp4'流式传输到':sout =#duplicate {dst = std {access = http,mux = ts,dst = 127.0.0.1:5555}}'线程“main”中的异常java.lang.RuntimeException :无法加载本机库。
错误为“无法加载库'libvlc':在资源路径(C:\ Users \ Adam \ http \ VLC STREAM \ bin; E:\ Adam \ Desktop中找不到JNA本机支持(win32-amd64/libvlc.dll) \ vlcj-3.7.0 \ jna-3.5.2.jar; E:\ Adam \ Desktop \ vlcj-3.7.0 \ platform-3.5.2.jar; E:\ Adam \ Desktop \ vlcj-3.7.0 \ slf4j -api-1.7.10.jar; E:\ Adam \ Desktop \ vlcj-3.7.0 \ vlcj-3.7.0.jar; E:\ Adam \ Desktop \ apache-logging-log4j.jar)”。
所需的本机库名为“libvlc.dll”和“libvlccore.dll”。
下面的文本表示包含“libvlc.dll”和“libvlccore.dll”的目录的名称。
有很多不同的方法可以指定在哪里可以找到本机库:
如果仍然无法执行,则可能有必要将本机库目录显式添加到
系统配置-例如在Linux上,这可能意味着设置LD_LIBRARY_PATH环境变量,或添加
配置到“/etc/ld.so.conf”文件或“/etc/ld.so.conf.d”目录。在这些选项中,设置
LD_LIBRARY_PATH是唯一不需要root特权的人。
最后,不可能混合使用CPU架构-无法加载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
我不知道
最佳答案
错误消息非常完整,并且在这种情况下很有帮助-VLCJ找不到需要运行的DLL文件,因此您需要告诉它它们在哪里!
您的图像显示您已经添加了正确的Java库,但没有提到libvlc.dll和libvlccore.dll。
引用您的问题:
您可以尝试多种选择,但在您提供的代码中看不到有任何证据表明它们正在使用。
如果仍然无法正常运行,则可能是您的架构错误(这是我经验中失败的最常见原因)-如果您安装了64位JDK,则将需要64位VLC,同样需要32位JDK仅适用于32位VLC。
关于java - java-vlcj在尝试创建服务器流时给出错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30113450/