https://github.com/vimeo/elevator
Validate and patch AV1 levels
https://github.com/vimeo/elevator
Last synced: 9 months ago
JSON representation
Validate and patch AV1 levels
- Host: GitHub
- URL: https://github.com/vimeo/elevator
- Owner: vimeo
- License: mit
- Created: 2019-09-27T20:29:28.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-09-17T20:41:32.000Z (over 4 years ago)
- Last Synced: 2025-04-03T22:41:37.207Z (9 months ago)
- Language: Rust
- Size: 94.7 KB
- Stars: 14
- Watchers: 6
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Elevator

This is a CLI application for validating and correcting the level syntax element in the sequence header(s) of AV1 streams.
Encoders tend to do a poor job of setting the level accurately, because headers are usually written before the rest of the stream.
Without enforcing constraints to keep encoded streams below a given level, estimating the correct one in advance is difficult to impossible.
Elevator parses a fully-encoded stream, calculates all the necessary parameters and determines the minimum acceptable level that will allow a spec-conformant decoder to decode it. It can then output this level to the command line, or patch it, either in place or to a new file.
## Restrictions
- Only IVF file input is supported
- Only one operating point is supported
- Some parameters are parsed from the first sequence header only, and are assumed to be consistent across sequences
- Some uncommon AV1 features, like scalability and super resolution, are untested and may produce incorrect output
## Usage
```
elevator [FLAGS] [OPTIONS]
FLAGS:
-h, --help Prints help information
--inplace Patch file in place
-V, --version Prints version information
-v, --verbose Display verbose output, which may be helpful for debugging
OPTIONS:
-f, --forcedlevel Force a level instead of calculating it [possible values: 0, 1, 4, 5, 8, 9, 12,
13, 14, 15, 16, 17, 18, 19, 31]
-o, --output Output filename
ARGS:
Input filename
```