pub struct AudioEncoderBuilder { /* private fields */ }Expand description
Builder for constructing an AudioEncoder.
Created by calling AudioEncoder::create(). Call build()
to open the output file and prepare for encoding.
§Examples
use ff_encode::{AudioEncoder, AudioCodec};
let mut encoder = AudioEncoder::create("output.m4a")
.audio(48000, 2)
.audio_codec(AudioCodec::Aac)
.build()?;Implementations§
Source§impl AudioEncoderBuilder
impl AudioEncoderBuilder
Sourcepub fn audio_codec(self, codec: AudioCodec) -> Self
pub fn audio_codec(self, codec: AudioCodec) -> Self
Set audio codec.
Sourcepub fn audio_bitrate(self, bitrate: u64) -> Self
pub fn audio_bitrate(self, bitrate: u64) -> Self
Set audio bitrate in bits per second.
Sourcepub fn container(self, container: OutputContainer) -> Self
pub fn container(self, container: OutputContainer) -> Self
Set container format explicitly (usually auto-detected from file extension).
Sourcepub fn codec_opt(self, key: impl Into<String>, value: impl Into<String>) -> Self
pub fn codec_opt(self, key: impl Into<String>, value: impl Into<String>) -> Self
Set a codec-private option by name, for the long tail that has no typed builder (libopus and AAC tuning knobs, and so on).
Repeatable, and applied in call order via av_opt_set on the codec’s
priv_data before avcodec_open2, after
codec_options() — so a key named here overrides
the same key set through the typed API.
§Escape-hatch semantics
Prefer codec_options(): it is validated at
compile time and portable across encoders. Nothing here is checked until
FFmpeg sees it, and keys are codec-specific.
Unlike the typed options, which log and continue when an encoder does not
support them, an option rejected here fails build() with
crate::EncodeError::InvalidConfig — the key was named explicitly, so
dropping it silently would defeat the purpose.
Sourcepub fn codec_options(self, opts: AudioCodecOptions) -> Self
pub fn codec_options(self, opts: AudioCodecOptions) -> Self
Set per-codec encoding options.
The variant must match the codec set via audio_codec().
A mismatch is silently ignored.
Sourcepub fn build(self) -> Result<AudioEncoder, EncodeError>
pub fn build(self) -> Result<AudioEncoder, EncodeError>
Validate builder state and open the output file.
§Errors
Returns EncodeError if configuration is invalid, the output path
cannot be created, or no suitable encoder is found.