Использование vlcj с прокси

#vlc #libvlc #vlcj

#vlc #libvlc #vlcj

Вопрос:

У меня есть видеофайл, который можно воспроизводить только с помощью прокси-сервера в vlc player, когда я пытаюсь открыть его с помощью vlcj, я не могу подключиться к этому носителю — я пытался использовать опцию настройки http-прокси в mrl ( http://path_to_media :http-proxy=proxy_address ) — но у меня это пока не сработало. Я также пытался установить переменную среды http_proxy , но у меня это тоже не сработало. Кто-нибудь может сказать мне, что я делаю не так? Может быть, не должно быть пробела между путем к носителю и параметром конфигурации? Возможно, параметры конфигурации не работают в Windows? Как я могу получить доступ к этому видео (я знаю, что мог бы использовать для этого перекодирование, но это кажется излишним, я чувствую, что должен быть более простой способ)

Комментарии:

1. Пожалуйста, поделитесь логами и кодом

Ответ №1:

Как правило, если вы хотите передать такие параметры, как «—http-proxy», то это способ сделать это:

 MediaPlayerFactory factory = new MediaPlayerFactory("--http-proxy=<your settings");
  

Или:

 String yourProxySettings = "http://whatever.com";
MediaPlayerFactory factory = new MediaPlayerFactory("--http-proxy", yourProxySettings);
  

Затем используйте этот заводской экземпляр для создания вашего медиаплеера.

Я полагаю, вы используете этот механизм, а не используете параметры мультимедиа при вызове play(), потому что вы настраиваете сам экземпляр VLC, а не отдельные носители.

Предостережение: в имеющихся у меня версиях VLC я не вижу опции —http-proxy, сообщаемой как доступная опция командной строки.

Ответ №2:

Вы могли бы сделать запрос на Java, получить поток и использовать https://github.com/caprica/vlcj/blob/de90d77bc288843b4d07dad84ff9d0515e906657/src/main/java/uk/co/caprica/vlcj/media/callback/AbstractCallbackMedia.java чтобы передать его vlcj для воспроизведения.

Редактировать:

В противном случае используйте

 --http-proxy=<string>      HTTP proxy
          HTTP proxy to be used It must be of the form
          http://[user@]myproxy.mydomain:myport/ ; if empty, the http_proxy
          environment variable will be tried.
  

из https://wiki.videolan.org/VLC_command-line_help /. Сначала попытайтесь найти правильную команду с помощью обычного интерфейса командной строки VLC. Полностью поделитесь своей попыткой здесь.

Комментарии:

1. проблема в том, что я уже создал свой проигрыватель, и я не заинтересован в изменении кода в данный момент, поэтому я пробую альтернативные способы, которые берут на себя ответственность за проксирование потока в libVLC