VideoCapture ਨੈੱਟਵਰਕਿੰਗ ਦਾ ਕੰਮ ਆਪਣੇ ਚੁਣੇ ਹੋਏ ਬੈਕਐਂਡ ਨੂੰ ਸੌਂਪਦਾ ਹੈ। FFmpeg ਵਾਲੇ OpenCV ਬਿਲਡ ਨਾਲ, ਇੱਕ HTTP ਵੀਡੀਓ URL ਕੈਪਚਰ-ਵਿਕਲਪ ਵਾਤਾਵਰਨ ਰਾਹੀਂ 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 ਬੈਕਐਂਡ ਵਿਕਲਪ ਸਟਰਿੰਗ ਨੂੰ key;value ਜੋੜਿਆਂ ਵਜੋਂ ਪਾਰਸ ਕਰਦਾ ਹੈ, ਅਤੇ ਕਈ ਜੋੜਿਆਂ ਵਿਚਕਾਰ ਇੱਕ ਖੜ੍ਹੀ ਪੱਟੀ ਹੁੰਦੀ ਹੈ। ਉਦਾਹਰਨ OpenCV ਆਯਾਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਵਾਤਾਵਰਨ ਸੈੱਟ ਕਰਦੀ ਹੈ ਅਤੇ CAP_FFMPEG ਦੀ ਸਪਸ਼ਟ ਬੇਨਤੀ ਕਰਦੀ ਹੈ।

FFmpeg http_proxy ਨੂੰ HTTP ਪ੍ਰੋਟੋਕੋਲ ਦਾ ਪ੍ਰੌਕਸੀ URL ਦੱਸਦਾ ਹੈ; HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਇੱਕ ਜਨਤਕ HTTP ਮੀਡੀਆ ਮਾਰਗ ਲਈ ਉਮੀਦਵਾਰ ਦਿੰਦੀ ਹੈ। ਇਹ ਕਿਸੇ ਅਸੰਬੰਧਿਤ ਕੈਪਚਰ ਬੈਕਐਂਡ, ਸਥਾਨਕ ਕੈਮਰੇ ਜਾਂ ਮਨਮਾਨੀ RTSP/UDP ਟ੍ਰੈਫਿਕ ਨੂੰ ਕਨਫਿਗਰ ਨਹੀਂ ਕਰਦਾ।

ਅਸਲ OpenCV ਬਿਲਡ ਦੇ ਬੈਕਐਂਡ ਅਤੇ FFmpeg ਸਮਰੱਥਾਵਾਂ ਦੀ ਜਾਂਚ ਕਰੋ। ਪ੍ਰੌਕਸੀ ਮੁੱਲ ਗੁੰਮ ਬੈਕਐਂਡ ਜਾਂ ਡੀਕੋਡਰ ਨਹੀਂ ਜੋੜ ਸਕਦਾ।

ਮੀਡੀਆ ਇਨਪੁਟ ਖੋਲ੍ਹਣਾ ਅਤੇ ਫਰੇਮ ਡੀਕੋਡ ਕਰਨਾ ਵੀ ਵੱਖਰੇ ਨਤੀਜੇ ਹਨ। ਸਫਲ ਡਾਊਨਲੋਡ ਤੋਂ ਬਾਅਦ ਕੋਡੈਕ ਫੇਲ੍ਹ ਹੋਣ ਨੂੰ ਪ੍ਰੌਕਸੀ ਤੱਕ ਨਾ ਪਹੁੰਚਣ ਦੇ ਸਬੂਤ ਵਜੋਂ ਨਹੀਂ ਦੱਸਣਾ ਚਾਹੀਦਾ।

ਸੰਬੰਧਿਤ ਲੇਖ