Low-level Rustler bindings to the rsmpeg Rust crate.
This module is private to the library. Use Exmpeg for the public API.
Stub names must match the Rust NIF symbols verbatim (Rustler verifies
arity at module load time); friendlier wrappers live below them.
Summary
Types
Input source. A plain string is a filesystem path; {:memory, binary}
hands the entire input buffered in memory to a custom AVIOContext.
Functions
Stream-copy concatenation of multiple inputs into a single output.
Decodes the best audio stream and writes it as a 16-bit PCM WAV.
Decodes a single video frame at a timestamp and writes it as an image.
Probes a media file and returns format + per-stream metadata.
Stream-copies an input container to an output container.
Per-stream re-encode with codec / bitrate / scale / fps selection.
Reports the FFmpeg version + configure flags this NIF is linked against.
Types
Functions
@spec concat([input_source()], String.t(), map()) :: {:ok, map()} | {:error, map()}
Stream-copy concatenation of multiple inputs into a single output.
@spec extract_audio(input_source(), String.t(), map()) :: {:ok, map()} | {:error, map()}
Decodes the best audio stream and writes it as a 16-bit PCM WAV.
@spec extract_frame(input_source(), String.t(), map()) :: {:ok, map()} | {:error, map()}
Decodes a single video frame at a timestamp and writes it as an image.
@spec probe(input_source()) :: {:ok, map()} | {:error, map()}
Probes a media file and returns format + per-stream metadata.
@spec remux(input_source(), String.t(), map()) :: {:ok, map()} | {:error, map()}
Stream-copies an input container to an output container.
@spec transcode(input_source(), String.t(), map()) :: {:ok, map()} | {:error, map()}
Per-stream re-encode with codec / bitrate / scale / fps selection.
Reports the FFmpeg version + configure flags this NIF is linked against.