[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]


Capitolo 650.   Elaborazione di formati video

L'elaborazione di file contenenti video digitale è un'operazione molto complessa. In questo capitolo vengono mostrati alcuni programmi in grado di compiere qualche operazione del genere. Si osservi però che quando si fa riferimento a un certo formato video, il programma che può elaborarlo, non sempre è in grado di gestire tutti i tipi di quel formato. In pratica, si può avere successo solo con un insieme limitato di tipi file e di situazioni.

A titolo indicativo, tra i programmi descritti in questo capitolo, si suggerisce l'uso di FFmpeg per la conversione dei formati, che sembrerebbe essere il più semplice ed efficace rispetto ad altri programmi simili.

650.1   Mpgtx

Mpgtx (1) è un programma che consente di rielaborare i file in formato MPEG (sia sequenze video MPEG-1 o MPEG-2, sia contenitori multimediali MPEG1 o MPEG2, con video e audio assieme); in particolare consente di estrarne una porzione e di riunire assieme più file in un filmato unico (anche se non sempre il risultato è ottimale). La sintassi generale è la seguente:

mpgtx comando [opzioni] file [porzioni] [file [porzioni]]...

In pratica, è obbligatorio specificare un comando, attraverso un'opzione iniziale appropriata, quindi si possono indicare altre opzioni, infine il file, o i file su cui si interviene, dove i nomi di questi file possono essere seguiti dall'indicazione della porzione o delle porzioni da utilizzare.

Il programma mpgtx prevede una serie di nomi alternativi, con i quali si dichiara implicitamente il comando iniziale.

Tabella 650.1. Alcuni comandi.

Comando Alternativa Descrizione
mpgtx -i
mpginfo
Mostra le informazioni disponibili sui file indicati.
mpgtx -s
mpgsplit
Estrae delle porzioni dai file, secondo gli intervalli specificati.
mpgtx -j
mpgjoin
Unisce più file in un filmato unico.
mpgtx -j -o -
mpgcat
Si tratta di una variante del comando precedente, dove con l'aggiunta dell'opzione -o - si invia il risultato dell'elaborazione allo standard output. In pratica, si uniscono i file specificati e il risultato viene emesso attraverso lo standard output.
mpgtx -d
mpgdemux
Separa il risultato in due file: uno contenente il filmato (senza audio), l'altro con la sola traccia audio.

Tabella 650.2. Alcune opzioni.

Opzione Descrizione
-f
Forza la sovrascrittura dei file che dovessero già essere presenti.
-b nome
Fa in modo che i file creati inizino con il nome indicato.
-o file
Questa opzione si usa solo con il comando -j e consente di specificare il nome del file da creare.

Il risultato dell'elaborazione di Mpgtx può essere costituito da uno o più file. Nel caso del comando -j, ci può essere un file solo, pertanto si può usare l'opzione -o per specificarlo, mentre negli altri casi può essere conveniente l'uso dell'opzione -b per specificare almeno la radice del nome da usare. In mancanza di tali indicazioni, la radice è chunk; nel caso specifico del comando -j, si ottiene il file chunk.mpg.

La cosa importante che rimane da definire è il modo in cui si specificano gli intervalli nei file da prendere in considerazione. Nei casi più semplici si possono usare riferimenti al tempo o alla dimensione:

[hh:]mm:ss[.dd]
nM | nk

Nel primo caso si fa riferimento a un tempo: le prime due cifre (facoltative) indicano le ore; le due cifre successive i minuti; le due cifre successive i secondi; le due cifre finali (facoltative) si riferiscono a decimi di secondo.

L'indicazione di un intervallo che esprime il tempo di durata dell'esecuzione non consente di avere sempre una corrispondenza esatta; pertanto, si tratta di un'indicazione di massima, da verificare successivamente.

Nel secondo caso, si fa riferimento a una dimensione in byte; dove nM è un valore in mebibyte (simbolo: «Mibyte»), mentre nk è un valore in kibibyte (simbolo: «Kibyte»).

Per specificare un intervallo, si indicano due valori espressi nello stesso modo (tempo o dimensione), separati da un trattino orizzontale (-). Se manca il valore iniziale, si intende l'inizio; se manca quello finale si intende la fine del file.

L'intervallo viene indicato tra parentesi quadre. Negli esempi successivi vengono mostrati diversi casi di utilizzo degli intervalli.

650.2   bbTOOL

bbTOOL (2) è un pacchetto di programmi per l'analisi di file in formato MPEG e per l'estrazione delle tracce video e audio. Generalmente, questo programma non si trova nelle distribuzioni GNU e deve essere prelevato dall'origine per poi provvedere alla sua compilazione. Si ottiene da <http://home.mindspring.com/~beyeler/bbtool17-2-linux.tar.gz>; dopo l'estrazione del contenuto, è sufficiente il comando make per ottenerne la compilazione:

tar xzvf bbtool17-2-linux.tar.gz[Invio]

cd bbtool17-2-linux[Invio]

make[Invio]

Si ottengono alcuni file eseguibili, in particolare bbdmux, che vanno copiati manualmente in una posizione appropriata del file system.

Come accennato, il programma più importante è bbdmux, che ha lo scopo di estrarre le tracce contenute in un filmato digitale:

bbdmux file_mpeg_composito [id_stream file_da_estrarre]

In pratica, ci si limita a indicare nella riga di comando il nome del file MPEG composito (contenente video, audio ed eventualmente altre informazioni, tutte assieme), seguito da un numero in esadecimale che identifica il tipo di flusso (la traccia) da estrarre e dal nome del file che si vuole ottenere con il risultato dell'estrazione.

Se si omette di specificare l'identificazione del flusso da estrarre e il nome del file da ottenere, il programma mostra l'elenco dei flussi contenuti nel file indicato come argomento. Si osservino gli esempi seguenti:

bbdmux mio_file.mpg[Invio]

bbDMUX - version 1.7, by Brent Beyeler (beyeler@home.com)
  speed increases by, Apachez and Christian Vogelgsang

Scanning for stream id's, press control-c to quit ...

File mio_file.mpg is an MPEG-1 Program Stream

Found stream id 0xBE  = Padding Stream
Found stream id 0xE0  = Video Stream 0
Found stream id 0xC0  = MPEG Audio Stream 0

Summary:

MPEG Packs = 809
System headers = 1
Padding Stream packets = 3, total bytes = 4189
MPEG Audio stream 0 packets = 129, total bytes = 259553
Video stream 0 packets = 679, total bytes = 1369447

In questo caso si vede che nel file mio_file.mpg sono contenuti principalmente un flusso video con codice E016 e un flusso audio con codice C016.

bbdmux VTS_01_0.VOB[Invio]

bbDMUX - version 1.7, by Brent Beyeler (beyeler@home.com)
  speed increases by, Apachez and Christian Vogelgsang

Scanning for stream id's, press control-c to quit ...

File VTS_01_0.VOB is an MPEG-2 Program Stream

Found stream id 0xBF  = Private Stream 2
Found stream id 0xE0  = Video Stream 0
Found stream id 0xBD  = Private Stream 1
Found stream id 0xBE  = Padding Stream

Summary:

MPEG Packs = 927
System headers = 8
Private Stream 1 packets = 14, total bytes = 23582
Padding Stream packets = 16, total bytes = 9897
Private Stream 2 packets = 16, total bytes = 15984
Video stream 0 packets = 905, total bytes = 1827232

In questo caso, la situazione è più complessa, trattandosi di un file contenuto in un DVD video. La componente video è sempre identificata dal codice E016, ma quella audio non è chiara (in questo caso si tratta comunque del codice BD16 e il file audio che si ottiene dall'estrazione è in formato AC3).

Per mostrare l'uso del programma bbdmux bastano un paio di esempi, con i quali si estraggono le componenti audio e video da un file MPEG-1 comune:

bbdmux mio_file.mpg 0xc0 mio_file.audio[Invio]

bbDMUX - version 1.7, by Brent Beyeler (beyeler@home.com)
  speed increases by, Apachez and Christian Vogelgsang

Saving stream 0xC0 into file mio_file.audio...

File mio_file.mpg is an MPEG-1 Program Stream


Summary:

MPEG Packs = 809
System headers = 1
Padding Stream packets = 3, total bytes = 4189
MPEG Audio stream 0 packets = 129, total bytes = 259553
Video stream 0 packets = 679, total bytes = 1369447

bbdmux mio_file.mpg 0xe0 mio_file.video[Invio]

bbDMUX - version 1.7, by Brent Beyeler (beyeler@home.com)
  speed increases by, Apachez and Christian Vogelgsang

Saving stream 0xE0 into file mio_file.video...

File mio_file.mpg is an MPEG-1 Program Stream


Summary:

MPEG Packs = 809
System headers = 1
Padding Stream packets = 3, total bytes = 4189
MPEG Audio stream 0 packets = 129, total bytes = 259553
Video stream 0 packets = 679, total bytes = 1369447

Così facendo si ottengono due file: mio_file.audio e mio_file.video. In questo caso, con l'aiuto del comando file, si potrebbe ottenere il risultato seguente:

file mio_file.*[Invio]

mio_file.mpg:    MPEG sequence, v1, system multiplex
mio_file.audio:  MPEG ADTS, layer II, v1, 128 kBits, 44.1 kHz, Stereo
mio_file.video:  MPEG sequence, 320x240, 4:3, 29.97 fps

650.3   Mpeg2desc

Mpeg2desc è un programma che fa parte di Dvdauthor (3) e consente di separare le tracce video e audio da un file MPEG:

mpeg2desc [opzioni] < file_mpeg [> file_out]

Tabella 650.13. Alcune opzioni.

Opzione Significato mnemonico Descrizione
-o file
output Invece di emettere la traccia estratta attraverso lo standard output, utilizza il file indicato.
-a n
audio Estrae la n-esima traccia audio, dove zero corrisponde alla prima.
-v n
video Estrae la n-esima traccia video dove zero corrisponde alla prima.
-s
skip Salta alla prima intestazione valida; serve a estrarre una traccia video compatibile con il programma mplex.

Segue la descrizione di alcuni esempi.

A differenza del programma bbdmux, i file estratti con mpeg2desc non contengono un'intestazione che possa permetterne il riconoscimento.

650.4   FFmpeg

FFmpeg (4) è un sistema completo di registrazione, elaborazione ed esecuzione di formati multimediali di vario tipo. Attraverso il programma ffmpeg, in particolare, è possibile rielaborare le varie componenti e qui viene descritto secondo questa sua modalità di utilizzo:

ffmpeg [opzioni_di_ingresso] -i file_ingresso \
  \[-f formato_di_uscita] [opzioni_di_elaborazione] file_uscita

In pratica, la prima serie di opzioni, prima di -i, riguarda il file in ingresso, nel caso fosse necessario specificarne le caratteristiche; le opzioni che appaiono dopo l'indicazione del file in ingresso, specificano l'elaborazione che si vuole ottenere nel file in uscita, annotato alla fine della riga di comando. L'esempio seguente serve a rendere l'idea: il file filmato.mpg viene trasformato nel file filmato.avi.

ffmpeg -i filmato.mpg -f avi filmato.avi[Invio]

Si osservi comunque che questo esempio non produce necessariamente un file AVI compatibile con i programmi di esecuzione comuni, ma in questa fase serve a rendere l'idea del funzionamento del programma.

Nel modello sintattico appare l'opzione -f, con la quale si specifica il formato del file da generare, attraverso l'indicazione di una parola chiave. I mancanza di questa opzione, il programma tenta di determinare il formato del file da generare dall'estensione che viene data al nome dello stesso. Per conoscere l'elenco delle parole chiave disponibili per definire un formato, si può usare l'opzione -formats da sola:

ffmpeg -formats[Invio]

File formats:
  E 3g2             3gp2 format
  E 3gp             3gp format
 D  4xm             4X Technologies format
...
...
 D  wsvqa           Westwood Studios VQA format
 DE yuv4mpegpipe    YUV4MPEG pipe format

Image formats (filename extensions, if any, follow):
 DE gif    gif

Codecs:
 D V    4xm
 D V D  8bps
 DEA    aac
...
...
 D V D  xl
  EV    xvid
 DEV D  zlib
...

Tabella 650.15. Alcune opzioni.

Opzione Significato mnemonico Descrizione
-i file
input Dichiara il file da usare in ingresso.
-f formato
format Consente di dichiarare il formato (si può usare anche per forzare l'interpretazione del formato del file in ingresso).
-hq
high quality Richiede al programma di generare un file con la qualità migliore possibile.
-b n
bit rate Richiede un tasso del flusso di dati (bit rate) di n kbit/s. Il valore predefinito è di 200 kbit/s; valori maggiori consentono una registrazione di qualità migliore.
-sameq
same quality Richiede un tasso del flusso di dati (bit rate) uguale a quello originale.
-r n
frame rate Richiede una frequenza di quadro di n Hz. Il valore predefinito è di 25 Hz.
-s mxn
size Richiede un quadro di dimensioni m per n punti grafici (m è l'ampiezza orizzontale; n è l'altezza).

Tabella 650.16. Alcuni formati da specificare con l'opzione -f.

Opzione Descrizione
-f au
Audio Sun.
-f wav
Audio WAV-RIFF.
-f mp2
-f mp3
Audio MP2 o MP3.
-f ogg
Audio Ogg Vorbis.
-f yuv4mpegpipe
Video YUV4MPEG.
-f mpeg1video
-f mpeg2video
Video MPEG-1 o MPEG-2.
-f gif
Animazione GIF.
-f swf
Animazione SWF, nota anche come Flash (video e audio).
-f asf
Contenitore multimediale ASF (video e audio).
-f avi
Contenitore multimediale AVI (video e audio).
-f mov
Contenitore multimediale MOV (video e audio).
-f mpeg
Contenitore multimediale MPEG1 (video e audio).
-f mpegts
Contenitore multimediale MPEG2 (video e audio).

Segue la descrizione di alcuni esempi.

650.5   Mjpegtools

Mjpegtools (5) è un insieme di programmi per l'elaborazione di formati video MPEG. Nelle sezioni seguenti si mostra l'uso di alcuni di questi; si osservi comunque che solo alcune varianti MPEG sono gestibili e che normalmente si tratta di file che contengono solo informazioni video (senza audio).

650.5.1   Utilizzo di «jpeg2yuv» e di «png2yuv»

I programmi jpeg2yuv e png2yuv consentono di trasformare una sequenza di file da un formato JPG o PNG in un flusso YUV4MPEG. Naturalmente, i file che costituiscono la sequenza da unire devono avere le stesse caratteristiche e le dimensioni (la geometria orizzontale e verticale in punti grafici) devono rispettare gli standard video.

jpeg2yuv -f f_quadro -I interlacciamento [altre_opzioni] -j modello_file > file_y4m
png2yuv -f f_quadro -I interlacciamento [altre_opzioni] -j modello_file > file_y4m

Come si vede, i modelli sintattici per l'uso di questi due programmi sono equivalenti e alcune opzioni sono obbligatorie.

Tabella 650.17. Alcune opzioni.

Opzione Significato mnemonico Descrizione
-f n
frame Definisce la frequenza di quadro, dove n rappresenta il numero di quadri per secondo.
-I p|t|b
interlace Definisce il tipo di interlacciamento: -I p richiede l'assenza di interlacciamento; -I t richiede per primo il semiquadro superiore; -I b richiede per primo il semiquadro inferiore.
-L 0|1
Attiva o disattiva l'interlacciamento: -L 0 copia la stessa immagine in due semiquadri; -L 1 indica che i campi sono interlacciati.
-l n
loop Richiede di ripetere la sequenza per n volte. Se non si specifica questa opzione, si ottiene una sola sequenza; se si indica -l -1, si ottiene un filmato di lunghezza indefinita.
-n n
Richiede di utilizzare soltanto n quadri in ingresso. In modo predefinito vengono utilizzati tutti i quadri disponibili; eventualmente si può dichiarare esplicitamente la richiesta di usarli tutti con l'opzione -n -1.
-j radice%0ndestensione
Definisce il modello del gruppo di file da utilizzare per ricostruire il filmato. Per esempio, -j prova%06.jpg fa riferimento a file del tipo prova000000.jpg, prova000001.jpg,... prova999999.jpg.

Segue la descrizione di alcuni esempi.

650.5.2   Utilizzo di «yuvplay»

Il programma yuvplay consente di eseguire un flusso YUV4MPEG, come quello generato dai programmi png2yuv o jpeg2yuv:

yuvplay [opzioni] < file_y4m

Tabella 650.18. Alcune opzioni.

Opzione Significato mnemonico Descrizione
-f n
frame Forza l'utilizzo di una frequenza di quadro specifica, dove n rappresenta il numero di quadri per secondo.
-s ampiezzaxaltezza
size Consente di modificare le dimensioni della riproduzione video, indicando valori in punti grafici (pixel).

In condizioni normali, il programma viene usato senza opzioni, come nell'esempio seguente, dove viene eseguito il contenuto del file filmato.y4m:

yuvplay < filmato.y4m[Invio]

650.5.3   Utilizzo di «mpeg2enc»

Il programma mpeg2enc consente di generare un file video MPEG-1 o MPEG-2 a partire da un flusso YUV4MPEG (il tipo esatto è 4:2:0 Y'CbCr).

mpeg2enc [opzioni] -o file_da_generare < file_y4m

Come si vede dal modello sintattico, il flusso YUV4MPEG viene letto dallo standard input e il risultato viene memorizzato nel file indicato come argomento dell'opzione -o.

Tabella 650.19. Alcune opzioni.

Opzione Descrizione
-a n
--aspect n
Specifica il rapporto di riproduzione dell'immagine (aspect ratio). Se questa opzione non viene specificata, il rapporto viene determinato dalle informazioni contenute nel flusso in ingresso.
-a 1
--aspect 1
Imposta il rapporto di riproduzione a 1:1 (quadrato).
-a 2
--aspect 2
Imposta il rapporto di riproduzione a 4:3 (formato televisivo comune).
-a 3
--aspect 3
Imposta il rapporto di riproduzione a 16:9.
-a 4
--aspect 4
Imposta il rapporto di riproduzione a 2,21:1.
-b n
--video-bitrate n
Imposta il tasso del flusso di dati video a n kbit/s.
-n n|p|s
--video-norm n|p|s
Forza l'interpretazione del flusso di ingresso secondo lo standard NTSC, PAL o SECAM, rispettivamente in base all'argomento n, p o s.
-f n
--format n
Specifica il tipo di formato del file da generare, attraverso un numero intero.
-f 0
--format 0
Formato video MPEG-1 generico.
-f 3
--format 3
Formato video MPEG-2 generico.
-o file
--output file
Questa opzione appare obbligatoriamente alla fine della riga di comando e serve a dichiarare il nome del file da generare.

L'esempio più significativo di utilizzo di mpg2enc è quello con il quale si crea un file video MPEG-2 adatto a mplex:

mpeg2enc -a 2 -n p -f 3 -b 200 -o video.m2v < video.y4m[Invio]

In questo caso si suppone di disporre del file video.y4m, contenente un flusso YUV4MPEG, con il quale si ottiene il file video.m2v in formato MPEG-2. L'opzione -n p specifica che le caratteristiche del file MPEG-2 devono essere conformi allo standard PAL (per esempio la frequenza di quadro deve essere di 25 Hz) e l'opzione -b 200 fissa il tasso del flusso di dati video a 200 kbit/s.

650.5.4   Utilizzo di «mplex»

Il programma mplex consente di generare un contenitore multimediale MPEG1 o MPEG2, partendo da un file video MPEG e da un file audio MPEG (eventualmente anche qualche altro formato audio è consentito, come descritto nella pagina di manuale mplex(1)).

mplex [opzioni] -o file_da_generare file_in_ingresso...

Dal modello sintattico appena mostrato si intende che l'opzione -o è obbligatoria e precede il nome del file da produrre; quindi segue l'elenco dei file da unire nel contenitore multimediale.

Tabella 650.20. Alcune opzioni.

Opzione Descrizione
-f n
--format n
Specifica il tipo di formato del file da generare, attraverso un numero intero. Nelle righe successive ne vengono indicati alcuni.
-f 0
--format 0
Formato MPEG1 generico.
-f 1
--format 1
Formato VCD.
-f 3
--format 3
Formato MPEG2 generico.
-f 4
--format 4
Formato SVCD.
-f 8
--format 8
Formato DVD (VOB), adatto per Dvdauthor.
-V
--vbr
Richiede espressamente di utilizzare un tasso variabile del flusso di dati (variable bit rate).
-o file
--output file
Specifica il nome del file da generare.

L'esempio più significativo di utilizzo di mplex è quello con il quale si creano i file VOB adatti a Dvdauthor:

mplex -f 8 -V -o filmato.vob video.m2v audio.mp2[Invio]

In questo caso si suppone di disporre del file video.m2v in formato video MPEG-2 e del file audio.mp2 in formato MP2, per generare il file filmato.vob. Si osservi che in questa situazione, è bene che il file video fornito in ingresso sia in formato MPEG-2, come nell'esempio.

650.6   Transcode

Transcode (6) è un sistema modulare per l'elaborazione di formati video MPEG, gestito generalmente attraverso il programma frontale transcode. Purtroppo i moduli che compongono Transcode non sono perfettamente omogenei e spesso, la sintassi teorica della riga di comando dell'eseguibile transcode non genera i risultati attesi:

transcode [opzioni]

Il modello sintattico appena mostrato indica soltanto che sono previste delle opzioni nella riga di comando, ma senza alcuna opzione, il programma non fa alcunché. Di solito si utilizzano almeno le opzioni -i e -o, per indicare rispettivamente un file in ingresso e uno in uscita.

Tabella 650.21. Alcune opzioni.

Opzione Significato mnemonico Descrizione
-i file
-o file
input, output Specificano, rispettivamente, il nome del file da usare in ingresso e in uscita.
-x video[,audio]
-y video[,audio]
Specificano i moduli da usare, rispettivamente, per l'interpretazione del file in ingresso e per la creazione del file in uscita. Si distingue eventualmente tra modulo video e modulo audio (facoltativo), dove il secondo potrebbe essere determinato automaticamente dal tipo di modulo video richiesto. Tra i vari moduli esiste anche quello denominato null, per escludere esplicitamente uno dei due moduli (video o audio). Si osservi che di solito l'opzione -x viene omessa, lasciando che sia il programma a determinare il formato del file in ingresso.
-F codifica
Questa opzione dipende dal modulo specificato con l'opzione -y e serve a richiedere l'uso di una certa codifica a quel modulo particolare selezionato per il file in uscita.

La mancanza di omogeneità dei moduli che compongono Transcode fa sì che l'utilizzo delle opzioni della riga di comando possa variare molto da un modulo all'altro. Per questa ragione, nella tabella riepilogativa delle opzioni principali vengono mostrate soltanto quelle essenziali, rimanendo però l'esigenza di leggere la pagina di manuale transcode(1) per ogni modulo che si voglia tentare di utilizzare. Viene mostrato qui solo qualche esempio elementare di utilizzo del programma.

650.7   Creazione di un filmato da un'immagine fissa

In questa sezione si mostrano alcuni esempi che, a partire da un'immagine fissa, consentono di arrivare a un filmato, completo di audio, anche se completamente silenzioso.

Si può creare un video YUV4MPEG con jpeg2yuv o con png2yuv di Mjpegtools:

jpeg2yuv -f 25 -I p -L 0 -n 100 -j figura.jpg > video.y4m[Invio]

Oppure:

png2yuv -f 25 -I p -L 0 -n 100 -j figura.png > video.y4m[Invio]

In questo modo, a partire dal file figura.jpg o figura.png, si ottiene un video YUV4MPEG di 100 quadri, contenenti la stessa immagine, nel file video.y4m. La frequenza di quadro è di 25 quadri al secondo, pertanto il video dura 4 s.

Con l'aiuto di mpeg2enc si trasforma il file video.y4m in un formato MPEG-2, creando il file video.m2v:

mpeg2enc -a 2 -n p -f 3 -b 200 -o video.m2v < video.y4m[Invio]

Viene creato un file audio silenzioso, di 4 s, in formato MP2, con una frequenza di campionamento di 48 000 Hz in stereofonia:

dd if=/dev/zero bs=4 count=192000 | \
  \toolame -b 128 -s 48 /dev/stdin audio.mp2
[Invio]

Si ottiene il file audio.mp2 che si può usare assieme a video.m2v per creare un contenitore multimediale MPEG2 (video e audio) con l'aiuto di mplex:

mplex -f 3 -o filmato.mpg video.m2v audio.mp2[Invio]

Si ottiene così il file filmato.mpg.

Riquadro 650.22. Campionatura audio e frequenza di quadro.

A seconda della frequenza di quadro dello standard utilizzato (NTSC, PAL o SECAM), si deve calcolare la quantità di campioni audio per quadro, in modo da poter sincronizzare il suono correttamente. La frequenza di quadro dello standard NTSC è di 29,97 quadri per secondo, mentre quella degli standard europei (PAL e SECAM) è di 25 quadri per secondo. Conoscendo la frequenza di campionamento della fonte sonora, basta dividere quel valore per la frequenza di quadro per ottenere quanti campioni corrispondono a un quadro. Per esempio, la frequenza di campionamento di 48 kHz (ovvero 48 000 Hz), divisa per 29,97 (NTSC), dà 1 601,6 campioni per quadro; divisa per 25 (PAL o SECAM), dà 1 920 campioni per quadro. Nello stesso modo, la frequenza di campionamento di 44,1 kHz (ovvero 44 100 Hz), divisa per 29,97 (NTSC), dà 1 471,5 campioni per quadro; divisa per 25 (PAL o SECAM), dà 1 764 campioni per quadro.

Per generare una traccia audio silenziosa, in formato MPEG-1 II, con una campionatura a 48 kHz, si può usare Toolame con un comando di questo tipo:

dd if=/dev/zero bs=4 count=n_campioni \
  \| toolame -b 128 -s 48 /dev/stdin file_da_generare

In pratica, la durata della traccia audio si determina specificando la quantità di campioni da inserire nell'argomento dell'opzione count del comando dd.

650.8   Riferimenti

Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>


1) Mpgtx   GNU GPL

2) bbTOOL   dominio pubblico

3) Dvdauthor   GNU GPL

4) FFmpeg   GNU GPL

5) Mjpegtools   GNU GPL

6) Transcode   GNU GPL


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome elaborazione_di_formati_video.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]

Valid ISO-HTML!

CSS validator!