VideoCapture perduoda tinklo darbą pasirinktam pagrindui. Jei OpenCV versija turi FFmpeg, HTTP vaizdo URL gali gauti FFmpeg parinktį http_proxy per fiksavimo parinkčių aplinką:

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 FFmpeg pagrindas analizuoja parinkčių eilutę kaip poras raktas;reikšmė, o tarp kelių porų yra vertikali juosta. Pavyzdys nustato aplinką prieš importuojant OpenCV ir aiškiai prašo CAP_FFMPEG.

FFmpeg dokumentuoja http_proxy kaip HTTP protokolo tarpinio serverio URL; HTTP tarpinių serverių sąrašas siūlo kandidatus viešam HTTP medijos maršrutui. Tai nesukonfigūruoja nesusijusio fiksavimo pagrindo, vietinės kameros ar savavališko RTSP/UDP srauto.

Patikrinkite tikrosios OpenCV versijos pagrindą ir FFmpeg galimybes. Tarpinio serverio reikšmė negali pridėti trūkstamo pagrindo ar dekoderio.

Medijos įvesties atidarymas ir kadro dekodavimas taip pat yra atskiri rezultatai. Kodeko gedimas po sėkmingo atsisiuntimo neturėtų būti pateikiamas kaip įrodymas, kad tarpinis serveris buvo nepasiekiamas.

Susiję straipsniai