Crate less_avc

source ·
Expand description

less Advanced Video Coding (H.264) encoding library

This module contains a pure Rust implementation of an H.264 encoder. It is simple (“less advanced”), and uses a small subset of the encoder features in the H.264 specification. It was inspired by Ben Mesander’s World’s Smallest H.264 Encoder. In the present implementation, all data is encoded as a lossless PCM frame. (Future updates could include other encoding possibilities.) Bit depths of 8 and 12 in monochrome and YCbCr colorspaces are supported. Tests ensure that data is losslessly encoded.

Modules

Network Abstraction Layer (NAL) encoding
Supplemental Enhancement Information (SEI) encoding
Data representations for YCbCr image data

Structs

Write images to an std::io::Write implementation in .h264 file format.
Convert input images YCbCrImage into H.264 NAL units NalUnit.
Raw byte sequence payload (RBSP) data.

Enums

The dynamic range of the data, stored as number of bits.
An H.264 encoding error.