Skip to main content

AudioEncoderBuilder

Struct AudioEncoderBuilder 

Source
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

Source

pub fn audio(self, sample_rate: u32, channels: u32) -> Self

Configure audio stream settings.

Source

pub fn audio_codec(self, codec: AudioCodec) -> Self

Set audio codec.

Source

pub fn audio_bitrate(self, bitrate: u64) -> Self

Set audio bitrate in bits per second.

Source

pub fn container(self, container: OutputContainer) -> Self

Set container format explicitly (usually auto-detected from file extension).

Source

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.

Source

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.

Source

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.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.