Use ffmpeg to do media manipulation from the terminal, like slowing down or speeding up a video, converting from MP4 to GIF, JPEG to PNG, etc.
## Versioning
To see the currently installed version:
```bash
ffmpeg -version # Note that it's just one dash
```
## Usage
Standard use:
```bash
ffmpeg -i input.mov output.gif
```
Double the speed of the output media:
```bash
ffmpeg -i input.mov -vf "setpts=0.5*PTS" -f output.gif
```
You may need to specify the `fps` to maintain speed in converting to a gif, especially when converting from `.mov` file exported from Photos app.
1. Find fps, or tbr (target bitrate) with `ffprobe filename.mov`
2. Set `fps={number}` in the `vf` option:
```bash
ffmpeg -i input.mov -vf "setpts=0.5PTS,fps=30" output.gif
```
Remove audio from the output:
```bash
ffmpge -i input.mov -an output.webm
```
Reduce fps (assuming fps is greater than 15 in `input.gif`):
```bash
ffmpeg -i input.gif -filter:v fps=15 output.gif
```
Find out FPS in gif:
```bash
ffprobe -v error -select_streams v:0 -show_entries stream=r_frame_rate -of default=noprint_wrappers=1:nokey=1 {input.gif}
```
Framerate will look like a fraction - e.g. 30/1 means 30 FPS.
### HEIC
You may experience issues working with HEIC images. You can use different libraries like `heif-convert` if you can't get ffmpeg to work.
---
#ffmpeg