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_type
option. SeeFFmpex.Options.Formats.Image2
module. (#37) - Added Muxers/HLS options. See
FFmpex.Options.Muxers
module. (#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
SHELL
environment variable check for erlexec.
- Breaking change:
execute/1
returns{:ok, output}
instead of:ok
. - Added
to_stdout/1
to 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
-loop
instead of deprecated-loop_input
and-loop_output
options 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/1
to 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_mouse
inFFmpex.Options.Devices.Libavdevice
.
- Added
FFmpex.prepare/1
to retrieve arguments list, useful for inspection or passing toPort.open/2
.
- Breaking change: Changed output format of
FFprobe.format/1
to 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/1
to get a list of streams. - Depends on Poison 3.1.
- Requires Elixir 1.4.
- Fixed
FFprobe.format/1
for paths with spaces.
- Added
FFmpex.Options.Video.Libavformat
. - Validate options context (input, output, global) as specified in FFmpeg docs.
- Breaking change:
add_stream_specifier/2
takes a keyword list instead of%StreamSpecifier{}
. - Breaking change:
execute/1
returns:ok
or{:error, {output, status}}
, instead of{output, status}
. - Added
use FFmpex.Options
to conveniently import all options.
- Added
FFprobe.format/1
andFFprobe.format_names/1
.
- Added
FFprobe
module.FFprobe.duration/1
to 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.