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