Configuración del proxy HTTP de OpenCV VideoCapture con el backend FFmpeg
Pasa la opción de proxy HTTP de FFmpeg mediante OPENCV_FFMPEG_CAPTURE_OPTIONS cuando VideoCapture use explícitamente ese backend.
VideoCapture delega el trabajo de red en el backend que ha seleccionado. Con una compilación de OpenCV que incluya FFmpeg, una URL de vídeo HTTP puede recibir la opción http_proxy de FFmpeg a través del entorno de opciones 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()
El backend FFmpeg de OpenCV analiza la cadena de opciones como pares clave;valor, con una barra vertical entre varios pares. El ejemplo establece el entorno antes de importar OpenCV y solicita explícitamente CAP_FFMPEG.
FFmpeg documenta http_proxy como la URL de proxy del protocolo HTTP; la lista de proxies HTTP ofrece candidatos para una ruta pública de medios HTTP. Eso no configura un backend de captura ajeno, una cámara local ni tráfico RTSP/UDP arbitrario.
Comprueba el backend y las capacidades de FFmpeg de la compilación real de OpenCV. Un valor de proxy no puede añadir un backend ni un decodificador que falten.
Abrir la entrada de medios y decodificar un fotograma también son resultados distintos. Un fallo de códec después de una descarga correcta no debería presentarse como prueba de que el proxy era inalcanzable.