223015b: container-vs-codec eigene demo + CJK-fonts + daten-grundlagen rename + reword punkt-platzhalter
user-feedback issues: 1. container-codec-diagram.png war stock-asset (vermutlich aus lehrbuch übernommen) — user: 'das kannst du nicht wiederverwenden, bau deine eigene grafik' → neue demo container-vs-codec.html mit zwei .mp4-containern side-by-side, je 4 spuren (video lila, audio orange, untertitel grün, meta grau): datei A älterer stand (H.264/AAC/TTML), datei B modern (AV1/Opus/WebVTT+HDR). verdict 'gleiche endung, anderes innenleben + mediainfo zeigt beides'. dashed-border-container + farbige spur-rahmen. eigener stil 2. CJK-zeichen (中, こんにちは) pixelig (unifont bitmap) statt sauberer fonts → google-fonts @import (Noto Sans JP + SC) + font-family in body + code-tags 3. 'Datenfundamentale' kein deutsches wort (nicht im duden) → git mv 01-datenfundamentale.md → 01-daten-grundlagen.md (+bogen-doc), Makefile aktualisiert, text-replace in 4 docs 4. 'Hex-Editoren zeigen \`.\` als Platzhalter' kleiner punkt schwer lesbar → 'zeigen einen Punkt oder ein anderes Ersatzzeichen' klausurfolien regeneriert (27 slides)
This commit is contained in:
@@ -0,0 +1,172 @@
|
||||
<!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>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
Reference in New Issue
Block a user