Wenn FFmpeg pipe:0 liest, ist sein Eingabeprotokoll eine Pipe. Wenn curl die Medien abgerufen hat, hat curl die Netzwerkverbindung geöffnet und muss die Proxy-Konfiguration erhalten.

Für eine sequenzielle MPEG-TS-Eingabe kann eine Bash-Pipeline so aussehen:

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

Für einen erlaubten Download öffentlicher Medien liefert die HTTP-Proxy-Liste Kandidaten für curls Proxy-URL. Die leere Umgehungsliste sorgt dafür, dass diese curl-Anfrage den gewählten Vermittler nutzt. pipefail erhält außerdem einen vorgelagerten Downloadfehler im Exit-Status der Pipeline.

Die Option http_proxy von FFmpeg gehört zu den unterstützten HTTP-Netzwerkeingaben. Sie kann kein anderes Programm konfigurieren, nur weil dessen Ausgabe über eine Pipe an FFmpeg geht.

Wenn FFmpeg den Download übernehmen soll, geben Sie ihm die Medien-URL direkt und nutzen Sie die Optionen, die sein gewähltes Protokoll und Build unterstützen. Für eine HTTP-Eingabe setzen Sie die Proxy-Option von FFmpeg vor diese Eingabe. Eine Pipe entbehrt außerdem der üblichen Dateisuche, daher sollten Sie die Formatvorgaben des bestehenden Workflows beibehalten, wenn Sie zwischen URL- und Pipe-Eingabe wechseln.

Ähnliche Artikel