Axustes do proxy HTTP de OpenCV VideoCapture co backend FFmpeg
Pasa a opción de proxy HTTP de FFmpeg mediante OPENCV_FFMPEG_CAPTURE_OPTIONS cando VideoCapture use explicitamente ese backend.
VideoCapture delega o traballo de rede no backend que seleccionou. Cunha compilación de OpenCV que inclúe FFmpeg, un URL de vídeo HTTP pode recibir a opción http_proxy de FFmpeg a través da contorna de opcións de captura:
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()
O backend FFmpeg de OpenCV analiza a cadea de opcións como pares clave;valor, cunha barra vertical entre varios pares. O exemplo establece a contorna antes de importar OpenCV e solicita explicitamente CAP_FFMPEG.
FFmpeg documenta http_proxy como o URL de proxy do protocolo HTTP; a lista de proxies HTTP ofrece candidatos para unha ruta pública de medios HTTP. Iso non configura un backend de captura alleo, unha cámara local nin tráfico RTSP/UDP arbitrario.
Comproba o backend e as capacidades de FFmpeg da compilación real de OpenCV. Un valor de proxy non pode engadir un backend nin un decodificador que falten.
Abrir a entrada de medios e descodificar un fotograma tamén son resultados distintos. Un fallo de códec tras unha descarga correcta non debería presentarse como proba de que o proxy era inalcanzable.