Crates.io | y4m |
lib.rs | y4m |
version | 0.8.0 |
source | src |
created_at | 2015-11-07 16:04:16.727539 |
updated_at | 2023-04-21 11:32:10.292388 |
description | YUV4MPEG2 (.y4m) Encoder/Decoder. |
homepage | https://github.com/image-rs/y4m |
repository | https://github.com/image-rs/y4m.git |
max_upload_size | |
id | 3379 |
size | 31,071 |
YUV4MPEG2 (.y4m) Encoder/Decoder. Format specification.
Simple stream copying:
extern crate y4m;
use std::io;
let mut infh = io::stdin();
let mut outfh = io::stdout();
let mut dec = y4m::decode(&mut infh).unwrap();
let mut enc = y4m::encode(dec.get_width(), dec.get_height(), dec.get_framerate())
.with_colorspace(dec.get_colorspace())
.write_header(&mut outfh)
.unwrap();
loop {
match dec.read_frame() {
Ok(frame) => if enc.write_frame(&frame).is_err() { break },
_ => break,
}
}
See API documentation for overview of all available methods. See also this example on how to resize input y4m into grayscale y4m of different resolution:
cargo build --release --example resize
ffmpeg -i in.mkv -f yuv4mpegpipe - | target/release/examples/resize - 640x360 - | mpv -
Library is licensed under MIT.