Home Features GitHub Discord FAQ About Blog Documentation





Quality Muncher Documentation (Batch)

Written by Frost

Table of Contents

1 Description

This is the documentation for Quality Muncher. This documentation is not for the Python version of Quality Muncher.

2 Requirements

3 Inputs

Quality Muncher works with pretty much any media format, as long as it's supported by FFmpeg.

3.1 Video

Any video that is supported by FFmpeg and has at least one functional video stream will work and be recognized as a video.

3.2 Audio

Any audio format that is supported by FFmpeg will work. If it has a video stream, it will be grouped with video, otherwise it will skip any video-related options.

3.3 Image

Any image format using any of the following containers will work:

3.4 GIF

Any GIF using the .gif container will work.

4 Options

4.1 Miscellaneous

4.2 Aesthetic

4.3 Encoding

4.4 Containers

5 Output Settings

These are settings that can be modified to alter the appearance of a video. Some may be hardly noticable, some may be extremely apparant.

5.1 Video

5.1.1 Basic Quality Presets

These are presets that help set the framerate, video and audio bitrate, and resolution. They have 4 values:

framerate

    The framerate of the video

videobr

    How visually bad the video bitrate should be, higher is worse

audiobr

    How bad the audio bitrate should sound, higher is worse

scale

    The amount to divide the original resolution by

The options for quality are as follows:

decent

framerate: 24
videobr: 3
audiobr: 3
scale: 2

bad

framerate: 12
videobr: 5
audiobr: 5
scale: 4

terrible

framerate: 6
videobr: 8
audiobr: 8
scale: 8

unbearable

framerate: 1
videobr: 16
audiobr: 9
scale: 12

custom

    All values are chosen by user

random

    All values are randomly chosen

5.1.2 Advanced

These are more advanced and specific options that the user can choose to unlock through the main menu.

5.1.2.1 Start Time and Duration

The start time and duration of the video.

5.1.2.2 Speed

The speed of the video, from 0.5 to 100.

5.1.2.3 Text

2 texts that can be applied to the video, with 4 options that are individual for each text: size Big, medium, small, or very small text Any text that doesn't contain any batch poison characters will work position Any number 1 through 9, each corresponding to a third of the screen, going left to right, top to bottom

5.1.2.4 Color

Color filters that can be applied to the video. contrast Any float from -1000 to 1000, default is 1 saturation Any float from 0 to 3, default is 1 brightness Any float from -1 to 1, default is 0

5.1.2.5 Stretch

Stretches the width and height of the video individually, with any natural number being an accepted input.

5.1.2.6 Corruption

Corrupts the bitstream of the video with noise. corruptsev Any natural number between 1 and 10

5.1.2.7 Duration Spoofing

Spoofs the duration of the video by editing the raw hexadecimal values. Users can pick from super long duration, super long negative duration, and ever-increasing duration.

5.1.2.8 Variable Resolution / "Bouncy WebM"

Sets a variable resolution for the video, using a cosine graph as the scale. A visualisation can be found here.

bouncingspeed The rate of change minimumbounce The minimum relative scale the resolution will decrease to, from 0 to 1 (0.5 for example would be half of the original size). bouncetype The axis to apply the changes too, width, height, or both

5.1.2.9 Resampling and Interpolation

If this is enabled, there are 3 possible outcomes, dependant on the input and output framerates. If the output framerate is greater than the input framerate: the video will be interpolated to the output framerate (which creates extra frames using an algorithm) If the output framerate is equal to the input framerate: the video framerate will not be changed or modified in any way If the output framerate is less than the input framerate: the video will be resampled to the output framerate (which combines frames together)

5.1.2.10 Frying

This effect is akin to what is commonly referred to as "deep frying". This effect warps the video using a noise map for displacement and changes colors. level The strength of the distortion colorchanges Whether or not to apply effects such as contrast and saturation to the video

5.1.2.11 Frame Stutter

Randomizes the order of frames of a video from an internal cache (group).

stutteramount

    A number 2-512 that dictates the frames in the internal cache

Frame Stutter Visualisation

5.1.2.12 Misc. Filters

These are miscellaneous filters that don't have any options besides a toggle. The description for these are all paraphrased from FFmpeg's filter documentation, so go there if you want a more in-depth explanation. Each filter has an image at the end of the description showing its effects. Here is the original image for reference:

Original

5.1.2.12.1 Erosion

Replaces the pixel by the local(3x3) minimum.

Erosion

5.1.2.12.2 Lagfun

This filter makes short flashes of light appear longer.

Lagfun

5.1.2.12.3 Negate

Negate (invert) the input video.

Negate

5.1.2.12.4 Interlace

Simple interlacing filter from progressive contents. This interleaves upper (or lower) lines from odd frames with lower (or upper) lines from even frames, halving the frame rate and preserving image height.

Interlace

5.1.2.12.5 Edgedetect

Detect and draw edges. The filter uses the Canny Edge Detection algorithm.

Edgedetect

5.1.2.12.6 Shufflepixels

Reorder pixels in video frames.

Shufflepixels

5.1.2.12.7 Guided

Apply guided filter for edge-preserving smoothing, dehazing and so on.

Guided

5.2 Audio (With Video)

5.2.1 Basic Quality Presets

See 5.1.1 Basic Quality Presets.

5.2.2 Advanced

Advanced options for audio.

5.2.2.1 Start Time and Duration

Dictated by the video start

5.2.2.2 Speed

The speed of the audio, from 0.5 to 100.

5.2.2.3 Distortion / "Earrape"

Distorts the audio using one of two methods.

5.2.2.3.1 Simple Distortion

Boosts specific frequencies. distortionseverity Severity of distortion, from 1 to 10.

5.2.2.3.2 Advanced Distortion

Boosts specific frequencies, adds individual delay to channels, swaps the left and right channel, and adds echo. distortionseverity Severity of distortion, from 1 to 10.

5.2.2.4 Text to Speech

Text that is spoken and combined with the existing audio. Your FFmpeg installation must have libflite enabled for this to work. This uses flite's kal16 voice. ttstext The text that is spoken volume The boost, in dB, added to the text to speech.

5.2.2.5 Replacing

Replaces the audio with the audio from another file starttime The time in the audio file that is played from when the video starts.

5.3 Audio (Without Video)

5.3.1 Bitrate

A value from 1-10 that dictates the bitrate of the audio, 10 being worse.

5.3.2 Start Time and Duration

The start time and duration of the audio.

5.3.3 Speed

See 5.2.2.2 Speed.

5.3.4 Distortion

See 5.2.2.3 Distortion / "Earrape".

5.3.4.1 Simple Distortion

See 5.2.2.3.1 Simple Distortion.

5.3.4.2 Advanced Distortion

See 5.2.2.3.2 Advanced Distortion.

5.3.5 Text to Speech

See 5.2.2.4 Text to Speech.

5.4 Images and GIFs

5.4.1 Old

The older, faster way to munch images.

5.4.1.1 Quality

quality The quality of the image/GIF, 1-10, 1 being the highest quality

5.4.1.2 Scale

scale The amount to divide the image/GIF by.

5.4.1.3 Frying

See 5.1.2.10 Frying.

5.4.2 New

The newer method to munch images. It is slower yet more effective at reducing quality.

5.4.2.1 Times to Compress

The amount of times to compress the image, which can be anywhere from 1 to 32767.

5.4.2.2 Quality

See 5.4.1.1 Quality.

5.4.2.3 Scale

See 5.4.1.2 Scale.

6 Multiqueue

Multiqueue is supported for all input types, but all inputs must be the same type, except for images and GIFs, which can be queued together.

7 Config Files

As of version 1.4.6, only videos support config files.

After answering all of the output settings, users are asked if they want to create a config file with the selected options. These config files can be used to skip answering most questions, and automatically set the values that were used to make the file. Config files work both with and without multiqueue.

8 Updating

Updating through the app can be done in two ways, auto-updating and forcing an update.

8.1 Auto-Updating

Unless the option is set to false in the file, every time Quality Muncher is opened, it will try to check for updates automatically. If your version is different from the most recent one, it will ask if you want to update or skip updating. If you choose to update, you are given the choice between overwriting your current version, copying the current version and then overwriting, or going back and not updating at all.

8.2 Force Update / Repair

Forcing an update, or repairing, can be done by opening Quality Muncher, pressing "C" to check for updates, then pressing "F". This will then ask you if you want to proceed, copy the file and then proceed, or go back. Choose either of the first two will forcibly update Quality Muncher.

9 Developers

Quality Muncher is developer by Frost, or Frost#5872 on Discord. The Python version is developed by Atzur, or atzur#3938 on Discord.

10 Contact

You can contact us in our Discord Server, or by emailing us at qualitymuncher@gmail.com.