rusty_h264-encoder 0.12.0

Pure-Rust H.264 encoder (Baseline/Main: intra, P-frames, quarter-pel ME, CABAC, adaptive quantization, ABR rate control) — bit-exact under ffmpeg across QP 0-51. forbid(unsafe) core; portable Rust SIMD on by default. BSD-2.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Repro probe: fresh-process decode_stream vs in-process decode-after-encode.
fn main() {
    let f = std::env::args().nth(1).unwrap();
    let bytes = std::fs::read(&f).unwrap();
    let frames = rusty_h264_decoder::Decoder::new().decode_stream(&bytes).unwrap();
    let mut raw = Vec::new();
    for fr in &frames {
        raw.extend_from_slice(&fr.y);
        raw.extend_from_slice(&fr.u);
        raw.extend_from_slice(&fr.v);
    }
    std::fs::write(format!("{f}.dectest.yuv"), &raw).unwrap();
    eprintln!("{} frames", frames.len());
}