Transformers documentation

معالج الفيديو

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

معالج الفيديو

يُعدّ معالج الفيديو أداة مسؤولة عن تجهيز ميزات الإدخال لنماذج الفيديو، فضلاً عن معالجة مخرجاتها بعد المعالجة. يوفر تحويلات مثل تغيير الحجم، والتطبيع، والتحويل إلى PyTorch. وإلى جانب التحويلات، تتولى فئة VideoProcessor فك ترميز الفيديو من المسارات المحلية أو عناوين URL (يتطلب torchcodec) وعيّنة الإطارات وفقاً لاستراتيجيات محددة لكل نموذج.

يمدّد معالج الفيديو وظائف معالجات الصور من خلال تمكين نماذج اللغة البصرية الكبيرة (VLMs) من التعامل مع مقاطع الفيديو باستخدام مجموعة مميزة من الحجج مقارنةً بالصور. ويعمل هذا المعالج كجسر بين بيانات الفيديو الخام والنموذج، مما يضمن تحسين ميزات الإدخال لتناسب نموذج VLM.

تُحفظ إعدادات معالج الفيديو في video_preprocessor_config.json. قد تُخزَّن هذه الإعدادات في نقاط التفتيش الأقدم داخل preprocessor_config.json. راجع الحفظ وإعادة التحميل لمعرفة كيفية تسجيل الخلفية المخصصة عند إعادة التحميل.

مثال على الاستخدام

فيما يلي مثال على كيفية تحميل معالج فيديو مع نموذج llava-hf/llava-onevision-qwen2-0.5b-ov-hf:

from transformers import AutoVideoProcessor

processor = AutoVideoProcessor.from_pretrained("llava-hf/llava-onevision-qwen2-0.5b-ov-hf")

تُنفَّذ المعالجة المسبقة على جهاز المصفوفة المدخلة، أو على وحدة المعالجة المركزية (CPU) للمدخلات الأخرى. اضبط device لنقل مقاطع الفيديو إلى جهاز آخر قبل المعالجة المسبقة؛ وهذا لا يغيّر الواجهة الخلفية (backend). كما يمكنك تجميع (compile) معالجة torchvision المسبقة باستخدام torch.compile عند استخدام مُسرِّع (accelerator).

import torch
from transformers.video_utils import load_video
from transformers import AutoVideoProcessor

device = torch.accelerator.current_accelerator().type if torch.accelerator.is_available() else "cpu"

video = load_video("video.mp4")
processor = AutoVideoProcessor.from_pretrained("llava-hf/llava-onevision-qwen2-0.5b-ov-hf", device=device)
processor = torch.compile(processor)
processed_video = processor(video, return_tensors="pt")

واجهات المعالج الخلفي للفيديو

تستخدم معالجات الفيديو المدمجة torchvision لتغيير حجم الدُفعات، وإعادة التحجيم، والتطبيع. ثبّت PyTorch وtorchvision لاستخدامها. على عكس معالجات الصور، لا توفر معالجات الفيديو المدمجة واجهة خلفية PIL.

يختار AutoVideoProcessor واجهة torchvision افتراضياً. يمكنك أيضاً طلبها صراحةً وفحص خاصية backend للمعالج المحمّل.

from transformers import AutoVideoProcessor

model_id = "llava-hf/llava-onevision-qwen2-0.5b-ov-hf"
video_processor = AutoVideoProcessor.from_pretrained(model_id, backend="torchvision")
print(video_processor.backend)
# torchvision

يحدد الحُجّة backend تطبيق المعالجة المسبقة، وليس مُفكِّك الفيديو. راجع سلوك العيّنة للتعرف على فك الترميز وعيّنة الإطارات.

واجهات خلفية مخصصة

يوفر BaseVideoProcessor معالجة مسبقة مبنية على torchvision. أما للحصول على تنفيذ غير مبنٍ على torchvision، فيمكنك إنشاء فئة فرعية من VideoProcessorMixin وإعادة تعريف preprocess لتُرجع BatchFeature تحتوي على المدخلات المتوقعة من النموذج.

سجّل الفئات المخصصة باستخدام AutoVideoProcessor.register()، واستخدم video_processor_classes لربط أسماء الخوادم الخلفية بالفئات. يفترض المثال أدناه أن NewCustomVideoProcessor معرّفة مع المعالجة المسبقة المطلوبة لنقطة التفتيش LLaVA-OneVision.

from transformers import LlavaOnevisionConfig

AutoVideoProcessor.register(
    LlavaOnevisionConfig,
    video_processor_classes={"custom": NewCustomVideoProcessor},
    exist_ok=True,
)
custom_processor = AutoVideoProcessor.from_pretrained(model_id, backend="custom")

استخدم exist_ok=True لأن LlavaOnevisionConfig مسجّل بالفعل. يتم دمج الإدخالات المُقدَّمة في خريطة الخلفية الخاصة به حيث تُستبدل الأسماء المطابقة، وتُحفظ الإدخالات غير المُقدَّمة، مثل torchvision.

الحفظ وإعادة التحميل

يحفظ save_pretrained() إعدادات المعالجة المسبقة، وليس خرائط الخلفية المضافة عبر AutoVideoProcessor.register(). في نفس عملية بايثون، أعد تحميل المعالج المحفوظ باستخدام backend="custom":

custom_processor.save_pretrained("./saved-video-processor")
custom_processor = AutoVideoProcessor.from_pretrained("./saved-video-processor", backend="custom")

تُطبَّق التسجيلات المخصصة على عملية بايثون الحالية. في عملية جديدة، عرِّف الفئة المخصصة أو استوردها وسجِّلها مرة أخرى قبل التحميل.

سلوك العينة

يمكن لمعالج الفيديو أيضًا أخذ عينات من إطارات الفيديو باستخدام التقنية الأنسب للنموذج المعطى. يتم التحكم في سلوك أخذ العينات عبر الحجة do_sample_frames ويمكن ضبطه من خلال معاملات خاصة بالنموذج مثل num_frames أو fps (المعدل الذي سيتم به أخذ عينات من الفيديو). إذا كان الفيديو المُدخل مُعطىً كمسار محلي أو رابط (str)، فسيقوم المعالج بفك ترميزه تلقائيًا. للحصول على بيانات وصفية عن الفيديو المُفكك الترميز، مثل فهارس الإطارات المُختارة، والأبعاد الأصلية، والمدة، ومعدل الإطارات في الثانية، مرّر return_metadata=True إلى المعالج.

  • لا يضمن تحديد num_frames أن يحتوي المخرَج على ذلك العدد بالضبط من الإطارات. فاعتماداً على النموذج، قد يفرض المُعيّن حدوداً دنيا أو قصوى لعدد الإطارات.

  • المفكك الافتراضي هو torchcodec، ويجب تثبيته.

import torch
from transformers import AutoVideoProcessor

device = torch.accelerator.current_accelerator().type if torch.accelerator.is_available() else "cpu"

processor = AutoVideoProcessor.from_pretrained("llava-hf/llava-onevision-qwen2-0.5b-ov-hf", device=device)
processed_video_inputs = processor(videos=["video_path.mp4"], return_metadata=True, do_sample_frames=True, return_tensors="pt")
video_metadata = processed_video_inputs["video_metadata"]

# See how many frames the original video had and what was the original FPS
print(video_metadata.total_num_frames, video_metadata.fps)

إذا مررت مصفوفة فيديو مفكوكة الترميز مسبقًا لكنك ما زلت ترغب في تفعيل أخذ عينات الإطارات المحدد للنموذج، فيُنصح بشدة بتوفير video_metadata. يتيح ذلك لأداة أخذ العينات معرفة مدة الفيديو الأصلية ومعدل الإطارات في الثانية (FPS). يمكنك تمرير البيانات الوصفية ككائن VideoMetadata أو كمعجم (dict) عادي.

import torch
from transformers import AutoVideoProcessor
from transformers.video_utils import VideoMetadata

device = torch.accelerator.current_accelerator().type if torch.accelerator.is_available() else "cpu"

processor = AutoVideoProcessor.from_pretrained("llava-hf/llava-onevision-qwen2-0.5b-ov-hf", device=device)
decoded_video = torch.randint(0, 255, size=(100, 3, 1280, 1280)) # short video of 100 frames
video_metadata = VideoMetadata(
    total_num_frames=100,
    fps=24,
    duration=4.1, # in seconds
)
processed_video_inputs = processor(videos=[decoded_video], video_metadata=video_metadata, do_sample_frames=True, num_frames=10, return_tensors="pt")
print(processed_video_inputs.pixel_values_videos.shape)
[10, 3, 384, 384]

VideoProcessorMixin

فئة transformers.VideoProcessorMixin

< >

( **kwargs: *<class 'transformers.processing_utils.VideosKwargs'> )

fetch_videos

< >

( video_url_or_urls: str | list[str] | list[list[str]]sample_indices_fn = None )

تحويل عنوان URL واحد أو قائمة من عناوين URL إلى كائنات np.array المقابلة.

إذا تم تمرير عنوان URL واحد، فسيكون القيمة المُعادَة كائنًا واحدًا. أما إذا تم تمرير قائمة، فسيتم إرجاع قائمة من الكائنات.

from_dict

< >

( video_processor_dict: dict**kwargs ) → ~video_processing_utils.VideoProcessorBase

المعاملات

  • video_processor_dict (dict[str, Any]) — قاموس سيُستخدم لإنشاء كائن معالج الفيديو. يمكن استرجاع مثل هذا القاموس من نقطة تفتيش مُدرَّبة مسبقاً بالاستفادة من طريقة ~video_processing_utils.VideoProcessorBase.to_dict.
  • kwargs (dict[str, Any]) — معاملات إضافية تُستخدم لتهيئة كائن معالج الفيديو.

يعيد

~video_processing_utils.VideoProcessorBase

كائن معالج الفيديو المُثبَّت من تلك المعاملات.

يُحدِث نوعاً من ~video_processing_utils.VideoProcessorBase من قاموس Python للمعاملات.

from_json_file

< >

( json_file: str | os.PathLike ) → A video processor of type ~video_processing_utils.VideoProcessorBase

المعاملات

  • json_file (str أو os.PathLike) — المسار إلى ملف JSON الذي يحتوي على المعلمات.

يعيد

معالج فيديو من النوع ~video_processing_utils.VideoProcessorBase

كائن video_processor المُثبَّت من ملف JSON ذلك.

يُشغّل معالج فيديو من النوع ~video_processing_utils.VideoProcessorBase من المسار إلى ملف JSON يحتوي على المعلمات.

from_pretrained

< >

( pretrained_model_name_or_path: str | os.PathLikecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'**kwargs )

المعاملات

  • pretrained_model_name_or_path (str أو os.PathLike) — يمكن أن يكون هذا:
    • نص، وهو معرّف النموذج لفيديو مُدرَّب مسبقًا مستضاف داخل مستودع نموذج على huggingface.co.
    • مسار إلى مجلد يحتوي على ملف معالج فيديو تم حفظه باستخدام الطريقة ~video_processing_utils.VideoProcessorBase.save_pretrained، على سبيل المثال ./my_model_directory/.
    • مسار إلى ملف JSON لمعالج فيديو محفوظ، على سبيل المثال: ./my_model_directory/video_preprocessor_config.json.
  • cache_dir (str أو os.PathLike، اختياري) — مسار إلى مجلد يُخزَّن فيه مُعالج الفيديو المُسبق التدريب الذي تم تنزيله، في حال عدم استخدام المجلد المؤقت القياسي.
  • force_download (bool, اختياري، القيمة الافتراضية False) — ما إذا كان يجب إجبار إعادة تنزيل ملفات معالج الفيديو وتجاوز النسخ المخزنة مؤقتًا في حال وجودها.
  • proxies (dict[str, str], اختياري) — قاموس لخوادم الوكيل (proxy) للاستخدام حسب البروتوكول أو نقطة النهاية، على سبيل المثال {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. تُستخدم هذه الوكلاء في كل طلب.
  • token (str أو bool، اختياري) — الرمز الذي يُستخدم كتفويض حامل HTTP للملفات البعيدة. إذا كان True، أو لم يُحدد، فسيتم استخدام الرمز الذي تم إنشاؤه عند تشغيل hf auth login (المخزَّن في ~/.huggingface).
  • revision (str، اختياري، القيمة الافتراضية "main") — الإصدار المحدد من النموذج الذي سيتم استخدامه. يمكن أن يكون اسم فرع، أو اسم وسم، أو معرف commit، نظرًا لاستخدامنا نظامًا قائمًا على git لتخزين النماذج والمخرجات الأخرى على huggingface.co، لذا يمكن أن يكون revision أي معرّف يسمح به git.

أنشئ كائنًا من نوع ~video_processing_utils.VideoProcessorBase من معالج فيديو.

أمثلة:

# We can't instantiate directly the base class *VideoProcessorBase* so let's show the examples on a
# derived class: *LlavaOnevisionVideoProcessor*
video_processor = LlavaOnevisionVideoProcessor.from_pretrained(
    "llava-hf/llava-onevision-qwen2-0.5b-ov-hf"
)  # Download video_processing_config from huggingface.co and cache.
video_processor = LlavaOnevisionVideoProcessor.from_pretrained(
    "./test/saved_model/"
)  # E.g. video processor (or model) was saved using *save_pretrained('./test/saved_model/')*
video_processor = LlavaOnevisionVideoProcessor.from_pretrained("./test/saved_model/video_preprocessor_config.json")
video_processor = LlavaOnevisionVideoProcessor.from_pretrained(
    "llava-hf/llava-onevision-qwen2-0.5b-ov-hf", do_normalize=False, foo=False
)
assert video_processor.do_normalize is False
video_processor, unused_kwargs = LlavaOnevisionVideoProcessor.from_pretrained(
    "llava-hf/llava-onevision-qwen2-0.5b-ov-hf", do_normalize=False, foo=False, return_unused_kwargs=True
)
assert video_processor.do_normalize is False
assert unused_kwargs == {"foo": False}

get_video_processor_dict

< >

( pretrained_model_name_or_path: str | os.PathLike**kwargs ) → tuple[Dict, Dict]

المعاملات

  • pretrained_model_name_or_path (str أو os.PathLike) — المعرّف لنقطة التفتيش المُدرَّبة مسبقًا التي نرغب في الحصول على قاموس المعلمات منها.
  • subfolder (str، اختياري، الافتراضي "") — في حال كانت الملفات ذات الصلة موجودة داخل مجلد فرعي من مستودع النموذج على huggingface.co، يمكنك تحديد اسم المجلد هنا.

يعيد

tuple[Dict, Dict]

المعجم(ات) الذي سيتم استخدامه لإنشاء كائن معالج الفيديو.

من pretrained_model_name_or_path، يتم تحديد قاموسٍ للمعاملات، ليُستخدم في إنشاء معالج فيديو من النوع ~video_processing_utils.VideoProcessorBase باستخدام from_dict.

preprocess

< >

( videos: typing.Union[list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]]]**kwargs: *<class 'transformers.processing_utils.VideosKwargs'> ) → ~image_processing_base.BatchFeature

المعاملات

  • videos (Union[list[PIL.Image.Image], numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor], list[list[PIL.Image.Image]], list[list[numpy.ndarray]], list[list[torch.Tensor]], ~video_utils.URL, list[~video_utils.URL], list[list[~video_utils.URL]], ~video_utils.Path, list[~video_utils.Path], list[list[~video_utils.Path]]]) — فيديو يُعالج مسبقاً. يتوقع فيديو واحداً أو دفعة من الفيديوهات بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر فيديوهات بقيم بكسل بين 0 و1، فاضبط do_rescale=False.
  • do_convert_rgb (bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB.
  • do_resize (bool، kwargs، اختياري) — ما إذا كان يجب تغيير حجم الصورة.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — يصف الأبعاد القصوى للمدخلات إلى النموذج.
  • default_to_square (bool، kwargs، اختياري) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت القيمة عددًا صحيحًا.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعداد PILImageResampling. لا يكون له أي تأثير إلا إذا تم تعيين do_resize إلى True.
  • do_rescale (bool، kwargs، اختياري) — ما إذا كان يجب إعادة تحجيم الصورة.
  • rescale_factor (float، kwargs، اختياري) — معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كان do_rescale مضبوطاً على True.
  • do_normalize (bool، kwargs، اختياري) — ما إذا كان سيتم تطبيع الصورة.
  • image_mean (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين do_normalize إلى True.
  • image_std (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — انحراف المعيار للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين do_normalize إلى True.
  • do_center_crop (bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف.
  • do_pad (bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيق center_crop.
  • data_format (Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعم ChannelDimension.FIRST فقط. أُضيف من أجل التوافق مع المعالجات البطيئة.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:
    • "channels_first" أو ChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width).
    • "channels_last" أو ChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات).
    • "none" أو ChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة.
  • do_sample_frames (bool، kwargs، اختياري) — ما إذا كان يجب أخذ عينات من الإطارات من الفيديو قبل المعالجة، أم معالجة الفيديو بالكامل.
  • video_metadata (Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None], kwargs) — بيانات وصفية للفيديو تتضمن معلومات عن المدة الإجمالية، ومعدل الإطارات في الثانية (fps)، والإجمالي عدد الإطارات. ستُستخدم هذه البيانات لعينة الإطارات من الفيديو أو لحساب الطوابع الزمنية. لا تقم بتمرير أي بيانات وصفية إلا إذا كنت تحاول فك ترميز الفيديو يدوياً قبل المعالجة.
  • fps (Annotated[int | float | None, None], kwargs) — عدد الإطارات المستهدفة التي يجب أخذها كل ثانية عند تعيين do_sample_frames=True.
  • num_frames (Annotated[int | None, None]، kwargs) — الحد الأقصى لعدد الإطارات التي يجب أخذها عينة عند تعيين do_sample_frames=True.
  • return_metadata (bool، kwargs، اختياري) — ما إذا كان يجب إرجاع بيانات وصفية للفيديو أم لا. بيانات الوصفية للفيديو هي كائن يحتوي على معلومات حول مدة الفيديو، ومعدل الإطارات في الثانية (fps)، وخلفية فك الترميز، وما إلى ذلك.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على 'pt'، وإلا تُرجع قائمة من التينسورات.

يعيد

~image_processing_base.BatchFeature

  • data (dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’).
  • tensor_type (Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.

register_for_auto_class

< >

( auto_class = 'AutoVideoProcessor' )

المعاملات

  • auto_class (str أو type، اختياري، القيمة الافتراضية "AutoVideoProcessor ") — فئة auto التي سيتم تسجيل هذا المعالج الجديد للفيديو بها.

سجّل هذه الفئة مع فئة تلقائية محددة. يجب استخدام هذا فقط لمعالجات الفيديو المخصصة، لأن المعالجات الموجودة في المكتبة مُربط مسبقًا مع AutoVideoProcessor.

هذا الواجهة البرمجية تجريبية وقد تتضمن بعض التغييرات الطفيفة التي قد تكسر التوافق في الإصدارات القادمة.

save_pretrained

< >

( save_directory: str | os.PathLikepush_to_hub: bool = False**kwargs )

المعاملات

  • save_directory (str أو os.PathLike) — المجلد الذي سيُحفظ فيه ملف JSON الخاص بمعالج الفيديو (سيتم إنشاؤه إذا لم يكن موجودًا).
  • push_to_hub (bool، اختياري، الافتراضي False) — ما إذا كان سيتم دفع نموذجك إلى مركز نماذج Hugging Face بعد حفظه. يمكنك تحديد المستودع الذي تريد الدفع إليه باستخدام repo_id (سيكون الافتراضي هو اسم save_directory في نطاقك).
  • kwargs (dict[str, Any]، اختياري) — حجج إضافية بأسماء تُمرَّر إلى طريقة push_to_hub().

احفظ كائن معالج الفيديو في المجلد save_directory، بحيث يمكن إعادة تحميله باستخدام طريقة الفئة ~video_processing_utils.VideoProcessorBase.from_pretrained.

to_dict

< >

( ) → dict[str, Any]

يعيد

dict[str, Any]

قاموس بجميع السمات التي تُشكّل هذا المعالج الفيديوي.

يسلسل هذه النسخة إلى قاموس بايثون.

BaseVideoProcessor

فئة transformers.BaseVideoProcessor

< >

( **kwargs: *<class 'transformers.processing_utils.VideosKwargs'> )

convert_to_rgb

< >

( video: torch.Tensor ) → torch.Tensor

المعاملات

  • video ("torch.Tensor") — الفيديو المراد تحويله.

يعيد

torch.Tensor

الفيديو المحوّل.

يحوّل الفيديو إلى تنسيق RGB.

sample_frames

< >

( metadata: VideoMetadatanum_frames: int | None = Nonefps: int | float | None = None**kwargs ) → np.ndarray

المعاملات

  • metadata (VideoMetadata) — بيانات وصفية للفيديو تتضمن معلومات عن المدة الإجمالية، ومعدل الإطارات في الثانية، وعدد الإطارات الإجمالي.
  • num_frames (int, اختياري) — الحد الأقصى لعدد الإطارات التي يجب أخذ عينات منها. القيمة الافتراضية هي self.num_frames.
  • fps (int أو float، اختياري) — عدد الإطارات المستهدفة التي يجب أخذها كل ثانية. القيمة الافتراضية هي self.fps.

يعيد

np.ndarray

الفهارس التي تُستخدم لعينة إطارات الفيديو.

دالة العينة الافتراضية التي تعيّن عدد الإطارات المطلوب بشكل منتظم بين 0 والعدد الكلي للإطارات. إذا تم تمرير fps مع البيانات الوصفية، يتم أخذ fps إطاراً في الثانية بشكل منتظم. الحجتان num_frames وfps متنافيتان.

Update on GitHub