egui-video, a video playing library for egui
main_L3Yxngkb7T.mp4
plays videos in egui from file path or from bytes
as of now, can't publish as a crate due to me depending on a modified version of rust-ffmpeg
; i'm waiting for response on the corresponsing PR. for now, you have to specify this as a git dependancy in Cargo.toml
- requires ffmpeg 6. follow the build instructions here
/* called once (top level initialization) */
{ // if using audio...
let audio_sys = sdl2::init()?.audio()?;
let audio_device = egui_video::init_audio_device(&audio_sys)?;
// don't let audio_device drop out of memory! (or else you lose audio)
add_audio_device_to_state_somewhere(audio_device);
}
/* called once (creating a player) */
let mut player = Player::new(ctx, my_media_path)?;
{ // if using audio...
player = player.with_audio(&mut my_state.audio_device)
}
/* called every frame (showing the player) */
player.ui(ui, [player.width as f32, player.height as f32]);
are welcome :)
- need to compile in
release
oropt-level=3
otherwise limited playback performance bad (playback, seeking) performance with large resolution streamsseeking can be slow (is there better way of dropping packets?)depending on the specific stream, seeking can fail and mess up playback/seekbar (something to do with dts?)no audio playback