World Library  
Flag as Inappropriate
Email this Article


Article Id: WHEBN0008201928
Reproduction Date:

Title: Ffv1  
Author: World Heritage Encyclopedia
Language: English
Subject: YULS, DTS-HD Master Audio, Codec2, Multi-Band Excitation, X265
Publisher: World Heritage Encyclopedia


Developed by Michael Niedermayer (FFmpeg)
Initial release 9 June 2003 (2003-06-09)
Latest release
Version 3 (FFV1.3)
Type of format Video compression format
Contained by AVI, MKV, MOV, NUT, etc.
Website FFV1 Video Codec Specification

FFV1, which stands for "FF video codec 1", is a lossless intra-frame video codec. It can use either variable length coding or arithmetic coding for entropy coding. The encoder and decoder are part of the free, open-source library libavcodec in the project FFmpeg since June 2003.[1] FFV1 is also included in ffdshow and LAV Filters,[2] which makes the video codec available to Microsoft Windows application that support system-wide codecs over Video for Windows (VfW) or DirectShow. FFV1 is particularly popular for its performance regarding speed and size, compared to other lossless preservation codecs, such as M-JPEG2000.[3][4][5]

Video archiving

For long-term preservation of digital video sustainable container formats as well as audio/video codecs are necessary. There is no consensus to date among the archival community as to which file format or codecs should be used for preservation purposes for digital video,.[6] The previously proclaimed encodings were Motion JPEG 2000 (lossless)[7] and uncompressed video.[8]

FFV1 has turned out to be a viable addition to that choice and was therefore recently been added as suitable option as preservation encoding.[9][3] With compression ratios comparable to JPEG 2000 lossless and its lower computing requirements, it is already being used by professional archives as their long-term storage codec. It is listed as a format option for long-term preservation of moving images on sites of the Federal Agencies Digitization Guidelines Initiative (FADGI)[10] of the U.S. Library of Congress',[9][11] State Records NSW[6] and others. The Society of American Archivists has published a paper in August 2014, suggesting only FFV1 as preservation codec for video.[12]

List of institutions known to use FFV1

United Kingdom
United States

The "Österreichische Mediathek" has also developed DVA-Profession[20] a Free Software solution for archive-suitable mass video digitization, mainly using FFV1 as video encoding throughout the whole workflow, without transcoding. Additionally, they have initiated the development of "FFV1.3" (=version 3 of FFV1) together with Michael Niedermayer (FFmpeg), Peter Bubestinger and Dave Rice. FFV1.3 contains improvements and new features such as support for multi-threaded encoding/decoding, error resilience and integrity validation by CRC checksums, storing of display aspect ratio (DAR) and field order. It was tested for over 1 year,[21] and officially released stable for production in August 2013.[22]

Suitable as preservation codec

Within the video archiving domain, the interest in FFV1 is increasing, as can be seen in a thread on the AMIA-L mailing list,[23] the PrestoCentre Forum[24] or the Archivematica mailing list.[25][26] Companies are also picking up FFV1 support. For example, "NOA Audio Solutions", well known for large scale archiving solutions, announced supporting the FFV1 in their product line in July 2013[27] and KEM-Studiotechnik has released a film-scanner with FFV1 output in November 2013.[28] The owner of "Flume Productions Inc. (Canada) states in a blog post:[29]

In an interview for The New York Times magazine about "Tips on Archiving Family History",[30] Bertram Lyons from the U.S. Library of Congress says:

In January 2013, the possible use and adoption of FFV1 as archiving codec is addressed in the issue of PrestoCentre's[31] "AV Insider" magazine:[32]

PACKED - the "Centre of Expertise in Digital Heritage" in Belgium, say in an article about video formats for archiving: [33]

Applications supporting FFV1

Here is a list of applications known to be able to read and/or write FFV1 video files, either natively or by installing codec packages.

Entries marked with "-" means that they generally only support either encoding or decoding.

The term "built-in" means that the application can handle FFV1 without the necessity to install additional codec packages. Applications that come with FFV1 support out of the box, usually use FFmpeg's or Libav's libraries in order to do so.

The list is far from being complete, and will be augmented over time:

Application Encoding Decoding Method
Adobe Premiere Yes Yes DirectShow (1,2)
AMD Video Converter No Yes built-in
Archivematica Yes Yes built-in
AVID Unknown Yes Their transcoder can handle FFV1
Avidemux Yes Yes built-in
Blender Yes[34] Yes built-in
ffdshow-tryouts Yes Yes built-in
FFmpeg Yes Yes built-in
Harmonic ProMedia Carbon Yes Yes DirectShow (1,2)
Harris Broadcast Velocity Yes Yes Video for Windows (1)
kdenlive Yes Yes built-in
KEM Scan (motion picture film scanner) Yes - built-in
Kinovea Unknown Yes built-in
LAVFilters Yes Yes built-in
MediaInfo - Yes built-in
Media Lovin Toolkit (MLT/melt) Yes Yes built-in
Media Player Classic - Yes built-in
MPlayer/MEncoder Yes Yes built-in
NOA MediaButler Yes Yes built-in
BAVC QCTools - Yes built-in
Shotcut Yes Yes built-in
Shotdetect - Yes built-in
Sorenson Squeeze Unknown Yes built-in
VirtualDub Yes Yes Video for Windows (1)
VLC media player No Yes built-in
Windows Media Player Unknown Yes DirectShow (1,2)

Compression details

FFV1 is not strictly an intra-frame format; despite not using inter-frame prediction, it allows the context model to adapt over multiple frames. This can be useful for compression due to the very large size of the context table, but can be disabled to force the encoder to generate a strictly intra-frame bitstream. As the gained compression seems to decrease[35] with later versions of FFV1 (version 2,3), the use of GOP size greater than "1" might disappear in the future.

Prediction process

During progressive scanning of a frame, the difference between a current pixel and its predicted value, judging by neighboring pixels, is sent to the entropy-coding process. The prediction is done as follows:

Prediction = Median( Top, Left, Top + Left - TopLeft )

The third value, "Top + Left - TopLeft", is effectively equivalent to applying the top predictor to the current and the left sample, followed by applying the left predictor to the prediction residual of the top predictor.[note 1] This method, also known as the gradient, exploits both horizontal and vertical redundancy. So in simple terms the prediction is the median of the top, left, and gradient prediction methods. For improved performance and simplicity, the edges of the frame are assumed to be zero to avoid special cases. The prediction in encoding and decoding is managed using a ring buffer.

Entropy coding process

The residuals are coded using either variable-length coding or arithmetic coding. Both options use a very large context model. The "small" context model uses (11*11*11+1)/2=666 contexts based on the neighboring values of (Left-TopLeft), (TopLeft-Top), and (Top-TopRight). The "large" context model uses (11*11*5*5*5+1)/2=7563 contexts based on the same values as before, but also (TopTop - Top) and (LeftLeft-Left), where "TopTop" is the pixel two above the current one vertically, and "LeftLeft" is the pixel two to the left of the current one. In arithmetic coding, each "context" actually has 32 sub-contexts used for various portions of coding each residual, resulting in a grand total of 242,016 contexts for the "large" model. The arithmetic coder of FFV1 is very similar to (and based on) that of H.264.


On April 16, 2006, a commit-message by Michael Niedermayer confirmed that the bitstream of FFV1 (version 1) is frozen:[36]


Version 1 (FFV1.1)

The bitstream of version 1 is frozen and considered stable for production use since April 2006.[36] The remark "experimental" in the source code was overlooked back then and removed in March 2010.[37]

Version 2 (FFV1.2)

Version 2 was an intermediate version, that was never officially released and should not be used for production purpose.

Version 3 (FFV1.3)

The bitstream of version 3 is frozen since August 3, 2013.[38] The final commit marking this version as officially released for production usage was on August 26, 2013.[22]


Although its documentation remains incomplete, starting April 2012, efforts are being undertaken in order to improve its documentation. The current version of FFV1's technical specification document can be found on GitHub.

See also


  1. ^ Because the top and left predictor are both linear, their order can be swapped, so the "Top + Left - TopLeft" predictor is also equivalent to first applying the left predictor to the current and the top sample, followed by applying the top predictor to the prediction residual of the left predictor.


  1. ^ "Repository history of FFV1's sourcecode in FFMPEG repository". Michael Niedermayer. Retrieved 21 October 2010. 
  2. ^
  3. ^ a b Bubestinger, Peter. "Comparing video codecs and containers for archives". Austrian Mediathek. Retrieved 8 October 2014. 
  4. ^ "MSU Lossless Video Codecs Comparison". MSU Graphics & Media Lab (Video Group). March 2014. Retrieved 8 October 2014. 
  5. ^ "Graphs about FFV1 performance (transcoding, retrieval)". NOA Audio Solutions. Retrieved 8 October 2014. 
  6. ^ a b "Formats and codecs for digital video preservation (Guideline 22)". NSW State Records. August 2013. Retrieved 10 November 2013. 
  7. ^ "Motion JPEG 2000 at".  
  8. ^ Fleischhauer, Carl; Frost, Hannah; Beard, Isaiah (November 2010). "AMIA/IASA 2010 - Wrappers and Codecs: A Survey of Selection Strategies".  
  9. ^ a b Fleischhauer, Carl; Egan, Courtney (8 September 2014). "Digital File Formats for Videotape Reformatting".  
  10. ^
  11. ^ "FFV1 at".  
  12. ^ Austen, Barbara; Bowling, Melissa; Deakyne, Holly; Evans, Ryan (7 August 2013). "Electronic Records Project". Society of American Archivists. Retrieved 21 October 2014. 
  13. ^
  14. ^
  15. ^ Lewetz, Hermann (30 August 2011). "DVA-Profession used at the Austrian Mediathek: Codec". Austrian Mediathek. Retrieved 8 October 2014. 
  16. ^
  17. ^ "Matroska video container information at".  
  18. ^ "A City of Vancouver Archives' blog post mentioning their use of FFV1". City of Vancouver Archives. Retrieved 10 May 2012. 
  19. ^ Esteva, Maria; Vega, Karla; Henriksen, Vandy; Lee, Jennifer; Martin, Wendy (May 2013). "Automated Archiving of DVD Content (Presentation at TCDL 2013)". Texas Advanced Computing Center (TACC) and University of Texas Libraries. Retrieved 21 October 2014. 
  20. ^
  21. ^ Bubestinger, Peter (6 February 2014). "FFV1 performance statistics". Austrian Mediathek. Retrieved 8 October 2014. 
  22. ^ a b "Repository commit message: FFV1.3 released as stable". Michael Niedermayer. 26 August 2013. Retrieved 29 August 2013. 
  23. ^ "FFV1 discussion on AMIA-L mailing list". Association of Moving Image Archivists (AMIA). December 2012. Retrieved 6 March 2013. 
  24. ^ "Digital master archive format". PrestoCentre Forums. 26 October 2012. Retrieved 6 March 2013. 
  25. ^ "FFV1 vs other formats for preservation". Archivematica mailing list. 24 September 2012. Retrieved 6 March 2013. 
  26. ^ "Digital film archiving in big scale". Archivematica mailing list. 29 January 2013. Retrieved 6 March 2013. 
  27. ^ "Company announcement confirming FFV1 support". NOA Audio Solutions. 10 July 2013. Retrieved 29 August 2013. 
  28. ^ Kober, Helmfried (14 November 2013). "KEM SCAN (Film scanner with FFV1 output)". KEM-Studiotechnik. Retrieved 21 October 2014. 
  29. ^ "Video Codecs – ffmpeg/ffv1". Flume Productions Inc. 11 December 2013. Retrieved 21 October 2014. 
  30. ^ Lyons, Bertram (2013). "Ask an Expert: Tips on Archiving Family History, Part 3". The New York Times Magazine (online) ( 
  31. ^
  32. ^ Addis, Matthew (2013). "Crossing the Chasm (From Research Results to Sustainable Tools and Services for AV)". AV Insider Magazine (PrestoCentre) (#3): p14–15. 
  33. ^ Emanuel Lorrain (March 2014). "A short guide to choosing a digital format for video archiving masters". PACKED, Belgium. Retrieved 2 June 2014. 
  34. ^ "Blender v2.6 Manual: Render/Output/Video". Blender Foundation. 18 November 2011. Retrieved 4 August 2013. 
  35. ^ "Message on FFmpeg developer mailing list about the impact of GOP size parameter of FFV1". Retrieved 10 May 2012. 
  36. ^ a b "Repository commit message: Bitstream FFV1.1 frozen". Michael Niedermayer. 14 April 2006. Retrieved 8 May 2012. 
  37. ^ "Repository commit message". Michael Niedermayer. 22 March 2010. Retrieved 21 October 2010. 
  38. ^ "Mailing list post: Bitstream FFV1.3 frozen". Michael Niedermayer. 3 August 2013. Retrieved 29 August 2013. 

External links

  • Source code of FFV1 codec for libavcodec — Git access
  • Technical Description of the FFV1 Video Codec
  • Comparison of different lossless video codecs (2007)
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from World eBook Library are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.