# Awesome FFmpeg

> FFmpeg is a cross-platform solution to record, convert and stream audio and video.

## Contents

- Docs
- JavaScript
- Native
- Mobile
- Tutorials
- Community

## Docs

FFmpeg’s official docs are notoriously difficult for beginners to understand due to the scope and complexity of FFmpeg’s capabilities. With that being said, they’re still very useful as a reference.

- FFmpeg.org - Where it all starts.
- Filters - Docs for FFmpeg’s powerful filter chains (scaling, cropping, concatenating, merging, etc.). This is one of my most visited links when working with FFmpeg.
- Man page - Official FFmpeg man page.
- Wiki & Bug Tracker - Lots of great info on here.
- CLI flags - A comprehensive list of all FFmpeg commandline flags. Really useful for searching random flags that you come across in the wild.

## JavaScript

- fluent-ffmpeg - A fluent API to FFmpeg. If you only use one tool from this list, it should be this one.
- ffmpeg-probe - Wrapper around ffprobe for getting info about media files.
- ffmpeg-concat - Concats a list of videos together using FFmpeg with sexy OpenGL transitions.
- editly - Declarative video editing tool and library with slick animations and transitions.
- ffmpeg-generate-video-preview - Generates an attractive image strip or GIF preview from a video.
- ffmpeg-extract-frame - Extracts a single frame from a video.
- ffmpeg-extract-frames - Extracts screenshots from a video using FFmpeg.
- gif-extract-frames - Extracts frames from GIFs including inter-frame coalescing.
- ffmpeg-extract-audio - Extracts an audio stream from a media file.
- ffmpeg-on-progress - Utility for robustly reporting progress with fluent-ffmpeg.
- ffmpeg.js - Port of FFmpeg to JavaScript via Emscripten. Allows for limited FFmpeg use on the client-side.
- ffmpeg-static - Provides static FFmpeg binaries for macOS, Linux, and Windows. Very useful for CI testing.
- tangerine - Webcam streaming service using Node.js, FFmpeg, WebSockets, and Lad.
- ffparser - Parse input stream by frames directly into your code as a buffer.

## Native

- ffmpeg-gl-transition - FFmpeg filter for applying GLSL transitions between video streams (gl-transitions).

## Mobile

- simplest ffmpeg mobile - FFmpeg examples for Android and iOS.
- ijkplayer - Android / iOS video player based on FFmpeg.

## Tutorials

- How to Write a Video Player in Less Than 1k Lines
- Learn FFmpeg libav the Hard Way
- Applying OpenGL Shaders with FFmpeg - And follow-up.
- A Beginner’s FFmpeg Cookbook

## Community

- Stack Overflow
- Mailing Lists
- IRC

## Contribute

Contributions welcome! Please read the contributing guideline first.

## License

To the extent possible under law, Travis Fischer has waived all copyright and related or neighboring rights to this work.

Support my OSS work by following me on twitter

ffmpeg.md Github