การตั้งค่าพร็อกซี HTTP ของ OpenCV VideoCapture กับแบ็กเอนด์ FFmpeg
ส่งตัวเลือกพร็อกซี HTTP ของ FFmpeg ผ่าน OPENCV_FFMPEG_CAPTURE_OPTIONS เมื่อ VideoCapture ใช้แบ็กเอนด์นั้นอย่างชัดเจน
VideoCapture มอบหมายงานเครือข่ายให้แบ็กเอนด์ที่เลือกไว้ เมื่อใช้ OpenCV บิลด์ที่มี FFmpeg URL วิดีโอ HTTP สามารถรับตัวเลือก http_proxy ของ FFmpeg ผ่านสภาพแวดล้อมของตัวเลือกการจับภาพ:
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()
แบ็กเอนด์ FFmpeg ของ OpenCV แยกวิเคราะห์สตริงตัวเลือกเป็นคู่ key;value โดยมีเส้นแนวตั้งคั่นระหว่างหลายคู่ ตัวอย่างตั้งค่าสภาพแวดล้อมก่อนนำเข้า OpenCV และขอ CAP_FFMPEG อย่างชัดเจน
FFmpeg ระบุ http_proxy เป็น URL พร็อกซีของโปรโตคอล HTTP รายการพร็อกซี HTTP ให้ผู้สมัครสำหรับเส้นทางสื่อ HTTP สาธารณะ สิ่งนี้ไม่ได้กำหนดค่าแบ็กเอนด์การจับภาพที่ไม่เกี่ยวข้อง กล้องท้องถิ่น หรือทราฟฟิก RTSP/UDP ตามอำเภอใจ
ตรวจสอบแบ็กเอนด์และความสามารถของ FFmpeg ในบิลด์ OpenCV จริง ค่าพร็อกซีไม่สามารถเพิ่มแบ็กเอนด์หรือตัวถอดรหัสที่ขาดหายไปได้
การเปิดอินพุตสื่อและการถอดรหัสเฟรมก็เป็นผลลัพธ์ที่แยกจากกัน ความล้มเหลวของโคเดกหลังดาวน์โหลดสำเร็จไม่ควรถูกรายงานเป็นหลักฐานว่าพร็อกซีเข้าถึงไม่ได้