Avalonia Code OnlyItaliano

Volumes

Volume 8 — Video

Status: to be written

Volume 8 — Video

Playing, capturing and processing video in an Avalonia application, with FFmpeg in a build you can distribute, and the ways to bring frames into the window measured one by one.

28 chapters · about 435 pages (estimate) · to be written. Digital video (codecs, containers, color spaces), playback with synchronized audio, webcam and screen as sources, processing and producing files. The projects: a video player, a webcam application, a screen recorder, a converter and a complete media player.

The examples of the volume

Table of contents

The table of contents is in Italian, as the volume is written in Italian; the English edition follows.

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 ○

Chapter status: ✔ written · ✎ draft · ○ to be written.

The examples of the volume

The examples of this volume will come with its chapters.