Cấu hình proxy HTTP của OpenCV VideoCapture với backend FFmpeg
Truyền tùy chọn proxy HTTP của FFmpeg qua OPENCV_FFMPEG_CAPTURE_OPTIONS khi VideoCapture sử dụng rõ ràng backend đó.
VideoCapture giao công việc mạng cho backend mà nó đã chọn. Với bản dựng OpenCV có FFmpeg, một URL video HTTP có thể nhận tùy chọn http_proxy của FFmpeg thông qua môi trường tùy chọn ghi hình:
import os
os.environ['OPENCV_FFMPEG_CAPTURE_OPTIONS'] = (
'http_proxy;http://proxy.example:8080'
)
import cv2
capture = cv2.VideoCapture(
'http://media.example/video.mp4',
cv2.CAP_FFMPEG,
)
try:
if not capture.isOpened():
raise RuntimeError('Video input did not open')
ok, frame = capture.read()
finally:
capture.release()
Backend FFmpeg của OpenCV phân tích chuỗi tùy chọn thành các cặp khóa;giá trị, với dấu gạch đứng giữa nhiều cặp. Ví dụ đặt môi trường trước khi nhập OpenCV và yêu cầu rõ ràng CAP_FFMPEG.
FFmpeg ghi nhận http_proxy là URL proxy của giao thức HTTP; danh sách proxy HTTP cung cấp các ứng viên cho một tuyến phương tiện HTTP công khai. Điều đó không cấu hình backend ghi hình không liên quan, camera cục bộ hay lưu lượng RTSP/UDP tùy ý.
Kiểm tra backend và khả năng FFmpeg của bản dựng OpenCV thực tế. Giá trị proxy không thể thêm backend hoặc bộ giải mã còn thiếu.
Mở đầu vào phương tiện và giải mã một khung hình cũng là hai kết quả riêng biệt. Lỗi codec sau khi tải xuống thành công không nên được báo cáo như bằng chứng rằng proxy không thể truy cập.