|Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact|
|Full name||FF Video Codec 1|
|Description||FFV1 is a lossless intra-frame codec from the FFmpeg project and its current leader Michael Niedermayer. According to its website, FFmpeg is "a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec - the leading audio/video codec library." 1 Niedermayer's specification states that FFV1 is a "simple and efficient lossless intra only codec," meaning that the compression is applied within each frame as opposed to inter-frame compression which is applied over groups of frames. The FFV1 Wikipedia article, consulted May 7, 2012, reports that FFV1 uses "either variable length coding or arithmetic coding for entropy coding." 2|
|Production phase||Middle state, used for storage or archiving|
|Relationship to other formats|
|Used by||AVI_FFV1, AVI File Format with FFV1 video encoding|
|Used by||Matroska_FFV1, Matroska File Format with FFV1 video encoding|
|LC experience or existing holdings||None|
|Disclosure||As of this writing (May, 2012) documentation is still in process. Developed as an open source project; see history section of the Notes below.|
|Documentation||Published online at http://www.ffmpeg.org/~michael/ffv1.html. Niedermayer's March 2010 GitHub commit note indicates that the codec is no longer "experimental." Nevertheless, the FFV1 Wikipedia article, consulted on May 7, 2012, reports that the "bitstream is [now] fixed, but documentation remains incomplete... [S]tarting April 2012, efforts are being undertaken in order to improve its documentation."|
|Adoption||Modest adoption in heritage repositories. The Austrian Mediathek uses FFV1 encoding wrapped in AVI for their preservation masters. Information about their use of FFV1 can be found here. The City of Vancouver Archives uses FFV1 encoding wrapped in the Matroska container, as discussed briefly on the archives' blog. Archivematica - "a free and open-source digital preservation system that is designed to maintain standards-based, long-term access to collections of digital objects" - lists FFV1 (wrapped in the Matroska container with LPCM audio) as one of its "preservation formats" here.|
|Licensing and patents||The specification carries this notice: "Copyright 2003-2012 Michael Niedermayer" and also states that "this text can be used under the GNU Free Documentation License or GNU General Public License."|
|Transparency||Depends upon algorithms and tools to read; will require sophistication to build tools.|
|Self-documentation||Section 4 of the specification indicates that the types of technical metadata required to read and play the file are provided in frame headers. Additional metadata, if any, would be carried by the wrapper format. Comments Welcome|
|Technical protection considerations||Not provided by the bitstream encoding. Technical protections, if any, would be provided by the wrapper format.|
|Clarity (high image resolution)||Lossless compression that retains all of the video picture information presented to the encoder. Comments Welcome|
|Functionality beyond normal rendering||One specialist in the field reports that "version 1.3 of FFV1, currently marked as an experimental encoder, adds a mandatory CRC checksum to each frame header."|
The Wikipedia FFmpeg article, consulted May 7, 2012, reports that the FFmpeg project "was started by Fabrice Bellard (using the pseudonym "Gerard Lantau") and has been maintained by Michael Niedermayer since 2004. . . . The name of the project comes from the MPEG video standards group, together with 'FF' for 'fast forward.'" Niedermayer's Web page states that an FFV1 encoder and decoder have been part of the FFmpeg library since 2003. Incidentally, the section of the specification devoted to frame header metadata includes the tag "version" with possible values of "0" or "1."
The FFV1 developers are currently testing versions 1.2 and 1.3 but have made no official announcements about their release. (The "V" in FFV1 stands for "Video Codec," not "version.")
1According to the Wikipedia libavcodec article, consulted on May 7, 2012, the name refers to "a free software/open source LGPL-licensed library of codecs for encoding and decoding video and audio data. Same name but incompatible libraries are provided from both FFmpeg project and Libav project."
2According to the Wikipedia Entropy (information theory) article, consulted on May 7, 2012, entropy encoding "creates and assigns a unique prefix-free code to each unique symbol that occurs in the input. These entropy encoders then compress data by replacing each fixed-length input symbol by the corresponding variable-length prefix-free output codeword. The length of each codeword is approximately proportional to the negative logarithm of the probability. Therefore, the most common symbols use the shortest codes."