Configurações de proxy HTTP do OpenCV VideoCapture com o backend FFmpeg
Passe a opção de proxy HTTP do FFmpeg por OPENCV_FFMPEG_CAPTURE_OPTIONS quando o VideoCapture usar explicitamente esse backend.
O VideoCapture delega o trabalho de rede ao backend que selecionou. Com uma compilação do OpenCV que fornece FFmpeg, um URL de vídeo HTTP pode receber a opção http_proxy do FFmpeg através do ambiente de opções 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 do OpenCV interpreta a string de opções como pares chave;valor, com uma barra vertical entre vários pares. O exemplo define o ambiente antes de importar o OpenCV e pede CAP_FFMPEG explicitamente.
O FFmpeg documenta http_proxy como o URL de proxy do protocolo HTTP; a lista de proxies HTTP oferece candidatos para uma rota pública de mídia HTTP. Isso não configura um backend de captura alheio, uma câmera local nem tráfego RTSP/UDP arbitrário.
Verifique o backend e os recursos de FFmpeg da compilação real do OpenCV. Um valor de proxy não pode adicionar um backend ou decodificador ausente.
Abrir a entrada de mídia e decodificar um quadro também são resultados separados. Uma falha de codec após um download bem-sucedido não deve ser relatada como prova de que o proxy estava inacessível.