https://github.com/rust-av/ffv1
ffv1 decoder written in pure rust
https://github.com/rust-av/ffv1
ffv1 hacktoberfest
Last synced: about 1 year ago
JSON representation
ffv1 decoder written in pure rust
- Host: GitHub
- URL: https://github.com/rust-av/ffv1
- Owner: rust-av
- License: mit
- Created: 2020-10-16T21:09:48.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-10-22T04:54:26.000Z (over 3 years ago)
- Last Synced: 2024-03-26T15:23:39.773Z (about 2 years ago)
- Topics: ffv1, hacktoberfest
- Language: Rust
- Homepage:
- Size: 20.4 MB
- Stars: 8
- Watchers: 10
- Forks: 5
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# A Rust FFV1 Decoder
[](LICENSE)
[](https://github.com/Luni-4/ffv1/actions)
[](https://coveralls.io/github/rust-av/ffv1?branch=master)
A pure-Rust FFV1 decoder based on this [Go](https://github.com/dwbuiten/go-ffv1)
implementation. A great and personal thanks to
[@dwbuiten](https://github.com/dwbuiten) for developing it and all
[FFV1](https://github.com/FFmpeg/FFV1) people involved in writing the
relative specifications.
This project has been developed with the aim of testing parallelism.
## Building library
Debug mode:
```bash
cargo build
```
Release mode:
```bash
cargo build --release
```
## Building decoder
```bash
cargo build --release --workspace
```
## Run decoder
```bash
cargo run --release --package ffv1-decoder -- -i INPUT_FILEPATH -o OUTPUT_FILEPATH
```
You can reproduce your raw file with `ffplay` from `FFmpeg` specifying
the video parameters associated to the `raw` output file.
For example, if we consider the output produced using `ffv1_v3.mkv`, called
`ffv1_v3.raw`, you should run the following command:
```bash
ffplay -f rawvideo -pixel_format yuv420p -video_size 640x360 -framerate 25 output.raw
```
## Notes
The code is still in flux and pretty messed up. No parallelism has been
implemented for now, so the library is pretty slow.
## License
Released under the [MIT License](LICENSE).