Ρυθμίσεις διαμεσολαβητή HTTP στο OpenCV VideoCapture με το backend FFmpeg
Περάστε την επιλογή διαμεσολαβητή HTTP του FFmpeg μέσω OPENCV_FFMPEG_CAPTURE_OPTIONS όταν το VideoCapture χρησιμοποιεί ρητά αυτό το backend.
Το 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 ή αποκωδικοποιητή που λείπει.
Το άνοιγμα της εισόδου μέσων και η αποκωδικοποίηση καρέ είναι επίσης ξεχωριστά αποτελέσματα. Μια αποτυχία κωδικοποιητή μετά από επιτυχή λήψη δεν πρέπει να αναφέρεται ως απόδειξη ότι ο διαμεσολαβητής ήταν μη προσβάσιμος.