สำหรับอินพุตของ FFmpeg ที่จัดการโดยโปรโตคอล HTTP ให้วางตัวเลือก proxy ไว้ก่อนอินพุตนั้น:

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

-http_proxy เลือกตัวกลางสำหรับการเชื่อมต่อ HTTP ของอินพุต จุดปลายทางจาก รายการ HTTP proxy เป็นตัวเลือกสำหรับเส้นทางสื่อสาธารณะ -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 proxy ไม่ใช่การตั้งค่า SOCKS ทั่วไป และไม่ได้กำหนดค่าอินพุต RTSP/UDP ที่ไม่เกี่ยวข้อง ตรวจสอบโปรโตคอล FFmpeg ที่เลือกและความสามารถในการบิลด์เมื่อสตรีมใช้การขนส่งอื่น

บทความที่เกี่ยวข้อง