ການຕັ້ງຄ່າ HTTP proxy ຂອງ OpenCV VideoCapture ກັບ backend FFmpeg
ສົ່ງຕົວເລືອກ HTTP proxy ຂອງ FFmpeg ຜ່ານ OPENCV_FFMPEG_CAPTURE_OPTIONS ເມື່ອ VideoCapture ໃຊ້ backend ນັ້ນຢ່າງຊັດເຈນ.
VideoCapture ມອບວຽກເຄືອຂ່າຍໃຫ້ backend ທີ່ມັນເລືອກ. ກັບ OpenCV build ທີ່ມີ 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 ວິເຄາະສາຍຕົວເລືອກເປັນຄູ່ key;value, ໂດຍມີເສັ້ນຕັ້ງລະຫວ່າງຫຼາຍຄູ່. ຕົວຢ່າງຕັ້ງສະພາບແວດລ້ອມກ່ອນນຳເຂົ້າ OpenCV ແລະ ຮ້ອງຂໍ CAP_FFMPEG ຢ່າງຊັດເຈນ.
FFmpeg ບັນທຶກ http_proxy ເປັນ URL proxy ຂອງໂປຣໂຕຄອນ HTTP; ລາຍຊື່ HTTP proxy ໃຫ້ຜູ້ສະໝັກສຳລັບເສັ້ນທາງສື່ HTTP ສາທາລະນະ. ສິ່ງນີ້ບໍ່ໄດ້ຕັ້ງຄ່າ backend ການຈັບພາບທີ່ບໍ່ກ່ຽວຂ້ອງ, ກ້ອງຖ່າຍຮູບທ້ອງຖິ່ນ ຫຼື ການຈະລາຈອນ RTSP/UDP ຕາມອຳເພີໃຈ.
ກວດສອບ backend ແລະ ຄວາມສາມາດຂອງ FFmpeg ໃນ OpenCV build ຕົວຈິງ. ຄ່າ proxy ບໍ່ສາມາດເພີ່ມ backend ຫຼື ຕົວຖອດລະຫັດທີ່ຂາດຫາຍໄປໄດ້.
ການເປີດອິນພຸດສື່ ແລະ ການຖອດລະຫັດເຟຣມກໍເປັນຜົນທີ່ແຍກກັນ. ການລົ້ມເຫຼວຂອງ codec ຫຼັງການດາວໂຫຼດສຳເລັດບໍ່ຄວນຖືກລາຍງານເປັນຫຼັກຖານວ່າເຂົ້າເຖິງ proxy ບໍ່ໄດ້.