# FFmpex

[![Build Status](](

An Elixir wrapper for the FFmpeg command line interface.


## Examples

import FFmpex
use FFmpex.Options

command =
  |> add_global_option(option_y())
  |> add_input_file("/path/to/input.avi")
  |> add_output_file("/path/to/output.avi")
    |> add_stream_specifier(stream_type: :video)
      |> add_stream_option(option_b("64k"))
    |> add_file_option(option_maxrate("128k"))
    |> add_file_option(option_bufsize("64k"))

:ok = execute(command)

You can use the `FFprobe` module to query for file info:

# => result in seconds, e.g., 228.456939

See [silent_video](
and [thumbnex](
for more usage examples.

## Prerequisites

[FFmpeg]( must be installed.

## Installation

Add `ffmpex` to your list of dependencies in `mix.exs`:

def deps do
  [{:ffmpex, "~> 0.5.2"}]

## Configuration

You can specify some options in `config.exs`:

config :ffmpex, ffmpeg_path: "/path/to/ffmpeg"
config :ffmpex, ffprobe_path: "/path/to/ffprobe"

## Release notes

See the [changelog]( for changes between versions.

## Disclaimer

FFmpex is not affiliated with nor endorsed by the FFmpeg project.

FFmpeg is a trademark of [Fabrice Bellard](, originator of the FFmpeg project.

## License

FFmpex source code is licensed under the [MIT License](