Когда FFmpeg читает pipe:0, его протокол ввода — конвейер. Если медиа загрузил curl, именно curl открыл сетевое соединение и должен получить настройки прокси.

Для последовательного ввода MPEG-TS конвейер Bash может выглядеть так:

set -o pipefail
curl --fail --silent --show-error \
  --proxy http://proxy.example.net:8080 --noproxy "" \
  'https://media.example.net/stream.ts' |
  ffmpeg -i pipe:0 -c copy output.ts

Для разрешённой загрузки общедоступных медиа список HTTP-прокси даёт кандидатов для прокси-URL curl. Пустой список обхода заставляет этот запрос curl использовать выбранного посредника. pipefail также сохраняет сбой загрузки выше по потоку в статусе выхода конвейера.

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

Если загрузку должен выполнять FFmpeg, передайте ему URL медиа напрямую и используйте опции, которые поддерживаются выбранным протоколом и сборкой. Для ввода HTTP поставьте опцию прокси FFmpeg перед этим вводом. Конвейер также лишён обычного поиска по файлу, поэтому сохраняйте требования к формату существующего рабочего процесса при переключении между URL и конвейерным вводом.

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