When FFmpeg reads pipe:0, its input protocol is a pipe. If curl fetched the media, curl opened the network connection and must receive the proxy configuration.

For a sequential MPEG-TS input, a Bash pipeline can be:

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

For a permitted public-media download, the HTTP proxy list provides candidates for curl’s proxy URL. The empty bypass list makes this curl request use the chosen intermediary. pipefail also preserves an upstream download failure in the pipeline’s exit status.

FFmpeg’s http_proxy option belongs to supported HTTP network inputs. It cannot configure a different program merely because that program’s output is piped into FFmpeg.

If FFmpeg should own the download, give it the media URL directly and use the options supported by its selected protocol and build. For an HTTP input, place FFmpeg’s proxy option before that input. A pipe also lacks ordinary file seeking, so preserve the existing workflow’s format requirements when changing between URL and piped input.

Artihkkalat mat laktásit