Setările de proxy HTTP ale OpenCV VideoCapture cu backendul FFmpeg
Transmite opțiunea de proxy HTTP a FFmpeg prin OPENCV_FFMPEG_CAPTURE_OPTIONS când VideoCapture folosește explicit acel backend.
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.