Condividi tramite


Dati DV nel formato di file AVI

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEnginee Acquisizione audio/video in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente di usare un nuovo codice MediaPlayer, IMFMediaEngine e Acquisizione audio/video in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Microsoft ha specificato il formato per l'archiviazione di dati video digitali (DV) nei file AVI. La conformità a questa specifica garantisce che i file AVI creati in questo formato saranno compatibili con le versioni future dell'architettura video digitale DirectShow per Windowsplatform.

Questo articolo descrive il formato dei file AVI contenenti dati DV. Sono definiti i QUATTROCC (codici a quattro caratteri) specifici per i flussi di dati DV interleaved e i gestori di flusso del compressore/decompressore DV. Viene definita la struttura del formato del flusso per i dati DV. Vengono specificate le specifiche per due metodi di archiviazione dei dati DV nel formato di file AVI.

Si presuppone che il lettore abbia familiarità con il formato dati DV. Questo formato è definito nella Specifica di vcr digitali, detto anche Blue Book.

Esistono due tipi di file DV AVI: file AVI che contengono un flusso di dati DV, denominato file di tipo 1; e i file AVI che contengono video DV come flusso "vids" e audio DV come flussi "auds", chiamati file di tipo 2.

file AVI contenenti un flusso di dati DV (tipo 1)

I dati DV interleaved possono essere archiviati nel formato nativo come singolo flusso all'interno di un file RIFF AVI. Questo ha il vantaggio di usare la quantità minima di archiviazione dei dati per DV. Lo svantaggio principale è che questo formato di file non è compatibile con le versioni precedenti di Video per Windows, perché non contiene né un video 'vids' o un flusso audio 'auds'. Il supporto viene fornito per il flusso DV interleaved tramite il dv Muxer e i filtri DV Splitter forniti con DirectShow.

I dati DV possono essere archiviati in un singolo flusso all'interno di un file AVI RIFF specificando i 'iavs' (flusso audio e video interleaved) FOURCC (codice a quattro caratteri) nel membro fccType e uno dei QUATTROCCC 'dvsd', 'dvhd' o 'dvsl' nel fccHandler membro dell'intestazione del flusso 'strh'. I fotogrammi al secondo del flusso video devono essere specificati nella dwRate e nei membri dwScale e il numero totale di blocchi video nel blocco "movi" nel membro dwLength.

Il gestore del flusso 'dvsd' FOURCC specifica che i dati DV sono definiti nella parte 2 della specifica di di vcr digitali. Il video è nel formato di 525 linee a 29,97 Hz (525-60) o 625 linee a 25,00 Hz (625-50).

Il gestore del flusso 'dvhd' FOURCC specifica che i dati DV sono definiti nella parte 3 della specifica delle richieste di recapito digitali. Il video è nel formato di 1125 linee a 30,00 Hz (1125-60) o 1250 linee a 25,00 Hz (1250-50).

Il gestore del flusso 'dvsl' FOURCC specifica che i dati DV sono definiti nella parte 6 della specifica di di vcr digitali. Il video è nel formato SDL (High Compression SD).

Nota

Nella parte restante di questo articolo vengono fornite definizioni per i flussi 'dvsd'.

 

Il blocco dell'intestazione del flusso deve essere seguito da un blocco di formato di flusso DVINFO.

I dati DV effettivi vengono archiviati come blocchi "##dc" nel blocco "movi" (## nel formato rappresenta l'identificatore del flusso). Ogni blocco contiene un frame di dati, rispettivamente 10 o 12 sequenze DIF DV per sistemi 525-60 o 625-50. Il formato di sequenza DIF DV SD ('dvsd') è definito nella parte 2 della specifica delle richieste di recapito digitali.

L'esempio seguente mostra il modulo AIFF RIFF per un file AVI con un flusso di dati DV, espanso con blocchi di intestazione completati.

00000000 RIFF (0FAE35D4) 'AVI '
0000000C     LIST (00000106) 'hdrl'
00000018         avih (00000038)
                     dwMicroSecPerFrame    : 33367
                     dwMaxBytesPerSec      : 3728000
                     dwPaddingGranularity  : 0
                     dwFlags               : 0x810 HASINDEX | TRUSTCKTYPE
                     dwTotalFrames         : 2192
                     dwInitialFrames       : 0
                     dwStreams             : 1
                     dwSuggestedBufferSize : 120000
                     dwWidth               : 720
                     dwHeight              : 480
                     dwReserved            : 0x0
00000058         LIST (0000006C) 'strl'
00000064             strh (00000038)
                         fccType               : 'iavs'
                         fccHandler            : 'dvsd'
                         dwFlags               : 0x0
                         wPriority             : 0
                         wLanguage             : 0x0 undefined
                         dwInitialFrames       : 0
                         dwScale               : 100 (29.970 Frames/Sec)
                         dwRate                : 2997
                         dwStart               : 0
                         dwLength              : 2192
                         dwSuggestedBufferSize : 120000
                         dwQuality             : 0
                         dwSampleSize          : 0
                         rcFrame               : 0,0,720,480
000000A4             strf (00000020)
                         dwDVAAuxSrc     : 0x........
                         dwDVAAuxCtl     : 0x........
                         dwDVAAuxSrc1    : 0x........
                         dwDVAAuxCtl1    : 0x........
                         dwDVVAuxSrc     : 0x........
                         dwDVVAuxCtl     : 0x........
                         dwDVReserved[2] : 0,0
000000CC     LIST (0FADAC00) 'movi'
0FADACD4     idx1 (00008900)

file AVI contenenti flussi audio DV e DV (tipo 2)

I dati DV interleaved possono essere suddivisi in un flusso video e uno a quattro flussi audio all'interno di un file RIFF AVI. Questo ha il vantaggio di essere compatibile con le versioni precedenti con Video per Windows, perché contiene un flusso video standard "vids" e almeno un flusso audio standard 'auds'. Lo svantaggio principale è che questo formato di file richiede che i dati audio vengano archiviati in modo ridondante come flussi audio. Il flusso "video" è in realtà il flusso di dati DV interleaved nativo. Tuttavia, come flusso standard "vids" con un tipo di gestore "dvsd", viene usato il DV Video Decoder. Questo formato richiede anche l'uso del filtro DV Splitter per suddividere i file "acquisiti" prima di scriverli come file AVI.

I dati DV possono essere archiviati come flusso video con un numero separato di flussi audio in un file RIFF AVI. Il flusso video viene specificato con un'intestazione di flusso video standard (il valore fccType membro è "vids"). Il membro fccHandler viene specificato come 'dvsd', 'dvhd' o 'dvsl'. I fotogrammi al secondo del flusso video devono essere specificati nella dwRate e nei membri dwScale e il numero totale di blocchi video nel blocco "movi" nel membro dwLength.

In questo file AVI contenente video DV come flusso "vids" e audio DV sotto forma di flussi "auds" di DV, il formato di flusso video è un blocco standard BITMAPINFOHEADER struttura. Il blocco di formato del flusso può essere esteso facoltativamente per includere il bloccoDVINFO, aumentando le dimensioni del blocco del formato di flusso da 40 byte (dimensioni della struttura BITMAPINFOHEADER) a 72 byte (dimensioni di BITMAPINFOHEADER più strutture di DVINFO) e immediatamente dopo la struttura di dati BITMAPINFOHEADER con una struttura di dati DVINFO.

I flussi audio sono specificati con un'intestazione di flusso audio standard (il valore fccType membro è 'auds'). Il membro fccHandler non viene usato per i flussi audio.

I dati video DV vengono archiviati come blocchi "##dc", come definito nella descrizione precedente di un file AVI con un solo dati DV e i dati audio vengono archiviati come blocchi "##wb" nel blocco "movi".

Nota

La Specifica di vcr digitali per uso dell'utente potrebbe non essere disponibile in alcune lingue e paesi.

 

L'esempio seguente mostra il modulo AIFF RIFF per un file AVI contenente video DV come flusso 'vids' e audio DV come flussi 'auds' espansi con blocchi di intestazione completati (inclusi i dati facoltativi DVINFO dopo il BITMAPINFO nel sotto-blocco 'strf' per il flusso 'vids').

00000000 RIFF (103E2920) 'AVI '
0000000C     LIST (00000146) 'hdrl'
00000018         avih (00000038)
                     dwMicroSecPerFrame    : 33367
                     dwMaxBytesPerSec      : 3728000
                     dwPaddingGranularity  : 0
                     dwFlags               : 0x810 HASINDEX | TRUSTCKTYPE
                     dwTotalFrames         : 2192
                     dwInitialFrames       : 0
                     dwStreams             : 2
                     dwSuggestedBufferSize : 120000
                     dwWidth               : 720
                     dwHeight              : 480
                     dwReserved            : 0x0
00000058         LIST (00000094) 'strl'
00000064             strh (00000038)
                         fccType               : 'vids'
                         fccHandler            : 'dvsd'
                         dwFlags               : 0x0
                         wPriority             : 0
                         wLanguage             : 0x0 undefined
                         dwInitialFrames       : 0
                         dwScale               : 100 (29.970 Frames/Sec)
                         dwRate                : 2997
                         dwStart               : 0
                         dwLength              : 2192
                         dwSuggestedBufferSize : 120000
                         dwQuality             : 0
                         dwSampleSize          : 0
                         rcFrame               : 0,0,720,480
000000A4             strf (00000048)
                         biSize          : 40
                         biWidth         : 720
                         biHeight        : 480
                         biPlanes        : 1
                         biBitCount      : 24
                         biCompression   : 0x64737664 'dvsd'
                         biSizeImage     : 120000
                         biXPelsPerMeter : 0
                         biYPelsPerMeter : 0
                         biClrUsed       : 0
                         biClrImportant  : 0
                         dwDVAAuxSrc     : 0x........
                         dwDVAAuxCtl     : 0x........
                         dwDVAAuxSrc1    : 0x........
                         dwDVAAuxCtl1    : 0x........
                         dwDVVAuxSrc     : 0x........
                         dwDVVAuxCtl     : 0x........
                         dwDVReserved[2] : 0,0
000000F4         LIST (0000005E) 'strl'
00000100             strh (00000038)
                         fccType               : 'auds'
                         fccHandler            : '    '
                         dwFlags               : 0x0
                         wPriority             : 0
                         wLanguage             : 0x0 undefined
                         dwInitialFrames       : 0
                         dwScale               : 1 (32000.000 Samples/Sec)
                         dwRate                : 32000
                         dwStart               : 0
                         dwLength              : 2340474
                         dwSuggestedBufferSize : 4272
                         dwQuality             : 0
                         dwSampleSize          : 4
                         rcFrame               : 0,0,0,0
00000140             strf (00000012)
                         wFormatTag      : 1 PCM
                         nChannels       : 2
                         nSamplesPerSec  : 32000
                         nAvgBytesPerSec : 128000
                         nBlockAlign     : 4
                         wBitsPerSample  : 16
                         cbSize          : 0
00000814     LIST (103D0EF4) 'movi'
103D1710     idx1 (00011210)

formato di file AVI