RAWcooked - encode and decode audio-visual RAW data with Matroska, FFV1
and FLAC
rawcooked [
option ...] (
folder |
file ...)
[
option ...]
- RAWcooked easily encodes RAW audio-visual sequences into a lossless
video stream, reducing the file size by between one and two thirds. FFmpeg
encodes the audio-visual data into a Matroska container (.mkv) using the
video codec FFV1, and audio codec FLAC. The metadata accompanying the RAW
data is fully preserved, along with additional sidecar files such as MD5
checksums, LUT or XML if desired. This allows for the management of these
audio-visual file formats in an effective and transparent way. The lossless
Matroska video stream can be played in VLC or MPV media players, and writing
and retrieving from storage devices such as LTO is significantly
quicker.
- If you need to use the RAW source in its original form, one line of code
will easily restore it bit-by-bit, faster than retrieving the same
file from LTO tape storage.
- folder
- Every image file within the sequence's folder is encoded into a
single FFV1 video stream, and each audio track within the same
folder is encoded to the FLAC codec. Both the FFV1 and FLAC
contents are then muxed into a single Matroska container (.mkv).
The image filenames must end in a complete number sequence, so that
RAWcooked can parse each image within the sequence in the correct
order.
- file
- contains RAW data (e.g. a .dpx or .wav file):
Every image within a sequence folder containing the file is encoded
into a single FFV1 video stream, and each audio track within the folder
containing the same file is encoded to the FLAC codec. Both the
FFV1 and FLAC contents are then muxed into a single Matroska container
(.mkv).
The image filenames must end in a complete number sequence. By entering one
file within this sequence RAWcooked will parse every image
in the correct order.
- file
- is a Matroska container (.mkv):
Decodes the Matroska file back to the original RAW image sequence, including
restoration of the original metadata and sidecar files. It is important to
stress that the encoded files can be fully decoded, and that this process
will create bit-by-bit identical files to the originals. Not only is the
image and audio content fully restored, but also all enclosed metadata and
all of the file's characteristics. Therefore, an encoded and decoded RAW
file cannot be differentiated from its original.
- --help | -h
- Displays the help guide.
- --version
- Tells you which installed version you are using.
- --store-license value
- Set the license key to value and store on hard drive. (license is stored
in ~/.config/RAWcooked/Config.txt on Linux/Mac,
%APPDATA%/RAWcooked/Config.txt on Windows)
- --show-license
- Displays information about the installed license.
- --attachment-max-size value | -s value
- Set maximum size of attachments to value (in bytes).
The default value is 1048576.
- --check value
- Switch the check function on or off. Be aware check function can be
demanding of time and processor usage.
partial (or 0) is quicker but may lead to partial
reversibility with files that do not conform.
full (or 1) is slower but guarantees reversibility, for
example with DPX where the bits do not have any zero padding included.
The default value is 'partial'.
- --display-command | -d
- When an external encoder/decoder is used, display the command to launch
instead of just launching it.
- --output-name value | -o value
- Set the name of the output file or folder to value.
The default output value is opposite to the input. Expect
${Input}.mkv if the input is a folder, or ${Input}.RAWcooked
if input is a file, such as a DPX.
- --rawcooked-file-name value | -r value
- Set during encoding, or retrieve by decoding, the name of the
RAWcooked reversibility data file to value.
The default name is ${Input}.rawcooked_reversibility_data.
Note: This file is deleted after encoding if the RAWcooked
reversibility data file is embedded in the output Matroska wrapper during
encoding.
Note: Not yet implemented for decoding.
- --quiet
- Do not show information related to RAWcooked.
External encoder or decoder may need an additional option.
- -y
- Automatic yes to prompts.
Assume yes in answer to all prompts, and run non-interactively.
- -n
- Automatic no to prompts.
Assume no as answer to all prompts, and run non-interactively.
- --all
- Same as --info --decode --encode --hash --conch --coherency
--check-padding --check (see below)
- --none
- Same as --no-info --no-decode --no-encode --no-hash --no-conch
--no-coherency --quick-check-padding --quick-check (see below)
- --check
- Check that the encoded file can be correctly decoded.
If input is raw content, encode then check that output would be same as the
input content.
If input is compressed content, check that output would be same as the
original content.
Disable decoding.
- --quick-check
- Do quick coherency checks of the encoded file. It permits to check that
the file seems healthy without the time and processor usage of the full
check.
Is ignored in case of compressed content.
This is the default, but may change in the future.
- --no-check
- Don't run any checks (see above).
This is the default, but may change in the future.
- --info
- Provide extra information about the compresssed file, for example the
presence of hash of the raw data.
Disable decoding.
- --no-info
- Don't provide extra information (see above).
This is the default, but may change in the future.
- --check-padding
- Run padding checks. Be aware check function can be demanding of time and
processor usage.
It is a slower process but guarantees reversibility, for example with DPX
files that have bits with no zero padding.
- --quick-check-padding
- Switch to --check-padding or --no-check-padding depending on what is found
in the first image.
The program will stop with an error code if --check is not used at the same
time and zero-padding bits are in the content, asking to choose what to
do.
This is the default, but may change in the future.
- --no-check-padding
- Do not run padding checks, as they are demanding of time and processor
usage.
This method is quicker, but be aware it may lead to partial reversibility
with files that do no conform.
- --coherency
- Checks that the package and contents are coherent.
This is currently partially implemented.
This is default, but may change in the future.
- --no-coherency
- Do not carry out coherency check (see above).
- --conch
- Conformance check of the format, effective only when format is supported.
This is currently partially implemented for DPX.
- --no-conch
- Do not carry out conformance check (see above).
This is default, but may change in the future.
- --decode
- Encode a compressed stream into audio-visual RAW data.
This is default.
- --no-decode
- Do not carry out decode (see above).
- --encode
- Encode audio-visual RAW data into a compressed stream.
This is default.
- --no-encode
- Do not carry out encode (see above).
- --hash
- Compute the hash of audio-visual RAW data files.
This permits a reversibility check without the original files.
- --no-hash
- Do not compute or test the hash of the file (see above).
This is default, but may change in the future.
- --framemd5
- Compute the framemd5 of input frames and store it to a sidecar file.
See FFmpeg framemd5 documentation for more information.
- --framemd5-name value
- Set the name of the framemd5 file to value.
Default value is ${Input}.framemd5.
- --no-framemd5
- Do not compute of framemd5 of input frames. (see above)."
Is default.
- --file
- Unlock the compression of files, for example with .dpx or .wav.
- -framerate value
- Force the video frame rate value to value.
Default frame rate value is found in the image file metadata, if available.
Otherwise it will default to 24.
- -c:a value
- Use this command to force the audio encoding format to value:
copy (for example copy PCM to PCM, without modification),
FLAC
The default value is FLAC.
- -c:v value
- Force the video encoding format value: only ffv1 is
currently allowed, which is the default value.
- -coder value
- If video encoding format is ffv1, set the Coder to value:
0 (Golomb-Rice), 1 (Range Coder), 2 (Range Coder with
custom state transition table).
The default value is 1.
- -context value
- If the video encoding format is ffv1, set the Context to
value: 0 (small), 1 (large).
The default value is 0.
- -format value
- Set the container format to value: only matroska is
currently allowed, which is the default value.
- -g value
- If video encoding format is ffv1, set the GOP size to value
1 (generates a strict intra-frame bitstream), 0 (allows
adaptable context model across frames).
The default value is 1. Ensure you leave the setting at 1 for
archival use.
- -level value
- The video encoding format ffv1 can have Version set to
value: 0, 1, 3.
The default value is the latest version 3.
- -slicecrc value
- If video encoding format is ffv1, you can set the CRC checksum to
value: 0 (CRC checksums off), 1 (CRC checksum on).
The default value is 1.
- -slices value
- If the video encoding format is ffv1, you can set the multithreaded
encoding slices to value: any integer over 1 (it is recommended to
use a figure divisible by your workstations CPU core processors such as 2,
4, 6, 9, 16, 24...).
The default value is variable between 16 and 512, depending on
the video frame size and depth.
Copyright (c) 2018-2020 MediaArea.net SARL & AV Preservation by reto.ch
RAWcooked is released under a BSD License.
RAWcooked is provided "as is" without warranty or support of
any kind.