VideoCapture deleagă munca de rețea backendului pe care l-a ales. Cu o compilare OpenCV care oferă FFmpeg, un URL video HTTP poate primi opțiunea http_proxy a FFmpeg prin mediul opțiunilor de captură:

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

Backendul FFmpeg din OpenCV analizează șirul de opțiuni ca perechi cheie;valoare, cu o bară verticală între mai multe perechi. Exemplul setează mediul înainte de importul OpenCV și solicită explicit CAP_FFMPEG.

FFmpeg documentează http_proxy ca URL de proxy al protocolului HTTP; lista de proxy HTTP oferă candidați pentru o rută publică de media HTTP. Aceasta nu configurează un backend de captură nelegat, o cameră locală sau trafic RTSP/UDP arbitrar.

Verificați backendul și capacitățile FFmpeg ale compilării OpenCV reale. O valoare de proxy nu poate adăuga un backend sau un decodor lipsă.

Deschiderea intrării media și decodarea unui cadru sunt, de asemenea, rezultate separate. O eroare de codec după o descărcare reușită nu trebuie raportată ca dovadă că proxyul era inaccesibil.

Articole similare