Ali Ismael نشر 15 أكتوبر 2021 أرسل تقرير نشر 15 أكتوبر 2021 لدي فيديو وأريد معرفة عدد الإطارات فيه، ,ومعلومات أخرى مثل طول وعرض الإطار و معدل الإطارات كيف يمكننا القيام بذلك؟ 1 اقتباس
1 Ali Haidar Ahmad نشر 15 أكتوبر 2021 أرسل تقرير نشر 15 أكتوبر 2021 يمكنك الحصول على هذه المعلومات من خلال استخدام الدالة get مع خصائص محددة لكل معلومة تريدها كالتالي: import numpy as np import cv2 # نحدد مسار الفيديو cap = cv2.VideoCapture(r'C:\Users\Windows.10\Downloads\Video\videoplayback_6.mp4') length = cap.get(cv2.CAP_PROP_FRAME_COUNT) # عدد الإطارات في الفيديو width = cap.get(cv2.CAP_PROP_FRAME_WIDTH) # عرض الإطار height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT) # ارتفاعه fps = cap.get(cv2.CAP_PROP_FPS) # Frame rate. print("This video contains: ",length,"frames") print("Width: ", width ) print("Height: ", height ) print("Frame rate. : ", fps ) # والخرج سيكون كالتالي """ This video contains: 33392.0 frames Width: 640.0 Height: 360.0 Frame rate. : 30.0 """ اقتباس
1 Ahmed Sharshar نشر 15 أكتوبر 2021 أرسل تقرير نشر 15 أكتوبر 2021 يمكنك استخدام اما الطريقة اليدوية واما طريقة سريعة باستخدام opencv لايجاد عدد الاطارات داخل فيديو، الكود التالي يوضح الطريقيتين والفرق في السرعة بينهما: def frame_count(video_path, manual=False): def manual_count(handler): frames = 0 while True: status, frame = handler.read() if not status: break frames += 1 return frames cap = cv2.VideoCapture(video_path) # بطيئة لكنها دقيقة 100% if manual: frames = manual_count(cap) #سريعة لكن ليس بدقة الأولي else: try: frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) except: frames = manual_count(cap) cap.release() return frames اذا قمنا بتشغيل الكود وطباعة الوقت الذي تستغرقه كل طريقه منهما بجانب عدد الاطارات تكون كالتالي: #الطريقة الأولى frames: 3671 0.018054921 (s) #الطريقة الثانية frames: 3521 9.447095287 (s) لاحظ الاختلاف في الوقت المستغرق من كل منها وكذلك عدد الإطارات، الطريقة الأولى أبطأ لكنها دقيقة 100% أما الثانية فهي سريعة للغاية لكن بطيئة. اقتباس
السؤال
Ali Ismael
لدي فيديو وأريد معرفة عدد الإطارات فيه، ,ومعلومات أخرى مثل طول وعرض الإطار و معدل الإطارات كيف يمكننا القيام بذلك؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.