
Stato: da scrivere
Volume 8 — Video
Riprodurre, catturare ed elaborare video in un'applicazione Avalonia, con FFmpeg in una build che si può distribuire, e le strade per portare i fotogrammi nella finestra misurate una per una.
28 capitoli · circa 435 pagine (stima) · da scrivere. Il video digitale (codec, contenitori, spazi colore), la riproduzione con l'audio sincronizzato, la webcam e lo schermo come sorgenti, l'elaborazione e la produzione di file. I progetti: un lettore video, un'applicazione per la webcam, un registratore dello schermo, un convertitore e un lettore multimediale completo.
Indice dei capitoli
La seconda metà del multimedia: il volume 7 è l'audio, questo è il video. Il video tocca più cose di qualunque altro argomento della collana: file e codec, decodifica sulla scheda video, texture, thread, l'audio che deve restare sincronizzato. Il libro si legge da solo: si apre con il ripasso dell'audio del volume 7 e dei pezzi di grafica che servono (texture, compositore, immagini condivise).
| Parte | Capitoli | Pagine |
|---|---|---|
| Prima di cominciare e ripasso | — | 25 |
| Prima · Il video digitale | VIII.1–VIII.6 | 80 |
| Seconda · Riprodurre | VIII.7–VIII.15 | 120 |
| Terza · Catturare, elaborare, produrre | VIII.16–VIII.23 | 110 |
| Progetti | VIII.24–VIII.28 | 70 |
| Appendici | A–C | 30 |
| Totale | 28 capitoli | ≈ 435 |
Prima di cominciare ○
Prefazione · la collana · che cosa serve dei volumi precedenti · la macchina del libro, i codec hardware · le librerie e le licenze (LGPL e GPL spiegate per bene).
Ripasso: l'audio del volume 7 e la grafica che serve ○
Buffer, thread audio e latenza (volume 7); il controllo che disegna e il compositore (volume 3); texture e immagini condivise con ICompositionGpuInterop (volumi 4 e 5); i pixel e i formati (volume 4).
Parte prima — Il video digitale
- VIII.1 Il video digitale ○ — fotogrammi, frequenza, risoluzione, spazi di colore (YUV, RGB), sottocampionamento del colore; che cosa pesa un secondo di video non compresso.
- VIII.2 Codec e container ○ — H.264, H.265, VP9, AV1; MP4, MKV, WebM; fotogrammi chiave, GOP, bitrate.
- VIII.3 Architettura multimediale e motori video ○ — FFmpeg, LibVLC, le API dei sistemi (Media Foundation, AVFoundation, GStreamer); che cosa fa ognuno, con quale licenza.
- VIII.4 Le licenze del video ○ — LGPL e GPL in un programma che si vende: librerie separate, che cosa distribuire, che cosa scrivere; i brevetti dei codec.
- VIII.5 Leggere un file con FFmpeg ○ — FFmpeg.AutoGen: aprire, trovare i flussi, leggere i pacchetti; i metadati.
- VIII.6 Decodificare ○ — dai pacchetti ai fotogrammi; da YUV a RGB, sulla CPU e in uno shader; quanto costa ognuno.
Parte seconda — Riprodurre
- VIII.7 Il video dentro un controllo Avalonia ○ — tre strade: fotogrammi copiati in una bitmap, texture OpenGL, immagini condivise con il compositore; le misure di tutte e tre.
- VIII.8 Riprodurre con LibVLC ○ — LibVLCSharp: il lettore pronto, come si mette nella finestra, che cosa non si controlla.
- VIII.9 Play, pausa, seek, velocità ○ — i comandi del lettore; cercare un punto fra due fotogrammi chiave.
- VIII.10 Sincronizzare audio e video ○ — l'orologio dell'audio comanda; fotogrammi in ritardo, saltati, ripetuti; misurare la deriva.
- VIII.11 Tracce audio e sottotitoli ○ — più lingue; sottotitoli SRT e ASS disegnati sopra il video.
- VIII.12 Accelerazione hardware ○ — decodifica sulla scheda video (D3D11VA, VA-API, VideoToolbox): quando c'è, quanto fa risparmiare, come ripiegare.
- VIII.13 Fotogrammi e miniature ○ — estrarre un fotogramma, una striscia di miniature, la miniatura sotto il cursore della timeline.
- VIII.14 Streaming e buffering ○ — HTTP, HLS e DASH; il buffer che si svuota; la qualità che si adatta alla rete.
- VIII.15 Video ad alta risoluzione e HDR ○ — 4K e oltre, 10 bit, HDR10; che cosa si vede su uno schermo normale.
Parte terza — Catturare, elaborare, produrre
- VIII.16 Webcam e dispositivi di acquisizione ○ — elencare, scegliere formati e risoluzioni, catturare.
- VIII.17 Catturare lo schermo ○ — una finestra o lo schermo intero, sui tre sistemi, con i permessi.
- VIII.18 Registrare video ○ — codificare con FFmpeg: codec, qualità, dimensione del file; audio e video insieme.
- VIII.19 Elaborare i fotogrammi in tempo reale ○ — filtri con Skia e con shader OpenGL; dalla webcam alla finestra senza perdere fotogrammi.
- VIII.20 Transcodificare ○ — cambiare formato, ridurre, tagliare; lavorare in un altro thread con l'avanzamento.
- VIII.21 Montaggio semplice ○ — tagliare e unire spezzoni senza ricodificare, quando si può.
- VIII.22 Analizzare il video ○ — movimento, cambi di scena, istogrammi nel tempo.
- VIII.23 Misurare un lettore ○ — fotogrammi persi, latenza, uso della CPU e della scheda video, memoria.
Progetti
- VIII.24 Lettore video ○ — timeline con miniature, sottotitoli, tracce, istantanee.
- VIII.25 Applicazione di acquisizione webcam ○ — anteprima, filtri dal vivo, registrazione.
- VIII.26 Registratore dello schermo ○ — area, audio del sistema e microfono, file pronto da condividere.
- VIII.27 Convertitore video ○ — una coda di file, profili, avanzamento, annullamento.
- VIII.28 Lettore multimediale completo ○ — audio e video, playlist, libreria, il lettore musicale del volume 7 e quello video in un programma solo.
Appendici
A. Gli inciampi del video ○ · B. Riferimento rapido ○ · C. Glossario ○
Stato dei capitoli: ✔ scritto · ✎ in bozza · ○ da scrivere.
Gli esempi del volume
Gli esempi di questo volume arriveranno con i suoi capitoli.