Pour une entrée FFmpeg traitée par son protocole HTTP, placez l'option de proxy avant cette entrée :

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

-http_proxy choisit l'intermédiaire de la connexion HTTP de l'entrée ; un point de terminaison de la liste de proxys HTTP est candidat pour une route média publique. -i désigne toujours la ressource média. L'option copy concerne les flux de sortie et ne configure pas la route réseau.

En Java aussi, gardez l'option et l'URL comme des arguments de processus distincts :

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

Un wrapper qui expose des arguments supplémentaires a besoin de la même distinction entre deux jetons. Une seule chaîne contenant à la fois -http_proxy et sa valeur n'est pas la paire option et valeur attendue par FFmpeg.

Les guillemets qu'un shell utilise pour regrouper une URL ne doivent pas devenir des caractères littéraux dans la liste d'arguments de ProcessBuilder.

L'option de proxy HTTP n'est pas un réglage SOCKS général et ne configure pas une entrée RTSP/UDP sans rapport. Vérifiez le protocole FFmpeg choisi et les capacités de compilation lorsqu'un flux utilise un autre transport.

Articles similaires