A simple script for generating screenshots with Vapoursynth

Overview

Vapoursynth-Screenshots

A simple script for generating screenshots with Vapoursynth.


About

I'm lazy, and hate changing variables for each batch of screenshots I create. This script accepts input from the command line and generates screenshots using ScreenGen from the awsmfunc Vapoursynth script.

Included is a PowerShell wrapper script (all platforms) to make entering CLI arguments easier. Vapoursynth parses arguments from the global dictionary (so no argparse), which is pretty tedious to type. The PowerShell script gives you tab complete functionality and more input validation. It's optional - screenshots.vpy works just fine on it's own.

By default, screenshots are generated with character "tags", or letters that distinguish them and make them easy to sort. The script will check for existing tags and increment the characters so other screenshots in the same directory are not overwritten.


Dependencies


Tonemapping

If the input files are UHD, the script can tonemap them automatically using the tonemap plugin. Tonemapping algorithms:

  • Hable
  • Mobius
  • Reinhard

The default value is Mobius, but you can specify which one you want using the tonemap_type parameter. You can also specify the exposure (gain) for the screenshots using the exposure parameter.


Parameters

NOTE: PowerShell parameters are case insensitive, whereas Python's are not. Python parameters must be lowercase

Parameter Name Description
[-]source Path to the source file (or primary file)
[-]encode Path to the encode file (or secondary file)
[-]screenshots Optional path to screenshots. If one is not provided, the root of encode will be used
[-]frames A list of frame numbers for screenshots. Passed as a Python list, i.e. "[1,2,3,4]"
[-]offset Optional frame offset for test encodes
[-]title Title tag for frame info overlay. Applies to encodes. Default is "Encode"
[-]tonemap_type Tonemap algorithm to use (hable, mobius, reinhard). Default is mobius
[-]exposure Gain to apply to image. Default is 4.5

Examples

PowerShell

All PowerShell parameters can be used positionally. See Get-Help .\wrapper.ps1 or read the comments to see them all.

#Named parameters
PS > .\Wrapper.ps1 -Encode "C:\Path\file.mkv" -Encode "C:\Path\file2.mkv" `
                   -Frames 100,200,300 -Title "My Encode" -TonemapType hable
#Positional parameters
PS > .\Wrapper.ps1 "~/videos/source.mkv" "~/videos/encode.mkv" 100,200,300 "~/videos/screens" hable "My Encode"

VSPipe

#Pass parameters using --arg
~$ vspipe --arg "source=~/videos/source.mkv" --arg "encode=~/videos/encode.mkv" \
              --arg "frames=[100,200,300]" --arg "tonemap_type=hable" screenshots.vpy -
FCurve-Cleaner: Tries to clean your dense mocap graphs like an animator would

Tries to clean your dense mocap graphs like an animator would! So it will produce a usable artist friendly result while maintaining the original graph.

wiSHFul97 5 Aug 17, 2022
A program for calculating the divisor function

DivisorsFunctionCalculator A program for calculating the divisor function A script to find the "Sigma" (divisors function) of any number. To find the

1 Oct 31, 2021
A minimalist personal blogging system that natively supports Markdown, LaTeX, and code highlighting.

December Welcome to the December blogging system's code repository! Introduction December is a minimalist personal blogging system that natively suppo

TriNitroTofu 10 Dec 05, 2022
Python Multilingual Ucrel Semantic Analysis System

PymUSAS Python Multilingual Ucrel Semantic Analysis System, it currently is a rule based token level semantic tagger which can be added to any spaCy p

UCREL 13 Nov 18, 2022
An addin for Autodesk Fusion 360 that lets you view your design in a Looking Glass Portrait 3D display

An addin for Autodesk Fusion 360 that lets you view your design in a Looking Glass Portrait 3D display

Brian Peiris 12 Nov 02, 2022
WinBoost: Boost your windows system.

Winboost runs a complete checkup of your entire system locating junk files, speed-reducing issues and causes of any system or application glitches or crashes. Through a lot of research and testing, w

Smit Parmar 4 Oct 01, 2021
Devil - Very Semple Auto Filter V1 Bot

Devil Very Semple Auto Filter V1 Bot

2 Jun 27, 2022
Dockernized ZeroTierOne controller with zero-ui web interface.

docker-zerotier-controller Dockernized ZeroTierOne controller with zero-ui web interface. 中文讨论 Customize ZeroTierOne's controller planets Modify patch

sbilly 209 Jan 04, 2023
Easy installer for running Amazon AVS Device SDK on Raspberry Pi

avs-device-sdk-pi Scripts to enable Alexa voice activation using Picovoice Porcupine If you like the work, find it useful and if you would like to get

4 Nov 14, 2022
Final project for ENGG 5402 Advanced Robotics in CUHK

Final project Final project Update Foundations Ubuntu virtual machine Ubuntu How to use Github to keep tracking the change of code version? Docker Set

Junjia Liu 8 Aug 01, 2022
Change your Windows background with this program safely & easily!

Background_Changer Table of Contents: About the Program Features Requirements Preview Credits Reach Me See Also About the Program: You can change your

Sina.f 0 Jul 14, 2022
The LiberaPay archive module for the SeanPM life archive project.

By: Top README.md Read this article in a different language Sorted by: A-Z Sorting options unavailable ( af Afrikaans Afrikaans | sq Shqiptare Albania

Sean P. Myrick V19.1.7.2 1 Aug 26, 2022
Vita Specific Patches and Application for Doki Doki Literature Club (Steam Version) using Ren'Py PSVita

Doki-Doki-Literature-Club-Vita Vita Specific Patches and Application for Doki Doki Literature Club (Steam Version) using Ren'Py PSVita Contains: Modif

Jaylon Gowie 25 Dec 30, 2022
IOP Support for Python (Experimental)

TAGS Experimental IOP Framework for Python WARNING: Currently, this project has NO EXCEPTION HANDLING. USE AT YOUR OWN RISK! I. Introduction to Interf

1 Oct 22, 2021
Hy - A dialect of Lisp that's embedded in Python

Hy Lisp and Python should love each other. Let's make it happen. Hy is a Lisp dialect that's embedded in Python. Since Hy transforms its Lisp code int

Hy Society 4.4k Jan 02, 2023
JLC2KICAD_lib is a python script that generate a component library for KiCad from the JLCPCB/easyEDA library.

JLC2KiCad_lib is a python script that generate a component library (schematic, footprint and 3D model) for KiCad from the JLCPCB/easyEDA library. This script requires Python 3.6 or higher.

Nicolas Toussaint 73 Dec 26, 2022
Covid 19 status. Flask application. CovidAPI. Heroku.

Covid 19 In this project we see total count of people who got this virus and total death. How does it works Written in Python. Web app, Flask. package

AmirHossein Mohammadi 12 Jan 16, 2022
CD for MachineLearnia

Codebase supporting my talk on CI/CD for MachineLearnia (Nov 12 2021) The dataset used is available here. The point of the talk is to demonstrate a si

0 Feb 23, 2022
Credit Card Fraud Detection

Credit Card Fraud Detection For this project, I used the datasets from the kaggle competition called IEEE-CIS Fraud Detection. The competition aims to

RayWu 4 Jun 21, 2022
Aggressor script that gets the latest commands from CobaltStrikes web site and creates an aggressor script based on tool options.

opsec-aggressor Aggressor script that gets the latest commands from CobaltStrikes opsec page and creates an aggressor script based on tool options. Gr

JP 10 Nov 26, 2022