HTTP-proxyinstellingen van OpenCV VideoCapture met de FFmpeg-backend
Geef FFmpeg's HTTP-proxyoptie door via OPENCV_FFMPEG_CAPTURE_OPTIONS wanneer VideoCapture die backend uitdrukkelijk gebruikt.
VideoCapture delegeert het netwerkwerk aan de backend die het heeft gekozen. Met een OpenCV-build die FFmpeg levert, kan een HTTP-video-URL de http_proxy-optie van FFmpeg ontvangen via de omgeving van opnameopties:
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()
De FFmpeg-backend van OpenCV ontleedt de optiereeks als sleutel;waarde-paren, met een verticale streep tussen meerdere paren. Het voorbeeld stelt de omgeving in vóór het importeren van OpenCV en vraagt uitdrukkelijk om CAP_FFMPEG.
FFmpeg documenteert http_proxy als de proxy-URL van het HTTP-protocol; de HTTP-proxylijst biedt kandidaten voor een openbare HTTP-mediamroute. Dat configureert geen ongerelateerde opnamebackend, lokale camera of willekeurig RTSP/UDP-verkeer.
Controleer de backend en FFmpeg-mogelijkheden van de werkelijke OpenCV-build. Een proxywaarde kan geen ontbrekende backend of decoder toevoegen.
Het openen van de media-invoer en het decoderen van een frame zijn ook afzonderlijke resultaten. Een codecfout na een geslaagde download mag niet worden gerapporteerd als bewijs dat de proxy onbereikbaar was.