rust_ffplay 0.1.0

Safe and idiomatic Rust wrapper for FFplay
Documentation

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;

# async fn example() -> ffmpeg_common::Result<()> {
// Play a video file
let mut player = FFplayBuilder::play("video.mp4")
    .spawn()
    .await?;

// Wait for playback to complete
player.wait().await?;
# Ok(())
# }

Advanced usage

use ffplay_rs::{FFplayBuilder, ShowMode};
use ffplay_rs::playback::SyncType;
use ffmpeg_common::{Duration, StreamSpecifier};

# async fn example() -> ffmpeg_common::Result<()> {
// 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?;
# Ok(())
# }

Audio visualization

use ffplay_rs::{FFplayBuilder, ShowMode};

# async fn example() -> ffmpeg_common::Result<()> {
// 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?;
# Ok(())
# }