pub struct MultiTrackAudioMixer { /* private fields */ }Expand description
Mixes multiple audio tracks into a single output stream.
The resulting FilterGraph is source-only — call FilterGraph::pull_audio
in a loop to extract the output frames.
§Examples
ⓘ
use ff_filter::MultiTrackAudioMixer;
use ff_format::ChannelLayout;
use std::time::Duration;
let mut graph = MultiTrackAudioMixer::new(48000, ChannelLayout::Stereo)
.add_track(ff_filter::AudioTrack {
source: "music.mp3".into(),
volume: ff_filter::AnimatedValue::Static(-3.0),
pan: ff_filter::AnimatedValue::Static(0.0),
time_offset: Duration::ZERO,
effects: vec![],
sample_rate: 48000,
channel_layout: ChannelLayout::Stereo,
})
.build()?;
while let Some(frame) = graph.pull_audio()? {
// encode or write `frame`
}Implementations§
Source§impl MultiTrackAudioMixer
impl MultiTrackAudioMixer
Sourcepub fn new(sample_rate: u32, layout: ChannelLayout) -> Self
pub fn new(sample_rate: u32, layout: ChannelLayout) -> Self
Creates a new mixer with no tracks.
Sourcepub fn add_track(self, track: AudioTrack) -> Self
pub fn add_track(self, track: AudioTrack) -> Self
Appends an audio track and returns the updated mixer.
Sourcepub fn build(self) -> Result<FilterGraph, FilterError>
pub fn build(self) -> Result<FilterGraph, FilterError>
Builds a source-only FilterGraph that mixes all tracks.
§Errors
FilterError::CompositionFailed— no tracks were added, or an underlyingFFmpeggraph-construction call failed.
Auto Trait Implementations§
impl Freeze for MultiTrackAudioMixer
impl RefUnwindSafe for MultiTrackAudioMixer
impl Send for MultiTrackAudioMixer
impl Sync for MultiTrackAudioMixer
impl Unpin for MultiTrackAudioMixer
impl UnsafeUnpin for MultiTrackAudioMixer
impl UnwindSafe for MultiTrackAudioMixer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more