Skip to main content

A library for automatically generating and selecting video screenshots.

Project description

screenshotgenerator

This library aims to automate the selection of video screenshots. It employs ffmpeg to generate a pool of screenshots then calls on two autogluon machine learning models to score the screenshots in order to select the best of them. The first model attempts to determine whether a screenshot is focused while the second model attempts to determine whether the screenshot is a portrait (a close-up of one or more people). The first model's score makes up 75% of the total score while the second model's score makes up 25% of the total score.

Dependencies

The following must be installed on your system:

CUDA

autogluon uses the CPU version of PyTorch, by default. If you have a CUDA-enabled GPU, installing the CUDA version of PyTorch will increase prediction speeds:

pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116

Usage

Download and extract models.zip then execute the generate function.

Parameters

  • models_directory: str
    The path to the models directory extracted from models.zip.
  • screenshot_directory: str
    The directory into which to copy the selected screenshots.
  • video_path: str
    The path to the video for which to generate screenshots.
  • end_time: datetime
    The time at which to stop taking screenshots. Defaults to 95% of the video duration, to exclude credits.
  • ffmpeg_path: str
    The path to ffmpeg. Defaults to 'ffmpeg', which requires ffmpeg to be in your path.
  • pool_directory: str
    The directory in which to store the screenshot pool. Defaults to the temporary directory.
  • pool_size: int
    The size of the pool from which to select screenshots. Defaults to 64.
  • portrait_preference: PortraitPreference
    Preference regarding portrait screenshots. Defaults to PortraitPreference.PORTRAIT.
  • screenshot_count: int
    The number of screenshots to select. Defaults to 4.
  • silent: bool
    True to suppress ffmpeg and autogluon output. Defaults to false.
  • start_time: datetime
    The time at which to start taking screenshots. Defaults to 00:00:00.

Returns

list[Screenshot] The screenshot pool, sorted by descending preference.

Example

import screenshotgenerator

screenshots = screenshotgenerator.generate(
    models_directory=r"C:\Users\user\Downloads\models",
    screenshot_directory=r"B:\screenshots",
    video_path=r"B:\myvideo.mkv",
    portrait_preference = screenshotgenerator.PortraitPreference.MIXED)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

screenshotgenerator-0.1.1.tar.gz (5.5 kB view hashes)

Uploaded Source

Built Distribution

screenshotgenerator-0.1.1-py3-none-any.whl (6.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page