Потоковая веб-камера через HTTP в VLCj
Я пытаюсь создать приложение видеочата в VLCj, но не могу успешно транслировать видео с моей веб-камеры через HTTP, хотя уже загруженное видео транслируется с помощью следующего кода (аргумент командной строки, указанный в качестве имени файла), но это не не работает, если я задаю аргумент командной строки как "dshow://" . Как я могу транслировать мою веб-камеру по сети через HTTP, потому что кажется, что RTP заблокирован по сети, поскольку даже загруженный файл не передается по RTP.
открытый класс StreamHttp расширяет VlcjTest {
private static final Logger logger = LoggerFactory.getLogger(VlcjTest.class);
private static final String NATIVE_LIBRARY_SEARCH_PATH = "C:\\Program Files\\VideoLAN\\VLC";
private static final String DUMP_NATIVE_MEMORY = "false";
static {
// Initialise Log4J (this is good enough for testing, vlcj depends on log4j only for testing here)
BasicConfigurator.configure();
LibXUtil.initialise();
if(null != NATIVE_LIBRARY_SEARCH_PATH) {
logger.info("Explicitly adding JNA native library search path: '{}'", NATIVE_LIBRARY_SEARCH_PATH);
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), NATIVE_LIBRARY_SEARCH_PATH);
}
System.setProperty("jna.dump_memory", DUMP_NATIVE_MEMORY);
}
public static void main(String[] args) throws Exception {
if(args.length != 1) {
System.out.println("Specify a single MRL to stream");
System.exit(1);
}
String media = args[0];
String options = formatHttpStream("10.3.1.31", 5555);
System.out.println("Streaming '" + media + "' to '" + options + "'");
MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory(args);
HeadlessMediaPlayer mediaPlayer = mediaPlayerFactory.newHeadlessMediaPlayer();
mediaPlayer.playMedia(media, options);
// Don't exit
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();
}
}