Mga setting ng HTTP proxy ng OpenCV VideoCapture kasama ang FFmpeg backend
Ipasa ang opsyong HTTP proxy ng FFmpeg sa pamamagitan ng OPENCV_FFMPEG_CAPTURE_OPTIONS kapag tahasang ginagamit ng VideoCapture ang backend na iyon.
Iniatang ng VideoCapture ang gawaing network sa backend na pinili nito. Sa OpenCV build na may FFmpeg, ang HTTP video URL ay makakatanggap ng opsyong http_proxy ng FFmpeg sa pamamagitan ng kapaligiran ng mga opsyong panghuli:
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()
Binibigyang-kahulugan ng FFmpeg backend ng OpenCV ang string ng opsyon bilang mga pares na key;value, na may patayong guhit sa pagitan ng maraming pares. Itinatakda ng halimbawa ang kapaligiran bago i-import ang OpenCV at tahasang humihiling ng CAP_FFMPEG.
Itinatala ng FFmpeg ang http_proxy bilang proxy URL ng protocol na HTTP; ang listahan ng HTTP proxy ay nagbibigay ng mga kandidato para sa pampublikong ruta ng media na HTTP. Hindi nito kino-configure ang walang kaugnayang backend ng paghuli, lokal na kamera o arbitraryong trapiko ng RTSP/UDP.
Suriin ang backend at mga kakayahan ng FFmpeg ng aktwal na OpenCV build. Hindi maaaring magdagdag ng nawawalang backend o decoder ang isang halaga ng proxy.
Ang pagbubukas ng input ng media at pag-decode ng frame ay magkahiwalay ding resulta. Ang pagkabigo ng codec pagkatapos ng matagumpay na pag-download ay hindi dapat iulat bilang patunay na hindi maabot ang proxy.