VideoCapture mendelegasikan pekerjaan jaringan ke backend yang dipilihnya. Dengan build OpenCV yang menyediakan FFmpeg, URL video HTTP dapat menerima opsi http_proxy FFmpeg melalui lingkungan opsi pengambilan:

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()

Backend FFmpeg OpenCV mengurai string opsi sebagai pasangan kunci;nilai, dengan garis vertikal di antara beberapa pasangan. Contoh menetapkan lingkungan sebelum mengimpor OpenCV dan meminta CAP_FFMPEG secara eksplisit.

FFmpeg mendokumentasikan http_proxy sebagai URL proksi protokol HTTP; daftar proksi HTTP menyediakan kandidat untuk rute media HTTP publik. Itu tidak mengonfigurasi backend pengambilan yang tidak terkait, kamera lokal, atau lalu lintas RTSP/UDP sembarangan.

Periksa backend dan kemampuan FFmpeg dari build OpenCV yang sebenarnya. Nilai proksi tidak dapat menambahkan backend atau dekoder yang tidak ada.

Membuka input media dan mendekode frame juga merupakan hasil yang terpisah. Kegagalan codec setelah unduhan berhasil tidak boleh dilaporkan sebagai bukti bahwa proksi tidak dapat dijangkau.

Artikel terkait