Το VideoCapture αναθέτει την εργασία δικτύου στο backend που έχει επιλέξει. Με μια έκδοση OpenCV που παρέχει FFmpeg, ένα URL βίντεο HTTP μπορεί να λάβει την επιλογή http_proxy του FFmpeg μέσω του περιβάλλοντος επιλογών σύλληψης:

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 αναλύει τη συμβολοσειρά επιλογών ως ζεύγη κλειδί;τιμή, με κάθετη γραμμή ανάμεσα σε πολλά ζεύγη. Το παράδειγμα ορίζει το περιβάλλον πριν από την εισαγωγή του OpenCV και ζητά ρητά CAP_FFMPEG.

Το FFmpeg τεκμηριώνει το http_proxy ως URL διαμεσολαβητή του πρωτοκόλλου HTTP· η λίστα διαμεσολαβητών HTTP προσφέρει υποψήφιους για δημόσια διαδρομή μέσων HTTP. Αυτό δεν ρυθμίζει άσχετο backend σύλληψης, τοπική κάμερα ή αυθαίρετη κίνηση RTSP/UDP.

Ελέγξτε το backend και τις δυνατότητες FFmpeg της πραγματικής έκδοσης OpenCV. Μια τιμή διαμεσολαβητή δεν μπορεί να προσθέσει backend ή αποκωδικοποιητή που λείπει.

Το άνοιγμα της εισόδου μέσων και η αποκωδικοποίηση καρέ είναι επίσης ξεχωριστά αποτελέσματα. Μια αποτυχία κωδικοποιητή μετά από επιτυχή λήψη δεν πρέπει να αναφέρεται ως απόδειξη ότι ο διαμεσολαβητής ήταν μη προσβάσιμος.

Σχετικά άρθρα