OpenCV VideoCapture HTTP-proxy-instellings met die FFmpeg-agterkant
Gee FFmpeg se HTTP-proxy-opsie deur OPENCV_FFMPEG_CAPTURE_OPTIONS wanneer VideoCapture daardie agterkant uitdruklik gebruik.
VideoCapture delegeer netwerkwerk aan die agterkant wat dit gekies het. Met 'n OpenCV-bou wat FFmpeg verskaf, kan 'n HTTP-video-URL FFmpeg se http_proxy-opsie deur die opname-opsies-omgewing ontvang:
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()
OpenCV se FFmpeg-agterkant ontleed die opsiestring as sleutel;waarde-pare, met 'n vertikale streep tussen veelvuldige pare. Die voorbeeld stel die omgewing voordat OpenCV ingevoer word en vra CAP_FFMPEG uitdruklik aan.
FFmpeg dokumenteer http_proxy as die HTTP-protokol se proxy-URL; die HTTP-proxy-lys bied kandidate vir 'n openbare HTTP-media-roete. Dit konfigureer nie 'n onverwante opname-agterkant, 'n plaaslike kamera of willekeurige RTSP/UDP-verkeer nie.
Kontroleer die agterkant en FFmpeg-vermoens van die werklike OpenCV-bou. 'n Proxy-waarde kan nie 'n ontbrekende agterkant of dekodeerder byvoeg nie.
Om die media-invoer oop te maak en 'n raam te dekodeer is ook aparte resultate. 'n Kodek-fout na 'n suksesvolle aflaai moet nie as bewys gerapporteer word dat die proxy onbereikbaar was nie.