unbundle 5.1.0

Unbundle media files - extract still frames, audio tracks, and subtitles from video files
Documentation
[package]

name = "unbundle"

version = "5.1.0"

edition = "2024"

authors = ["Skander Jeddi <skanderjeddi@fastmail.com>"]

description = "Unbundle media files - extract still frames, audio tracks, and subtitles from video files"

license = "MIT"

repository = "https://github.com/skanderjeddi/unbundle"

readme = "README.md"

keywords = ["video", "audio", "ffmpeg", "extraction", "media"]

categories = ["multimedia", "multimedia::video", "multimedia::audio"]

exclude = ["tests/fixtures/*.mp4", "tests/fixtures/*.mkv", "target/"]



[package.metadata.docs.rs]

all-features = true

rustdoc-args = ["--cfg", "docsrs"]



[dependencies]

ffmpeg-next = "8"

ffmpeg-sys-next = "8"

image = "0.25"

log = "0.4"

thiserror = "2.0"

clap = { version = "4.5", features = ["derive"] }

clap_complete = "4.5"

colored = "3.0"

indicatif = "0.18"

serde_json = "1.0"



# Optional: async support (feature = "async")

tokio = { version = "1", features = ["rt", "sync", "macros"], optional = true }

tokio-stream = { version = "0.1", optional = true }

futures-core = { version = "0.3", optional = true }



# Optional: parallel processing (feature = "rayon")

rayon = { version = "1.11", optional = true }



# Optional: GIF export (feature = "gif")

gif = { version = "0.13", optional = true }



[features]

default = []

async = ["tokio", "tokio-stream", "futures-core"]

rayon = ["dep:rayon"]

hardware = []

scene = []

gif = ["dep:gif"]

waveform = []

loudness = []

transcode = []

encode = []

full = ["async", "rayon", "hardware", "scene", "gif", "waveform", "loudness", "transcode", "encode"]



[dev-dependencies]

criterion = "0.5"

image = "0.25"

tempfile = "3.0"

tokio = { version = "1", features = ["rt-multi-thread", "macros"] }

tokio-stream = "0.1"



[[example]]

name = "async_extraction"

required-features = ["async"]



[[example]]

name = "rayon"

required-features = ["rayon"]



[[example]]

name = "scene"

required-features = ["scene"]



[[example]]

name = "hardware_acceleration"

required-features = ["hardware"]



[[example]]

name = "gif_export"

required-features = ["gif"]



[[example]]

name = "waveform"

required-features = ["waveform"]



[[example]]

name = "loudness"

required-features = ["loudness"]



[[example]]

name = "transcode"

required-features = ["transcode"]



[[example]]

name = "video_encoder"

required-features = ["encode"]



[[bench]]

name = "unbundle_benchmarks"

path = "benches/unbundle_benchmarks.rs"

harness = false



[[bin]]

name = "unbundle-cli"

path = "src/bin/unbundle-cli.rs"



[[bin]]

name = "unbundle"

path = "src/bin/unbundle.rs"