Conversioni di formato

Osservazioni introduttive

  • La scansione di un breve estratto, tratto da un film amatoriale in 9,5 mm, è stata effettuata da Mirco Santi in due formati:
    • TIFF alla risoluzione di 2048 x 1556 pixel e con una campionatura di 16 bit lineari per ogni canale colore.
    • DPX alla risoluzione di 2048 x 1556 pixel e con una campionatura di 10 bit logaritmici per ogni canale colore.
    In ambedue i casi si tratta dello stesso «overscan».
  • Abbiamo scelto di «tagliare» l’immagine in modo fedele al formato d’origine, di rimpiccolire il formato a un’altezza di 1080 pixel e di inserirlo nel formato standard HD di 1920 x 1080 pixel (aggiungendo, ovviamente, delle bande nere ai lati).

    Corretto inserimento di un’immagine in 4:3 nel 16:9 della HD (in alto)
    e calcolo dei parametri per il caso che abbiamo trattato (in basso).

  • Quali file per l’uso professionale – spesso chiamati «mezzanine» – abbiamo scelto Apple ProRes in tutte le varianti 4:2:2. Avremmo anche potuto scegliere alcune declinazioni del formato Avid DNxHD, per esempio, in ordine di qualità decrescente:
      -c:v dnxhd -b:v 175M
      -c:v dnxhd -b:v 115M
      -c:v dnxhd -b:v 80M
      -c:v dnxhd -b:v 36M
    
    La gestione dei parametri è tuttavia più fastidiosa in DNxHD. Inoltre Avid Media Composer può direttamente leggere i formati ProRes.
  • Quali file di visualizzazione abbiamo scelto il container MPEG-4 e il popolare codec H.264 con differenti gradi di compressione.

Comandi ffmpeg

# Il segno \ alla fine delle linee cancella il rinvio alla prossima linea per il
# terminale o prompt. In questo modo tutte le linee vengono interpretate dal
# computer come un solo comando, ma risultano meglio leggibili per noi esseri
# umani.



# 1.  Generare il file "YUV uncompressed" in formato HD
#
#     Parametri:
#     -f          usare la libreria "image2" per gestire singole immagini
#     -r          fissare il numero di immagini al secondo in entrata
#     -i          il file d'entrata
#     -c:v        il codec video
#     -an         niente audio
#                 il file d'uscita (senza -o)
#
#     Il valore:
#       uyvy422  definisce il formato 4:2:2 "YUV uncompressed"
#
#     Filtri video:
#       crop     tagliare una parte dell'immagine
#       scale    ingrandire o rimpiccolire
#       pad      inserire in un altro formato
#
#     Utenti Macintosh: state generando file per Windows!

ffmpeg \
    -f image2 \
    -r 25 \
    -i TIFF_2K_%04d.tiff \
    -c:v rawvideo \
    -pix_fmt uyvy422 \
    -filter:v \
        "crop=1660:1361:103:35, \
        scale=1371:1080, \
        pad=1920:1080:275:0" \
    -an \
    film_YUV422.avi



# 2.  Generare il file "Apple ProRes 422 HQ" (high quality)
#
#     Parametri:
#     -c:v        il codec video
#     -profile:v  il tipo di codec ProRes:
#                   0 = proxy
#                   1 = light (LT)
#                   2 = standard
#                   3 = high quality (HQ)
#
#     Utenti Windows: state generando file per Macintosh!

ffmpeg \
    -f image2 \
    -r 25 \
    -i DPX_2K_%04d.dpx \
    -c:v prores \
    -profile:v 3 \
    -filter:v \
        "crop=1660:1361:103:35, \
        scale=1371:1080, \
        pad=1920:1080:275:0" \
    -an \
    film_ProResHQ.mov



# 3.  Generare il file con codec H.264 in container MPEG-4 usando una
#     compressione «visually lossless»
#
#     Filtro video:
#       setpts   modificare la velocità di proiezione: entrata/uscita

ffmpeg \
    -f image2 \
    -r 25 \
    -i DPX_2K_%04d.dpx \
    -c:v libx264 \
    -preset veryslow \
    -qp 18 \
    -pix_fmt yuv420p \
    -filter:v \
        "crop=1660:1361:103:35, \
        scale=1371:1080, \
        pad=1920:1080:275:0, \
        setpts=(25/16)*PTS" \
    -an \
    film_H264_visually_lossless.mp4



# 4.  Generare il file con codec H.264 in container MPEG-4 usando una
#     compressione «lossy»

ffmpeg \
    -f image2 \
    -r 25 \
    -i DPX_2K_%04d.dpx \
    -c:v libx264 \
    -preset veryslow \
    -qp 35 \
    -pix_fmt yuv420p \
    -filter:v \
        "crop=1660:1361:103:35, \
        scale=1371:1080, \
        pad=1920:1080:275:0, \
        setpts=(25/16)*PTS" \
    -an \
    film_lossy.mp4



# 5.  Generare il file con codec H.264 in container MPEG-4 usando la
#     massima compressione che il codec permette

ffmpeg \
    -f image2 \
    -r 25 \
    -i DPX_2K_%04d.dpx \
    -c:v libx264 \
    -preset veryslow \
    -qp 51 \
    -pix_fmt yuv420p \
    -filter:v \
        "crop=1660:1361:103:35, \
        scale=1371:1080, \
        pad=1920:1080:275:0, \
        setpts=(25/16)*PTS" \
    -an \
    film_assurdo.mp4

2015-11-18