HTTP-Proxy-Einstellungen für OpenCV VideoCapture mit dem FFmpeg-Backend
FFmpegs HTTP-Proxy-Option über OPENCV_FFMPEG_CAPTURE_OPTIONS übergeben, wenn VideoCapture dieses Backend ausdrücklich verwendet.
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.