A pure-Rust FFV1 decoder based on this Go implementation. A great and personal thanks to @dwbuiten for developing it and all FFV1 people involved in writing the relative specifications.
This project has been developed with the aim of testing parallelism.
Debug mode:
cargo build
Release mode:
cargo build --release
cargo build --release --examples
cargo run --release --example EXAMPLE_NAME -- -i INPUT_FILEPATH -o OUTPUT_FILEPATH
For example, if you want to run the ffv1_decode
example:
cargo run --release --example ffv1_decode -- -i input.mkv -o output.raw
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:
ffplay -f rawvideo -pixel_format yuv420p -video_size 640x360 -framerate 25 output.raw
The code is still in flux and pretty messed up. No parallelism has been implemented for now, so the library is pretty slow.
Released under the MIT License.