egui-video, a video playing library for egui
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
. until the relevant 2 year old pr goes through, you have to specify this as a git dependancy in Cargo.toml
/* 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]);
- 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