Skip to main content

Crate ff_pipeline

Crate ff_pipeline 

Source
Expand description

§ff-pipeline

Unified decode → filter → encode pipeline for the ff-* crate family.

This crate wires together ff-decode, ff-filter, and ff-encode into a single high-level API. All unsafe FFmpeg internals remain encapsulated in the underlying crates; users of ff-pipeline never need to write unsafe code.

§Features

  • Single-call transcode: open → filter → encode in one Pipeline::run()
  • Progress callbacks: real-time frame-count and elapsed-time updates
  • Cancellation: returning false from the progress callback aborts the pipeline
  • Multi-input concatenation: pass multiple input paths to concatenate clips

§Usage

use ff_pipeline::{Pipeline, EncoderConfig};
use ff_format::{VideoCodec, AudioCodec};
use ff_encode::BitrateMode;

let config = EncoderConfig::builder()
    .video_codec(VideoCodec::H264)
    .audio_codec(AudioCodec::Aac)
    .bitrate_mode(BitrateMode::Cbr(4_000_000))
    .resolution(1280, 720)
    .framerate(30.0)
    .build();

Pipeline::builder()
    .input("input.mp4")
    .output("output.mp4", config)
    .on_progress(|p| {
        println!("frame={} elapsed={:?}", p.frames_processed, p.elapsed);
        true // return false to cancel
    })
    .build()?
    .run()?;

§Module Structure

Re-exports§

pub use audio_pipeline::AudioPipeline;
pub use clip::Clip;
pub use encoder_config::EncoderConfig;
pub use encoder_config::EncoderConfigBuilder;
pub use error::PipelineError;
pub use pipeline::Pipeline;
pub use pipeline::PipelineBuilder;
pub use progress::Progress;
pub use progress::ProgressCallback;
pub use thumbnail::ThumbnailPipeline;
pub use timeline::Timeline;
pub use timeline::TimelineBuilder;
pub use video_pipeline::VideoPipeline;

Modules§

audio_pipeline
Audio-only transcoding pipeline.
clip
Timeline clip data type.
encoder_config
Codec and quality configuration for the pipeline output.
error
Error types for pipeline operations.
pipeline
Pipeline builder and runner.
progress
Pipeline progress tracking.
thumbnail
Thumbnail extraction pipeline.
timeline
Timeline data type for multi-track composition.
video_pipeline
Video-only transcoding pipeline.

Enums§

XfadeTransition
Transition type for the xfade cross-dissolve filter.