Параметр HTTP-прокси в FFmpeg ставится перед входом
Передавайте http_proxy как параметр входного протокола и сохраняйте отдельные аргументы параметра и значения, когда приложение Java запускает FFmpeg.
Для входа 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 и возможности сборки, когда поток использует другой транспорт.