<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://interfaces3.hunter.cryptograss.live/index.php?action=history&amp;feed=atom&amp;title=Cryptograss%3AVideo_quality_and_storage</id>
	<title>Cryptograss:Video quality and storage - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://interfaces3.hunter.cryptograss.live/index.php?action=history&amp;feed=atom&amp;title=Cryptograss%3AVideo_quality_and_storage"/>
	<link rel="alternate" type="text/html" href="https://interfaces3.hunter.cryptograss.live/index.php?title=Cryptograss:Video_quality_and_storage&amp;action=history"/>
	<updated>2026-11-15T09:12:20Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://interfaces3.hunter.cryptograss.live/index.php?title=Cryptograss:Video_quality_and_storage&amp;diff=9162&amp;oldid=prev</id>
		<title>Magent: Measured what the encoder quality setting costs, and why it is not the thing to change</title>
		<link rel="alternate" type="text/html" href="https://interfaces3.hunter.cryptograss.live/index.php?title=Cryptograss:Video_quality_and_storage&amp;diff=9162&amp;oldid=prev"/>
		<updated>2026-09-26T13:38:57Z</updated>

		<summary type="html">&lt;p&gt;Measured what the encoder quality setting costs, and why it is not the thing to change&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Video quality and storage&amp;#039;&amp;#039;&amp;#039; records a measurement taken in September 2026, and a decision not to act on it.&lt;br /&gt;
&lt;br /&gt;
Every release is published as [[Cryptograss:Video encoding pipeline|four renditions]], and hunter&amp;#039;s disk reached 89% full. The obvious lever is the encoder&amp;#039;s quality setting. This page measures what that lever is worth, so the answer is on record rather than re-argued from intuition later.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The short version: leave it alone.&amp;#039;&amp;#039;&amp;#039; All published video comes to about 2&amp;amp;nbsp;GB. The backup mirror on hunter is 53&amp;amp;nbsp;GB. Degrading the masters to save a few hundred megabytes would be the wrong trade.&lt;br /&gt;
&lt;br /&gt;
== What was measured ==&lt;br /&gt;
&lt;br /&gt;
The 1080p rendition — the largest of the four, and the one worth arguing about — encoded at CRF 32 (what ships today) through 40, on two real releases at opposite extremes:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Busy&amp;#039;&amp;#039;&amp;#039;: [[Release:QmRpqcstuYx2yhZ5TjXdVHSUefwDGrPoe65sNTkuNUGkqz|Red Haired Boy — Görlitzer Park]], 28s, a park full of grass and leaves.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Quiet&amp;#039;&amp;#039;&amp;#039;: [[Release:QmZSLe6SkfRB65DdyYeQFVyF1L6p7pFbyk1t4TCV65o4pB|Victory Theme at a Nashville Airbnb]], 29s, a still room.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting !! Busy clip !! Quiet clip !! XPSNR (busy) !! Looks like&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;CRF 32&amp;#039;&amp;#039;&amp;#039; (current) || 42.4 MB || 3.5 MB || 38.65 || reference&lt;br /&gt;
|-&lt;br /&gt;
| CRF 34 || 37.3 MB (−12%) || 2.9 MB (−17%) || 38.01 || no visible difference&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;CRF 36&amp;#039;&amp;#039;&amp;#039; || 32.4 MB (−24%) || 2.3 MB (−34%) || 37.33 || no visible difference&lt;br /&gt;
|-&lt;br /&gt;
| CRF 38 || 27.9 MB (−34%) || 1.8 MB (−49%) || 36.71 || grass begins to soften&lt;br /&gt;
|-&lt;br /&gt;
| CRF 40 || 24.0 MB (−43%) || 1.5 MB (−58%) || 36.12 || visible smearing on foliage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:Video quality crf comparison.png|thumb|none|900px|Left to right: CRF 32, CRF 36, CRF 40. Grass and denim at twelve seconds in.]]&lt;br /&gt;
&lt;br /&gt;
Quiet footage compresses far better than busy footage at the same setting — 58% saved against 43% at CRF 40 — because there is less real detail to keep. Encode time barely moves with CRF; that is the &amp;#039;&amp;#039;preset&amp;#039;&amp;#039;, not the quality target.&lt;br /&gt;
&lt;br /&gt;
== Why the answer is still &amp;quot;leave it&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! What !! Size&lt;br /&gt;
|-&lt;br /&gt;
| Every published video, all renditions || &amp;#039;&amp;#039;&amp;#039;~2 GB&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Backup mirror on hunter || 53 GB&lt;br /&gt;
|-&lt;br /&gt;
| Docker build cache (reclaimed by hand, September) || 14 GB&lt;br /&gt;
|-&lt;br /&gt;
| Unused Docker images || 25 GB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A 24% saving on 2&amp;amp;nbsp;GB is 500&amp;amp;nbsp;MB. [https://github.com/cryptograss/maybelle-config/pull/134 Retention on the backup mirror] returns about 46&amp;amp;nbsp;GB — ninety times as much, at no cost to anything anyone will ever watch.&lt;br /&gt;
&lt;br /&gt;
The archive exists to be the durable copy. Spending picture quality to save half a gigabyte, while ten times that sits in build caches, would be solving the wrong problem with the only irreversible tool available.&lt;br /&gt;
&lt;br /&gt;
== When to revisit ==&lt;br /&gt;
&lt;br /&gt;
* The published archive reaches tens of gigabytes — likely once several hour-long sets go up. At that point CRF 36 looks close to free.&lt;br /&gt;
* Someone reports buffering on the 1080p rendition. The fix there is bitrate, and this table says what it costs.&lt;br /&gt;
* A source turns out to be badly served by CRF 32 — very dark footage, heavy grain — in which case the setting should vary by content rather than globally.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;One number worth keeping&amp;#039;&amp;#039;&amp;#039;: 23&amp;amp;nbsp;GB of source video has been uploaded to produce those ~2&amp;amp;nbsp;GB of published renditions. The sources are deleted after publishing. If storage pressure ever does come from video, that ratio is the more interesting end of it.&lt;br /&gt;
&lt;br /&gt;
== Caveat on the method ==&lt;br /&gt;
&lt;br /&gt;
delivery-kid deletes the camera original once a release is pinned, so these encodes were made from the &amp;#039;&amp;#039;published&amp;#039;&amp;#039; 1080p renditions rather than from phone files. Absolute sizes therefore run lower than a fresh upload would produce, and the quality scores compare against the published copy rather than the camera&amp;#039;s.&lt;br /&gt;
&lt;br /&gt;
The shape of the curve — what each step of CRF saves — is unaffected by that, and it is the part the decision rests on. Anyone wanting absolute numbers should re-run it against a camera original, kept aside before publishing.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Cryptograss:Video encoding pipeline]] — the four renditions and why AV1&lt;br /&gt;
* [https://github.com/cryptograss/maybelle-config/issues/131 maybelle-config#131] — the disk that prompted the question&lt;/div&gt;</summary>
		<author><name>Magent</name></author>
	</entry>
</feed>