- 18 demos aus refactor/didaktik-rewrite-2026 cherry-picked (aliasing-paar, byte-fuer-byte, container-vs-codec, drei-dateien, jpeg-pipeline, kap02-05-eroeffner, kb-vs-kib, nyquist-diagram, pivot-signal-zu-byte, psychoakustik/psychovisualitaet-grafik, raster-vs-vektor, summary-kap02, summary-organizer, usb-c-drei-achsen) - barn-rgb.png + barn-cmyk.png neu generiert (analog zu ybcbr.webp, kanaltrennung mit korrekter k-extraktion) - lv-original-vs-fake.jpg + 02-bild-audio-video.md slides wired up
173 lines
5.1 KiB
HTML
173 lines
5.1 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Container ≠ Codec</title>
|
|
<style>
|
|
:root {
|
|
--dark: #1a1a2e;
|
|
--muted: #6b7280;
|
|
--soft: #f8fafc;
|
|
--border: #cbd5e1;
|
|
--hl: #d63384;
|
|
--container: #2563eb;
|
|
--video: #7c3aed;
|
|
--audio: #ea580c;
|
|
--subs: #16a34a;
|
|
--meta: #94a3b8;
|
|
}
|
|
html, body { margin: 0; padding: 0; background: #fff; font-family: system-ui, -apple-system, sans-serif; color: var(--dark); }
|
|
body { padding: 28px 40px; }
|
|
h1 { text-align: center; margin: 0 0 6px; font-size: 1.75rem; }
|
|
.sub { text-align: center; color: var(--muted); margin-bottom: 22px; font-size: 1.05rem; }
|
|
.sub strong { color: var(--dark); }
|
|
|
|
.scene {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 22px;
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.container-box {
|
|
border: 3px dashed var(--container);
|
|
border-radius: 14px;
|
|
padding: 14px 16px 18px;
|
|
background: #fff;
|
|
position: relative;
|
|
}
|
|
.container-tag {
|
|
position: absolute;
|
|
top: -12px;
|
|
left: 18px;
|
|
background: #fff;
|
|
padding: 0 10px;
|
|
font-family: ui-monospace, monospace;
|
|
font-size: 0.78rem;
|
|
font-weight: 700;
|
|
color: var(--container);
|
|
}
|
|
.container-label {
|
|
text-align: center;
|
|
font-size: 0.7rem;
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.12em;
|
|
color: var(--muted);
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.track {
|
|
display: grid;
|
|
grid-template-columns: 90px 1fr;
|
|
gap: 12px;
|
|
align-items: center;
|
|
background: var(--soft);
|
|
border-left: 4px solid;
|
|
border-radius: 6px;
|
|
padding: 9px 14px;
|
|
margin-bottom: 6px;
|
|
}
|
|
.track.video { border-left-color: var(--video); }
|
|
.track.audio { border-left-color: var(--audio); }
|
|
.track.subs { border-left-color: var(--subs); }
|
|
.track.meta { border-left-color: var(--meta); }
|
|
|
|
.track-label {
|
|
font-size: 0.78rem;
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.08em;
|
|
}
|
|
.track.video .track-label { color: var(--video); }
|
|
.track.audio .track-label { color: var(--audio); }
|
|
.track.subs .track-label { color: var(--subs); }
|
|
.track.meta .track-label { color: var(--meta); }
|
|
|
|
.codec-pill {
|
|
display: inline-block;
|
|
font-family: ui-monospace, monospace;
|
|
font-size: 0.82rem;
|
|
background: #fff;
|
|
border: 1px solid var(--border);
|
|
padding: 2px 9px;
|
|
border-radius: 4px;
|
|
color: var(--dark);
|
|
}
|
|
|
|
.verdict {
|
|
margin-top: 22px;
|
|
max-width: 1200px;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
text-align: center;
|
|
border: 2px solid var(--hl);
|
|
border-radius: 12px;
|
|
padding: 14px 22px;
|
|
}
|
|
.verdict-q { font-size: 1.1rem; font-weight: 700; color: var(--hl); }
|
|
.verdict-a { font-size: 0.93rem; color: var(--dark); margin-top: 4px; }
|
|
.verdict-a strong { color: var(--hl); }
|
|
.verdict-a code { font-family: ui-monospace, monospace; background: var(--soft); padding: 1px 5px; border-radius: 4px; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>Container ≠ Codec</h1>
|
|
<div class="sub">Die <strong>Hülle</strong> sagt nichts darüber, <strong>wie</strong> der Inhalt komprimiert wurde.</div>
|
|
|
|
<div class="scene">
|
|
|
|
<div class="container-box">
|
|
<span class="container-tag">.mp4</span>
|
|
<div class="container-label">Datei A — älterer Stand</div>
|
|
|
|
<div class="track video">
|
|
<span class="track-label">Video</span>
|
|
<span><span class="codec-pill">H.264 / AVC</span> · 1080p · 8 Mbit/s</span>
|
|
</div>
|
|
<div class="track audio">
|
|
<span class="track-label">Audio</span>
|
|
<span><span class="codec-pill">AAC</span> · 192 kbit/s · Stereo</span>
|
|
</div>
|
|
<div class="track subs">
|
|
<span class="track-label">Untertitel</span>
|
|
<span><span class="codec-pill">TTML</span> · de + en</span>
|
|
</div>
|
|
<div class="track meta">
|
|
<span class="track-label">Metadaten</span>
|
|
<span>Titel · Dauer · Datum · Bitrate</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="container-box">
|
|
<span class="container-tag">.mp4</span>
|
|
<div class="container-label">Datei B — modern</div>
|
|
|
|
<div class="track video">
|
|
<span class="track-label">Video</span>
|
|
<span><span class="codec-pill">AV1</span> · 4K · 25 Mbit/s</span>
|
|
</div>
|
|
<div class="track audio">
|
|
<span class="track-label">Audio</span>
|
|
<span><span class="codec-pill">Opus</span> · 128 kbit/s · 5.1 Surround</span>
|
|
</div>
|
|
<div class="track subs">
|
|
<span class="track-label">Untertitel</span>
|
|
<span><span class="codec-pill">WebVTT</span> · de + en + ja</span>
|
|
</div>
|
|
<div class="track meta">
|
|
<span class="track-label">Metadaten</span>
|
|
<span>Titel · Dauer · Datum · HDR-Info</span>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="verdict">
|
|
<div class="verdict-q">Gleiche Endung. Anderes Innenleben.</div>
|
|
<div class="verdict-a"><strong>Container</strong> = Verpackung (<code>.mp4</code>, <code>.mkv</code>, <code>.webm</code>). <strong>Codec</strong> = Komprimierer (H.264 / AV1 / AAC / Opus). <strong>Tool:</strong> <code>mediainfo <datei></code> zeigt beides.</div>
|
|
</div>
|
|
</body>
|
|
</html>
|