Skip to content

rust-av/ffv1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 library

Debug mode:

cargo build

Release mode:

cargo build --release

Building decoder

cargo build --release --workspace

Run decoder

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:

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.