Для входа FFmpeg, обрабатываемого его протоколом HTTP, ставьте параметр прокси перед этим входом:

ffmpeg -http_proxy http://proxy.example:8080 \
  -i 'https://media.example/input.mp4' \
  -c copy output.mp4

-http_proxy выбирает посредника для HTTP-соединения входа; конечная точка из списка HTTP-прокси подходит для публичного медиамаршрута. -i по-прежнему указывает медиаресурс. Параметр copy относится к выходным потокам и не настраивает сетевой маршрут.

В Java тоже держите параметр и URL отдельными аргументами процесса:

var command = new ProcessBuilder(
    "ffmpeg",
    "-http_proxy", "http://proxy.example:8080",
    "-i", inputUrl,
    "-c", "copy", outputPath
);

Обёртке, передающей дополнительные аргументы, нужно то же различие двух токенов. Одна строка, содержащая и -http_proxy, и его значение, не является парой параметра и значения, которую ожидает FFmpeg.

Кавычки, которыми оболочка группирует URL, не должны становиться буквальными символами в списке аргументов ProcessBuilder.

Параметр HTTP-прокси не является общей настройкой SOCKS и не настраивает несвязанный вход RTSP/UDP. Проверяйте выбранный протокол FFmpeg и возможности сборки, когда поток использует другой транспорт.

Похожие статьи