#multimedia-video #art #multimedia #frame #glitch #avi

avirus

A Rust library for manipulating AVI files for purposes such as glitch art

6 releases

Uses old Rust 2015

0.2.5 Mar 20, 2024
0.2.4 Apr 17, 2023
0.2.3 Apr 26, 2019
0.2.2 Aug 28, 2018
0.2.0 Jul 25, 2018

#149 in Video

Custom license

17KB
248 lines

avirus

avirus is a library for manipulating AVI files for purposes such as glitch art.

[dependencies]
avirus = "0.2.5"

Examples

avirus::AVI takes an existing AVI file and loads it into memory for manipulation. avirus::frames exposes a meta field, which holds simple structures with metadata about a frame. This field can be iterated over, and modified to create odd effects in the output file. When the AVI file's output() function is called, a new file will be rebuilt with the modified metadata.

extern crate avirus;

use avirus::AVI;
use avirus::frame::Frame;

fn main() {
    let mut avi = AVI::new("sample.avi").unwrap();
    let mut new_meta: Vec<Frame> = Vec::new();
    for frame in &mut avi.frames.meta {
        if frame.is_pframe() || frame.is_audioframe() {
            for _ in 0..3 {
                new_meta.push(*frame);
            }
        }
        else {
            new_meta.push(*frame);
        }
    }
    avi.frames.meta = new_meta;
    avi.output("sample_output.avi").unwrap();
}

Dependencies

~115KB