# FFmpeg Commands

This file contains various `ffmpeg` commands used for video processing and analysis.

```bash
in1="output_trimmed-frames.mp4" # Source video with burned-in frames
in2="output_trimmed-frames-crf20.mp4" # CRF 20 compressed video with burned-in frames
in3="output_trimmed-frames-crf22.mp4" # CRF 22 compressed video with burned-in frames
```

## Basic Conversion

Convert `input.mov` to `output.mp4`:

```bash
ffmpeg -i input.mov output.mp4
```

## Change Resolution

Resize `$in1` to 640x480:

```bash
ffmpeg -i "$in1" -vf scale=640:480 output_640x480.mp4
```

## Extract Audio

Extract audio from `$in1` as MP3:

```bash
ffmpeg -i "$in1" -vn -acodec libmp3lame output.mp3
```

## Extract Image from Video

Extract a single frame (at 10 seconds) from `$in1`:

```bash
ffmpeg -i "$in1" -ss 00:00:10 -vframes 1 output.png
```

## Concatenate Videos

Concatenate `input1.mp4` and `input2.mp4` (requires a file list):

Create `mylist.txt` with:
```
file 'input1.mp4'
file 'input2.mp4'
```

Then run:
```bash
ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_concat.mp4
```

## Add Subtitles

Add subtitles (`subtitles.srt`) to `$in1`:

```bash
ffmpeg -i "$in1" -vf subtitles=subtitles.srt output_subtitles.mp4
```

## Create GIF from Video

Create a GIF from `$in1` starting at 5 seconds for 3 seconds:

```bash
ffmpeg -i "$in1" -ss 00:00:05 -t 3 -vf "fps=10,scale=320:-1:flags=lanczos" output.gif
