Avalonia solo in codiceEnglish

Volumi

Volume 8 — Video

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.

Gli esempi del volume

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).

ParteCapitoliPagine
Prima di cominciare e ripasso—25
Prima · Il video digitaleVIII.1–VIII.680
Seconda · RiprodurreVIII.7–VIII.15120
Terza · Catturare, elaborare, produrreVIII.16–VIII.23110
ProgettiVIII.24–VIII.2870
AppendiciA–C30
Totale28 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.