VideoCapture သည် ကွန်ရက်အလုပ်ကို ၎င်းရွေးချယ်ထားသော backend ထံ အပ်နှင်းသည်။ FFmpeg ပါဝင်သော OpenCV build ဖြင့် HTTP ဗီဒီယို URL သည် capture options ပတ်ဝန်းကျင်မှတစ်ဆင့် FFmpeg ၏ http_proxy ရွေးချယ်မှုကို ရရှိနိုင်သည်:

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 backend သည် ရွေးချယ်မှုစာကြောင်းကို key;value အတွဲများအဖြစ် ခွဲခြမ်းစိတ်ဖြာပြီး အတွဲများစွာအကြားတွင် ဒေါင်လိုက်မျဉ်းတစ်ခု ရှိသည်။ ဥပမာသည် OpenCV ကို import မလုပ်မီ ပတ်ဝန်းကျင်ကို သတ်မှတ်ပြီး CAP_FFMPEG ကို ရှင်းလင်းစွာ တောင်းဆိုသည်။

FFmpeg သည် http_proxy ကို HTTP ပရိုတိုကော၏ proxy URL အဖြစ် မှတ်တမ်းတင်သည်။ HTTP proxy စာရင်း သည် အများသုံး HTTP မီဒီယာလမ်းကြောင်းအတွက် ကိုယ်စားလှယ်လောင်းများ ပေးသည်။ ယင်းသည် မသက်ဆိုင်သော capture backend၊ ဒေသတွင်း ကင်မရာ သို့မဟုတ် မထိန်းချုပ်နိုင်သော RTSP/UDP အသွားအလာကို မသတ်မှတ်ပါ။

အမှန်တကယ် OpenCV build ၏ backend နှင့် FFmpeg စွမ်းရည်များကို စစ်ဆေးပါ။ proxy တန်ဖိုးသည် မရှိသော backend သို့မဟုတ် ဒီကုဒ်ဒါကို ထည့်၍ မရနိုင်ပါ။

မီဒီယာ input ဖွင့်ခြင်းနှင့် frame ဒီကုဒ်လုပ်ခြင်းတို့သည် သီးခြားရလဒ်များ ဖြစ်သည်။ ဒေါင်းလုဒ် အောင်မြင်ပြီးနောက် codec မအောင်မြင်မှုကို proxy သို့ မရောက်နိုင်ခဲ့ဟု သက်သေအဖြစ် အစီရင်ခံရန် မသင့်ပါ။

ဆက်စပ်ဆောင်းပါးများ