Supporto del codice ora SMPTE

[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita dal lettore di origine e dal writer sink. Lettore di origine e writer sink sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi lettore di origine e writer sink anziché Windows Media Format 11 SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Windows Media Format SDK offre un supporto limitato per il codice ora SMPTE, che è un formato di codice ora standard per film e televisori. È possibile includere i dati del codice ora SMPTE con esempi come estensioni di unità dati. La parte dati dell'estensione è una struttura WMT_TIMECODE_EXTENSION_DATA contenente le informazioni del timestamp SMPTE originale.

La gestione del codice temporale SMPTE nei file ASF presenta limiti di prestazioni. Ogni esempio con un timestamp SMPTE associato richiede il trasporto di 14 byte nella struttura del timestamp. In uno scenario di streaming, questo requisito di larghezza di banda maggiore potrebbe essere irreversibile. Di conseguenza, è consigliabile che i codici temporali SMPTE vengano salvati in modo permanente solo nei file ASF durante il processo di modifica video, che in genere viene eseguito con i file locali. Quando viene creato il file finale, è necessario rimuovere le estensioni dell'unità dati.

È possibile leggere timestamp SMPTE esattamente come si leggerebbe qualsiasi altra estensione dell'unità dati, ma gli oggetti di lettura forniscono supporto integrato per la ricerca tramite codice ora SMPTE. Per poter cercare timestamp SMPTE, è necessario prima indicizzare il file in base al codice ora SMPTE. È possibile configurare l'indicizzatore per indicizzare i codici temporali usando il metodo IWMIndexer2::Configure .

Usando il lettore asincrono, è possibile esplorare un file in base ai timestamp SMPTE usando i metodi dell'interfaccia IWMReaderTimecode e il metodo IWMReaderAdvanced3::StartAtPosition . Con il lettore sincrono, usare IWMSyncReader2::SetRangeByTimecode.

Funzionalità dei file ASF

Configurazione di estensioni delle unità dati