FFMPEG Script Builder by DDashUnknown

An interface for building scripts to use in FFMPEG with a variety of easy-to-configure options!

Select & enter your desired settings. The script will be built in realtime.

Open your terminal where your files are, copy/paste, then run the commands in Powershell once you're fully satisfied. Enjoy! 💙

File Input

Alternative Textarea Input Method

Below overrides file upload if not empty (one file per line).

Trim Media

Video Encoder Options

If unsure, leave the fields below blank to run the defaults.

kbps

Balanced Quality Flag Number Ranges

Lower numbers yield better quality, with 0 being max quality. Start within these ranges and find the number that works best for you. You can learn more about how it works for H.264 HERE.

  • CPU: (Varies by codec)
    • x264: 18-23
    • x265: 20-28
    • AV1: 30-40
    • MPEG-4: 2-5 (Full range is 0-31 here; 0 is used by default for this codec!)
  • NVIDIA (NVENC) | Windows, Linux: 19-23
  • AMD (AMF) | Windows: 19-23
  • AMD, Intel (VAAPI) | Linux: 20-25

Audio Encoder Options

If unsure, leave the fields below blank to run the defaults.

kbps

(128 kbps is default for lossy codecs only; Leave blank for lossless codecs)

NOTE: "Normalize Audio" will only perform a single pass of `loudnorm` normalization. You can use ffmpeg-normalize if you'd like to do a full two-pass normalization process instead.

Append At End Option

If checked, the string `[]00-OUTPUT[]` will appear at the end of the file name. Otherwise, it will be inserted at the beginning.

Convert File Type

Enter a target extension (Example: mp4) to convert all files. Leave empty to keep original extensions.

NOTE: If you enter `gif` into this field, pre-configued optimizations will be used instead of many of the options here.

Use `Custom Framerate` and `Scale Video/Image Resolution` to further configure your GIFs to your liking! By default, GIFs export with a 640 px width (auto-scaled height) @ 30 FPS to prevent massive file sizes.

Loop Media Option

Enter the total number of iterations you want your media to play in the same file. (Will show as 1 less than entered value: Ex. 2 => `stream_loop 1`)

iterations

Reverse Media Option

Custom Framerate

Decimal numbers are allowed.

FPS

Extract Frame From Video

This option should only be used on video files and not in paired with any other configurations. Leave blank to not use this.

Track Mapping

These checkboxes preserve all tracks of an input file in its output file if left checked by default. Adjust as needed.

‼️ IMPORTANT: If you have an audio-only file, you will likely need to uncheck this for audio-specific commands to run! Leave checked otherwise!

Unless you specifically want to reduce a video file with multiple audio tracks into a video file with a single audio track, leave this checked by default.

Scale Video/Image Resolution

This set of inputs assumes all videos & images are of the same resolution. Alternatively, check `Use Scale Multiplier` if you wish to batch-scale various dimensions by a common scale multiplier!

After entering the input resolution, modify the other inputs as you wish.

Input Resolution

_Width: px
Height: px

Scale Multiplier

Decimal numbers are allowed.

x

Check this box to use the scale multiplier value in the command instead of the output width & height. This is useful if you have videos/images of varying resolutions & wish to scale them by a constant factor.

Using this checkbox will cause all width and height fields to be ignored in the final output!

Output Resolution

NOTE: Aspect Ratio is always preserved, as this tool is meant for set-and-run operations. More granular control is best suited for actual video & image editing software.

_Width: px
Height: px

Scaling Method

Change Media Speed

Enter a multiplier value below to change media speed. Decimal numbers are allowed.
(Ex. 0.5 = Half Speed; 2 = Double Speed)

x Speed

💡 TIP! Suppose you have a 30 FPS video. By default, a 30 FPS video at 2x speed is still be 30 FPS, resulting in dropped frames. If you wish to make a video file 2x FPS, use the `Custom Framerate` field below alongside this one and set the desired framerate accordingly.

Extract All Tracks/Streams

Use this feature as a standalone to extract all tracks/streams from a file. This is especially useful for extracting all audio tracks and subtitles from video files.

First, run `ffprobe {filename}` or whichever app you'd like to view the track info. Then, make note of the highest stream number. Finally, enter the highest track number or index you see.

These are 0-indexed, so the if highest track number is 3, there are 4 tracks total.

If in doubt, go 1 higher than you think. All files will be created regardless, and you can usually ignore any error messages specific to these commands if the files output successfully.

‼️ IMPORTANT: Video and audio are exported to MKV, images are exported to PNG, and subtitles are exported to SRT for maximum compatibility. Convert these to your desired format afterwards!

FFMPEG Script Output

Copy Status: N/A