Skip to content

Repository files navigation

FFV1 Specification

Introduction

This repository manages the development of specification documents for FFV1, a lossless intra-frame video codec. The goals of this specification effort are defined within the charter of the cellar working group of the Internet Engineering Task Force. Information within this repository should be considered in draft form. The most recent official version of the specification for FFV1 versions 0, 1 and 3 may be found at https://datatracker.ietf.org/doc/draft-ietf-cellar-ffv1/ and for FFV1 version 4 at https://datatracker.ietf.org/doc/draft-ietf-cellar-ffv1-v4/.

Formatting

The FFV1 specification was initially written in lyx. In July 2015 the formatting of the specification was transitioned to Markdown to be used with xml2rfc version 2. In August 2019 the formatting was transitioned to target xml2rfc version 3.

The Markdown version of the FFV1 specification may also be converted into XML, HTML, and text formats as an IETF RFC draft based on xml2rfc version 3. Producing the RFC formats requires mmark version 2.2.8 or higher, xml2rfc version 2.32.0 or higher, xmlstarlet 1.6.1 or higher, pandoc 1.19.2.1 or higher, pdfcrop v1.38 or higher, and pdf2svg 0.2.3 or higher.

Note that within ffv1.md lines that are prefixed with SVGI: refer to an embedded svg image as described in https://mmark.miek.nl/post/syntax/#rfc-7991-xml-output. LaTeX expressions are provided with a SVGC: prefix in the form of SVGC:filename=LaTeX_formula. Throughout ffv1.md, ASCII-art representations are provided for each LaTeX formula with AART: prefixes. Lines prefixed with AART: MUST immediately follow the line corresponding line prefixed with SVGC:. Lines prefixed with SVGI:, SVGC:, and AART: will be converted into an element in the resulting RFC XML and thus contain both the encoded SVG data as well as optionally the ASCII art fallback.

A Makefile is provided that can produce the RFC outputs.

Version Handling

The ffv1.md file is currently intended to be used to produce documentation for both FFV1 versions 0, 1, and 3 as well as FFV1 version 4. Lines containing {V4} will be suppressed from the version 0,1,3 outputs while lines containing {V3} will be suppressed from the version 4 outputs.

Code of Conduct

Please note that this project is developed under the FFmpeg Code of Conduct. By participating in this project you agree to abide by its terms.

About

The FFV1 lossless video codec specification.

Resources

Stars

215 stars

Watchers

30 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - FFmpeg/FFV1: The FFV1 lossless video codec specification. · GitHub
Skip to content

Repository files navigation

FFV1 Specification

Introduction

This repository manages the development of specification documents for FFV1, a lossless intra-frame video codec. The goals of this specification effort are defined within the charter of the cellar working group of the Internet Engineering Task Force. Information within this repository should be considered in draft form. The most recent official version of the specification for FFV1 versions 0, 1 and 3 may be found at https://datatracker.ietf.org/doc/draft-ietf-cellar-ffv1/ and for FFV1 version 4 at https://datatracker.ietf.org/doc/draft-ietf-cellar-ffv1-v4/.

Formatting

The FFV1 specification was initially written in lyx. In July 2015 the formatting of the specification was transitioned to Markdown to be used with xml2rfc version 2. In August 2019 the formatting was transitioned to target xml2rfc version 3.

The Markdown version of the FFV1 specification may also be converted into XML, HTML, and text formats as an IETF RFC draft based on xml2rfc version 3. Producing the RFC formats requires mmark version 2.2.8 or higher, xml2rfc version 2.32.0 or higher, xmlstarlet 1.6.1 or higher, pandoc 1.19.2.1 or higher, pdfcrop v1.38 or higher, and pdf2svg 0.2.3 or higher.

Note that within ffv1.md lines that are prefixed with SVGI: refer to an embedded svg image as described in https://mmark.miek.nl/post/syntax/#rfc-7991-xml-output. LaTeX expressions are provided with a SVGC: prefix in the form of SVGC:filename=LaTeX_formula. Throughout ffv1.md, ASCII-art representations are provided for each LaTeX formula with AART: prefixes. Lines prefixed with AART: MUST immediately follow the line corresponding line prefixed with SVGC:. Lines prefixed with SVGI:, SVGC:, and AART: will be converted into an element in the resulting RFC XML and thus contain both the encoded SVG data as well as optionally the ASCII art fallback.

A Makefile is provided that can produce the RFC outputs.

Version Handling

The ffv1.md file is currently intended to be used to produce documentation for both FFV1 versions 0, 1, and 3 as well as FFV1 version 4. Lines containing {V4} will be suppressed from the version 0,1,3 outputs while lines containing {V3} will be suppressed from the version 4 outputs.

Code of Conduct

Please note that this project is developed under the FFmpeg Code of Conduct. By participating in this project you agree to abide by its terms.

About

The FFV1 lossless video codec specification.

Resources

Stars

215 stars

Watchers

30 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - FFmpeg/FFV1: The FFV1 lossless video codec specification. · GitHub
Skip to content

Repository files navigation

FFV1 Specification

Introduction

This repository manages the development of specification documents for FFV1, a lossless intra-frame video codec. The goals of this specification effort are defined within the charter of the cellar working group of the Internet Engineering Task Force. Information within this repository should be considered in draft form. The most recent official version of the specification for FFV1 versions 0, 1 and 3 may be found at https://datatracker.ietf.org/doc/draft-ietf-cellar-ffv1/ and for FFV1 version 4 at https://datatracker.ietf.org/doc/draft-ietf-cellar-ffv1-v4/.

Formatting

The FFV1 specification was initially written in lyx. In July 2015 the formatting of the specification was transitioned to Markdown to be used with xml2rfc version 2. In August 2019 the formatting was transitioned to target xml2rfc version 3.

The Markdown version of the FFV1 specification may also be converted into XML, HTML, and text formats as an IETF RFC draft based on xml2rfc version 3. Producing the RFC formats requires mmark version 2.2.8 or higher, xml2rfc version 2.32.0 or higher, xmlstarlet 1.6.1 or higher, pandoc 1.19.2.1 or higher, pdfcrop v1.38 or higher, and pdf2svg 0.2.3 or higher.

Note that within ffv1.md lines that are prefixed with SVGI: refer to an embedded svg image as described in https://mmark.miek.nl/post/syntax/#rfc-7991-xml-output. LaTeX expressions are provided with a SVGC: prefix in the form of SVGC:filename=LaTeX_formula. Throughout ffv1.md, ASCII-art representations are provided for each LaTeX formula with AART: prefixes. Lines prefixed with AART: MUST immediately follow the line corresponding line prefixed with SVGC:. Lines prefixed with SVGI:, SVGC:, and AART: will be converted into an element in the resulting RFC XML and thus contain both the encoded SVG data as well as optionally the ASCII art fallback.

A Makefile is provided that can produce the RFC outputs.

Version Handling

The ffv1.md file is currently intended to be used to produce documentation for both FFV1 versions 0, 1, and 3 as well as FFV1 version 4. Lines containing {V4} will be suppressed from the version 0,1,3 outputs while lines containing {V3} will be suppressed from the version 4 outputs.

Code of Conduct

Please note that this project is developed under the FFmpeg Code of Conduct. By participating in this project you agree to abide by its terms.

About

The FFV1 lossless video codec specification.

Resources

Stars

215 stars

Watchers

30 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - FFmpeg/FFV1: The FFV1 lossless video codec specification. · GitHub
Skip to content

Repository files navigation

FFV1 Specification

Introduction

This repository manages the development of specification documents for FFV1, a lossless intra-frame video codec. The goals of this specification effort are defined within the charter of the cellar working group of the Internet Engineering Task Force. Information within this repository should be considered in draft form. The most recent official version of the specification for FFV1 versions 0, 1 and 3 may be found at https://datatracker.ietf.org/doc/draft-ietf-cellar-ffv1/ and for FFV1 version 4 at https://datatracker.ietf.org/doc/draft-ietf-cellar-ffv1-v4/.

Formatting

The FFV1 specification was initially written in lyx. In July 2015 the formatting of the specification was transitioned to Markdown to be used with xml2rfc version 2. In August 2019 the formatting was transitioned to target xml2rfc version 3.

The Markdown version of the FFV1 specification may also be converted into XML, HTML, and text formats as an IETF RFC draft based on xml2rfc version 3. Producing the RFC formats requires mmark version 2.2.8 or higher, xml2rfc version 2.32.0 or higher, xmlstarlet 1.6.1 or higher, pandoc 1.19.2.1 or higher, pdfcrop v1.38 or higher, and pdf2svg 0.2.3 or higher.

Note that within ffv1.md lines that are prefixed with SVGI: refer to an embedded svg image as described in https://mmark.miek.nl/post/syntax/#rfc-7991-xml-output. LaTeX expressions are provided with a SVGC: prefix in the form of SVGC:filename=LaTeX_formula. Throughout ffv1.md, ASCII-art representations are provided for each LaTeX formula with AART: prefixes. Lines prefixed with AART: MUST immediately follow the line corresponding line prefixed with SVGC:. Lines prefixed with SVGI:, SVGC:, and AART: will be converted into an element in the resulting RFC XML and thus contain both the encoded SVG data as well as optionally the ASCII art fallback.

A Makefile is provided that can produce the RFC outputs.

Version Handling

The ffv1.md file is currently intended to be used to produce documentation for both FFV1 versions 0, 1, and 3 as well as FFV1 version 4. Lines containing {V4} will be suppressed from the version 0,1,3 outputs while lines containing {V3} will be suppressed from the version 4 outputs.

Code of Conduct

Please note that this project is developed under the FFmpeg Code of Conduct. By participating in this project you agree to abide by its terms.

About

The FFV1 lossless video codec specification.

Resources

Stars

215 stars

Watchers

30 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - FFmpeg/FFV1: The FFV1 lossless video codec specification. · GitHub
Skip to content

Repository files navigation

FFV1 Specification

Introduction

This repository manages the development of specification documents for FFV1, a lossless intra-frame video codec. The goals of this specification effort are defined within the charter of the cellar working group of the Internet Engineering Task Force. Information within this repository should be considered in draft form. The most recent official version of the specification for FFV1 versions 0, 1 and 3 may be found at https://datatracker.ietf.org/doc/draft-ietf-cellar-ffv1/ and for FFV1 version 4 at https://datatracker.ietf.org/doc/draft-ietf-cellar-ffv1-v4/.

Formatting

The FFV1 specification was initially written in lyx. In July 2015 the formatting of the specification was transitioned to Markdown to be used with xml2rfc version 2. In August 2019 the formatting was transitioned to target xml2rfc version 3.

The Markdown version of the FFV1 specification may also be converted into XML, HTML, and text formats as an IETF RFC draft based on xml2rfc version 3. Producing the RFC formats requires mmark version 2.2.8 or higher, xml2rfc version 2.32.0 or higher, xmlstarlet 1.6.1 or higher, pandoc 1.19.2.1 or higher, pdfcrop v1.38 or higher, and pdf2svg 0.2.3 or higher.

Note that within ffv1.md lines that are prefixed with SVGI: refer to an embedded svg image as described in https://mmark.miek.nl/post/syntax/#rfc-7991-xml-output. LaTeX expressions are provided with a SVGC: prefix in the form of SVGC:filename=LaTeX_formula. Throughout ffv1.md, ASCII-art representations are provided for each LaTeX formula with AART: prefixes. Lines prefixed with AART: MUST immediately follow the line corresponding line prefixed with SVGC:. Lines prefixed with SVGI:, SVGC:, and AART: will be converted into an element in the resulting RFC XML and thus contain both the encoded SVG data as well as optionally the ASCII art fallback.

A Makefile is provided that can produce the RFC outputs.

Version Handling

The ffv1.md file is currently intended to be used to produce documentation for both FFV1 versions 0, 1, and 3 as well as FFV1 version 4. Lines containing {V4} will be suppressed from the version 0,1,3 outputs while lines containing {V3} will be suppressed from the version 4 outputs.

Code of Conduct

Please note that this project is developed under the FFmpeg Code of Conduct. By participating in this project you agree to abide by its terms.

About

The FFV1 lossless video codec specification.

Resources

Stars

215 stars

Watchers

30 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - FFmpeg/FFV1: The FFV1 lossless video codec specification. · GitHub
Skip to content

Repository files navigation

FFV1 Specification

Introduction

This repository manages the development of specification documents for FFV1, a lossless intra-frame video codec. The goals of this specification effort are defined within the charter of the cellar working group of the Internet Engineering Task Force. Information within this repository should be considered in draft form. The most recent official version of the specification for FFV1 versions 0, 1 and 3 may be found at https://datatracker.ietf.org/doc/draft-ietf-cellar-ffv1/ and for FFV1 version 4 at https://datatracker.ietf.org/doc/draft-ietf-cellar-ffv1-v4/.

Formatting

The FFV1 specification was initially written in lyx. In July 2015 the formatting of the specification was transitioned to Markdown to be used with xml2rfc version 2. In August 2019 the formatting was transitioned to target xml2rfc version 3.

The Markdown version of the FFV1 specification may also be converted into XML, HTML, and text formats as an IETF RFC draft based on xml2rfc version 3. Producing the RFC formats requires mmark version 2.2.8 or higher, xml2rfc version 2.32.0 or higher, xmlstarlet 1.6.1 or higher, pandoc 1.19.2.1 or higher, pdfcrop v1.38 or higher, and pdf2svg 0.2.3 or higher.

Note that within ffv1.md lines that are prefixed with SVGI: refer to an embedded svg image as described in https://mmark.miek.nl/post/syntax/#rfc-7991-xml-output. LaTeX expressions are provided with a SVGC: prefix in the form of SVGC:filename=LaTeX_formula. Throughout ffv1.md, ASCII-art representations are provided for each LaTeX formula with AART: prefixes. Lines prefixed with AART: MUST immediately follow the line corresponding line prefixed with SVGC:. Lines prefixed with SVGI:, SVGC:, and AART: will be converted into an element in the resulting RFC XML and thus contain both the encoded SVG data as well as optionally the ASCII art fallback.

A Makefile is provided that can produce the RFC outputs.

Version Handling

The ffv1.md file is currently intended to be used to produce documentation for both FFV1 versions 0, 1, and 3 as well as FFV1 version 4. Lines containing {V4} will be suppressed from the version 0,1,3 outputs while lines containing {V3} will be suppressed from the version 4 outputs.

Code of Conduct

Please note that this project is developed under the FFmpeg Code of Conduct. By participating in this project you agree to abide by its terms.

About

The FFV1 lossless video codec specification.

Resources

Stars

215 stars

Watchers

30 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - FFmpeg/FFV1: The FFV1 lossless video codec specification. · GitHub
Skip to content

Repository files navigation

FFV1 Specification

Introduction

This repository manages the development of specification documents for FFV1, a lossless intra-frame video codec. The goals of this specification effort are defined within the charter of the cellar working group of the Internet Engineering Task Force. Information within this repository should be considered in draft form. The most recent official version of the specification for FFV1 versions 0, 1 and 3 may be found at https://datatracker.ietf.org/doc/draft-ietf-cellar-ffv1/ and for FFV1 version 4 at https://datatracker.ietf.org/doc/draft-ietf-cellar-ffv1-v4/.

Formatting

The FFV1 specification was initially written in lyx. In July 2015 the formatting of the specification was transitioned to Markdown to be used with xml2rfc version 2. In August 2019 the formatting was transitioned to target xml2rfc version 3.

The Markdown version of the FFV1 specification may also be converted into XML, HTML, and text formats as an IETF RFC draft based on xml2rfc version 3. Producing the RFC formats requires mmark version 2.2.8 or higher, xml2rfc version 2.32.0 or higher, xmlstarlet 1.6.1 or higher, pandoc 1.19.2.1 or higher, pdfcrop v1.38 or higher, and pdf2svg 0.2.3 or higher.

Note that within ffv1.md lines that are prefixed with SVGI: refer to an embedded svg image as described in https://mmark.miek.nl/post/syntax/#rfc-7991-xml-output. LaTeX expressions are provided with a SVGC: prefix in the form of SVGC:filename=LaTeX_formula. Throughout ffv1.md, ASCII-art representations are provided for each LaTeX formula with AART: prefixes. Lines prefixed with AART: MUST immediately follow the line corresponding line prefixed with SVGC:. Lines prefixed with SVGI:, SVGC:, and AART: will be converted into an element in the resulting RFC XML and thus contain both the encoded SVG data as well as optionally the ASCII art fallback.

A Makefile is provided that can produce the RFC outputs.

Version Handling

The ffv1.md file is currently intended to be used to produce documentation for both FFV1 versions 0, 1, and 3 as well as FFV1 version 4. Lines containing {V4} will be suppressed from the version 0,1,3 outputs while lines containing {V3} will be suppressed from the version 4 outputs.

Code of Conduct

Please note that this project is developed under the FFmpeg Code of Conduct. By participating in this project you agree to abide by its terms.

About

The FFV1 lossless video codec specification.

Resources

Stars

215 stars

Watchers

30 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - FFmpeg/FFV1: The FFV1 lossless video codec specification. · GitHub
Skip to content

Repository files navigation

FFV1 Specification

Introduction

This repository manages the development of specification documents for FFV1, a lossless intra-frame video codec. The goals of this specification effort are defined within the charter of the cellar working group of the Internet Engineering Task Force. Information within this repository should be considered in draft form. The most recent official version of the specification for FFV1 versions 0, 1 and 3 may be found at https://datatracker.ietf.org/doc/draft-ietf-cellar-ffv1/ and for FFV1 version 4 at https://datatracker.ietf.org/doc/draft-ietf-cellar-ffv1-v4/.

Formatting

The FFV1 specification was initially written in lyx. In July 2015 the formatting of the specification was transitioned to Markdown to be used with xml2rfc version 2. In August 2019 the formatting was transitioned to target xml2rfc version 3.

The Markdown version of the FFV1 specification may also be converted into XML, HTML, and text formats as an IETF RFC draft based on xml2rfc version 3. Producing the RFC formats requires mmark version 2.2.8 or higher, xml2rfc version 2.32.0 or higher, xmlstarlet 1.6.1 or higher, pandoc 1.19.2.1 or higher, pdfcrop v1.38 or higher, and pdf2svg 0.2.3 or higher.

Note that within ffv1.md lines that are prefixed with SVGI: refer to an embedded svg image as described in https://mmark.miek.nl/post/syntax/#rfc-7991-xml-output. LaTeX expressions are provided with a SVGC: prefix in the form of SVGC:filename=LaTeX_formula. Throughout ffv1.md, ASCII-art representations are provided for each LaTeX formula with AART: prefixes. Lines prefixed with AART: MUST immediately follow the line corresponding line prefixed with SVGC:. Lines prefixed with SVGI:, SVGC:, and AART: will be converted into an element in the resulting RFC XML and thus contain both the encoded SVG data as well as optionally the ASCII art fallback.

A Makefile is provided that can produce the RFC outputs.

Version Handling

The ffv1.md file is currently intended to be used to produce documentation for both FFV1 versions 0, 1, and 3 as well as FFV1 version 4. Lines containing {V4} will be suppressed from the version 0,1,3 outputs while lines containing {V3} will be suppressed from the version 4 outputs.

Code of Conduct

Please note that this project is developed under the FFmpeg Code of Conduct. By participating in this project you agree to abide by its terms.

About

The FFV1 lossless video codec specification.

Resources

Stars

215 stars

Watchers

30 watching

Forks

Releases

Packages

Used by

Contributors

Languages