All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added
pattern_typeoption. SeeFFmpex.Options.Formats.Image2module. (#37) - Added Muxers/HLS options. See
FFmpex.Options.Muxersmodule. (#43) - Requires Elixir 1.12.
- Allow FFprobe on remote URLs, instead of treating URLs as nonexistent files.
- Run commands with Rambo instead of erlexec, to address issues running in Docker.
- Requires Elixir 1.9.
- Fixed starting erlexec when running as root.
- Fixed
SHELLenvironment variable check for erlexec.
- Breaking change:
execute/1returns{:ok, output}instead of:ok. - Added
to_stdout/1to direct ffmpeg output to a buffer instead of a file. Retrieve buffer in{:ok, output}result ofexecute/1. (#31)
- Relaxed Jason dependency so it can get all 1.x versions without mix.exs update.
- Bumped Jason dependency to 1.2.
- Changed to
-loopinstead of deprecated-loop_inputand-loop_outputoptions inFFmpex.Options.Advanced.
- Breaking change: FFprobe API changes to return
{:ok, term}or{:error, atom}fromformat_names/1,format/1,streams/1. - Changed
FFprobe.duration/1to return{:error, :no_such_file}for nonexistent file, instead of raising MatchError. - Fixed FFprobe module to raise a clearer error message when FFmpeg not installed in system path.
- Changed to Jason instead of Poison for JSON operations.
- Added options
video_size,framerate,draw_mouseinFFmpex.Options.Devices.Libavdevice.
- Added
FFmpex.prepare/1to retrieve arguments list, useful for inspection or passing toPort.open/2.
- Breaking change: Changed output format of
FFprobe.format/1to be cleaner, based on ffmpeg JSON output. Specifically:"nb_programs","nb_streams", and"probe_score"now contain integers instead of binaries; and tags are stored in a"tags"sub-map instead of being individual entries prefixed with "TAG:". - Added
FFprobe.streams/1to get a list of streams. - Depends on Poison 3.1.
- Requires Elixir 1.4.
- Fixed
FFprobe.format/1for paths with spaces.
- Added
FFmpex.Options.Video.Libavformat. - Validate options context (input, output, global) as specified in FFmpeg docs.
- Breaking change:
add_stream_specifier/2takes a keyword list instead of%StreamSpecifier{}. - Breaking change:
execute/1returns:okor{:error, {output, status}}, instead of{output, status}. - Added
use FFmpex.Optionsto conveniently import all options.
- Added
FFprobe.format/1andFFprobe.format_names/1.
- Added
FFprobemodule.FFprobe.duration/1to get video duration.
- Lower Elixir requirement to 1.0 (was 1.3).
- First FFmpex release.
- Specify per-file and per-stream options, and execute.
- Non-exhaustive catalog of known options.