bevy_video_playing

Crates.iobevy_video_playing
lib.rsbevy_video_playing
version0.10.0
sourcesrc
created_at2023-04-10 01:02:24.675931
updated_at2023-04-10 01:02:24.675931
descriptionDecode and render h264 video in Bevy 0.10.0
homepage
repositoryhttps://github.com/sethblocks/bevy_video
max_upload_size
id834633
size10,002
(sethblocks)

documentation

README

Bevy Video

Stream or play video in your Bevy app!

Currently supports: Bevy 0.10.0

use bevy::prelude::*;
use bevy_video::prelude::*;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_plugin(VideoPlugin)
        .add_startup_system(setup)
        .add_system(push_frame)
        .run();
}

fn setup(
    mut commands: Commands,
    mut images: ResMut<Assets<Image>>,
) {
    let (image_handle, video_decoder) = VideoDecoder::create(&mut images);

    // decoder
    commands.spawn(video_decoder);

    // ...
}

fn push_frame(
    decoders: Query<&VideoDecoder>,
    mut materials: ResMut<Assets<MaterialThatUsesTheImage>>,
) {
    for _ in materials.iter_mut() {
        // otherwise the image on screen wont update
    }

    for decoder in decoders.iter() {
        decoder.add_video_packet(/* Vec<u8> representing an H.264 packet */);

        // Note: packets are decoded asynchronously in another thread
        // The Images will update automatically
    }
}
Commit count: 16

cargo fmt