2 releases (1 stable)
Uses new Rust 2024
| 1.0.0 | Jul 19, 2025 |
|---|---|
| 0.1.0 | Jul 19, 2025 |
#429 in Video
120KB
3K
SLoC
Safe and idiomatic Rust wrapper for FFplay
This crate provides a high-level, safe interface to FFplay functionality, allowing you to play multimedia files with various options.
Examples
Basic playback
use ffplay_rs::FFplayBuilder;
// Play a video file
let mut player = FFplayBuilder::play("video.mp4")
.spawn()
.await?;
// Wait for playback to complete
player.wait().await?;
Advanced usage
use ffplay_rs::{FFplayBuilder, ShowMode};
use ffplay_rs::playback::SyncType;
use ffmpeg_common::{Duration, StreamSpecifier};
// Play with custom options
let mut player = FFplayBuilder::new()?
.input("https://example.com/stream.m3u8")
.size(1280, 720)
.fullscreen(false)
.window_title("My Stream")
.seek(Duration::from_secs(30))
.duration(Duration::from_secs(120))
.volume(75)
.audio_stream(StreamSpecifier::Index(1))
.sync(SyncType::Audio)
.autoexit(true)
.spawn()
.await?;
// Kill the player after some time
tokio::time::sleep(std::time::Duration::from_secs(10)).await;
player.kill().await?;
Audio visualization
use ffplay_rs::{FFplayBuilder, ShowMode};
// Play audio with waveform visualization
let mut player = FFplayBuilder::play("audio.mp3")
.show_mode(ShowMode::Waves)
.window_title("Audio Player")
.spawn()
.await?;
player.wait().await?;
Dependencies
~9–14MB
~166K SLoC