VideoCapture מפנה את עבודת הרשת ל-backend שנבחר. עם בנייה של OpenCV הכוללת FFmpeg, כתובת וידאו מסוג 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()

ה-backend של FFmpeg ב-OpenCV מפרש את מחרוזת האפשרויות כזוגות מפתח;ערך, עם קו אנכי בין זוגות מרובים. הדוגמה מגדירה את הסביבה לפני ייבוא OpenCV ומבקשת במפורש CAP_FFMPEG.

FFmpeg מתעד את http_proxy ככתובת הפרוקסי של פרוטוקול HTTP; רשימת פרוקסי ה-HTTP מספקת מועמדים למסלול מדיה ציבורי ב-HTTP. זה אינו מגדיר backend לכידה לא קשור, מצלמה מקומית או תעבורת RTSP/UDP שרירותית.

בדקו את ה-backend ואת יכולות FFmpeg של בניית OpenCV בפועל. ערך פרוקסי אינו יכול להוסיף backend או מפענח חסרים.

פתיחת קלט המדיה ופענוח פריים הם גם תוצאות נפרדות. אין לדווח על כשל קודק לאחר הורדה מוצלחת כהוכחה שהפרוקסי לא היה נגיש.

מאמרים קשורים