VideoCapture überlässt die Netzwerkarbeit dem ausgewählten Backend. Bei einem OpenCV-Build mit FFmpeg kann eine HTTP-Video-URL die http_proxy-Option von FFmpeg über die Umgebungsvariable für Aufnahmeoptionen erhalten:

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()

Das FFmpeg-Backend von OpenCV zerlegt die Optionszeichenkette in Schlüssel;Wert-Paare, wobei mehrere Paare durch einen senkrechten Strich getrennt werden. Das Beispiel setzt die Umgebung vor dem Import von OpenCV und fordert CAP_FFMPEG ausdrücklich an.

FFmpeg dokumentiert http_proxy als Proxy-URL des HTTP-Protokolls; die HTTP-Proxy-Liste liefert Kandidaten für eine öffentliche HTTP-Medienroute. Das konfiguriert kein fremdes Aufnahme-Backend, keine lokale Kamera und keinen beliebigen RTSP/UDP-Verkehr.

Prüfen Sie Backend und FFmpeg-Fähigkeiten des tatsächlichen OpenCV-Builds. Ein Proxy-Wert kann kein fehlendes Backend und keinen fehlenden Decoder hinzufügen.

Das Öffnen der Medieneingabe und das Dekodieren eines Frames sind ebenfalls getrennte Ergebnisse. Ein Codec-Fehler nach erfolgreichem Download sollte nicht als Beweis dafür gemeldet werden, dass der Proxy nicht erreichbar war.

Ähnliche Artikel