Với đầu vào FFmpeg được xử lý bởi giao thức HTTP của nó, hãy đặt tuỳ chọn proxy trước đầu vào đó:

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

-http_proxy chọn trung gian cho kết nối HTTP của đầu vào; một điểm cuối từ danh sách proxy HTTP là ứng viên cho tuyến media công khai. -i vẫn chỉ định tài nguyên media. Tuỳ chọn copy liên quan đến các luồng đầu ra và không cấu hình tuyến mạng.

Trong Java cũng vậy, giữ tuỳ chọn và URL là các tham số tiến trình riêng biệt:

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

Một lớp bao bọc công khai thêm tham số cũng cần sự phân biệt hai token như vậy. Một chuỗi duy nhất chứa cả -http_proxy và giá trị của nó không phải là cặp tuỳ chọn và giá trị mà FFmpeg mong đợi.

Dấu nháy mà shell dùng để nhóm một URL không được trở thành ký tự nguyên văn trong danh sách tham số của ProcessBuilder.

Tuỳ chọn HTTP proxy không phải là thiết lập SOCKS chung và cũng không cấu hình đầu vào RTSP/UDP không liên quan. Kiểm tra giao thức FFmpeg đã chọn và khả năng biên dịch khi luồng dùng phương thức truyền tải khác.

Bài viết liên quan