luisbg / ffv1

ffv1 decoder written in pure rust

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

A Rust FFV1 Decoder

LICENSE Actions Status Coverage Status

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.

Building

Debug mode:

cargo build

Release mode:

cargo build --release

Building examples

cargo build --release --examples

Run example

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

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.

About

ffv1 decoder written in pure rust

License:MIT License


Languages

Language:Rust 92.7%Language:C 5.3%Language:Go 1.2%Language:Shell 0.8%