تنظیمات پروکسی HTTP در OpenCV VideoCapture با بکاند FFmpeg
گزینه پروکسی HTTP مربوط به FFmpeg را هنگام استفاده صریح VideoCapture از آن بکاند، از طریق OPENCV_FFMPEG_CAPTURE_OPTIONS منتقل کنید.
VideoCapture کار شبکه را به بکاند انتخابشده واگذار میکند. در یک بیلد OpenCV که FFmpeg دارد، یک نشانی ویدئوی 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()
بکاند FFmpeg در OpenCV رشته گزینهها را بهصورت جفتهای کلید;مقدار تجزیه میکند و میان چند جفت یک خط عمودی قرار میگیرد. نمونه، محیط را پیش از import کردن OpenCV تنظیم میکند و صریحاً CAP_FFMPEG را درخواست میکند.
FFmpeg گزینه http_proxy را بهعنوان نشانی پروکسی پروتکل HTTP مستند میکند؛ فهرست پروکسی HTTP نامزدهایی برای یک مسیر عمومی رسانه HTTP فراهم میکند. این کار بکاند ضبط نامرتبط، دوربین محلی یا ترافیک دلخواه RTSP/UDP را پیکربندی نمیکند.
بکاند و توانمندیهای FFmpeg در بیلد واقعی OpenCV را بررسی کنید. مقدار پروکسی نمیتواند بکاند یا رمزگشای غایب را اضافه کند.
باز کردن ورودی رسانه و رمزگشایی یک فریم نیز دو نتیجه جداگانه است. خطای کدک پس از یک دانلود موفق را نباید بهعنوان مدرک دسترسناپذیری پروکسی گزارش کرد.