Потоковая веб-камера через 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();
}

}

0 ответов

Другие вопросы по тегам