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 จริง ค่าพร็อกซีไม่สามารถเพิ่มแบ็กเอนด์หรือตัวถอดรหัสที่ขาดหายไปได้

การเปิดอินพุตสื่อและการถอดรหัสเฟรมก็เป็นผลลัพธ์ที่แยกจากกัน ความล้มเหลวของโคเดกหลังดาวน์โหลดสำเร็จไม่ควรถูกรายงานเป็นหลักฐานว่าพร็อกซีเข้าถึงไม่ได้

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