HTTP-proxyinställningar för OpenCV VideoCapture med FFmpeg-backenden
Skicka FFmpegs HTTP-proxyalternativ via OPENCV_FFMPEG_CAPTURE_OPTIONS när VideoCapture uttryckligen använder den backenden.
VideoCapture delegerar nätverksarbetet till den backend det har valt. Med ett OpenCV-bygge som tillhandahåller FFmpeg kan en HTTP-video-URL ta emot FFmpegs http_proxy-alternativ via miljön för inspelningsalternativ:
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()
OpenCV:s FFmpeg-backend tolkar alternativsträngen som nyckel;värde-par, med ett lodrätt streck mellan flera par. Exemplet ställer in miljön innan OpenCV importeras och begär uttryckligen CAP_FFMPEG.
FFmpeg dokumenterar http_proxy som HTTP-protokollets proxy-URL; listan över HTTP-proxyer ger kandidater för en offentlig HTTP-medierutt. Det konfigurerar inte en orelaterad inspelningsbackend, en lokal kamera eller godtycklig RTSP/UDP-trafik.
Kontrollera backenden och FFmpeg-funktionerna i det faktiska OpenCV-bygget. Ett proxyvärde kan inte lägga till en saknad backend eller avkodare.
Att öppna medieingången och avkoda en bildruta är också två separata resultat. Ett codec-fel efter en lyckad nedladdning bör inte rapporteras som bevis på att proxyn var oåtkomlig.