Scrittura di file ASF

[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.

È possibile usare l'oggetto writer di Windows Media Format SDK per creare file ASF da dati multimediali digitali. Per creare un'istanza dell'oggetto writer, chiamare la funzione WMCreateWriter . L'oggetto writer coordina la funzionalità di diversi componenti, inclusi i codec, esterni a Windows Media Format SDK.

La funzionalità di base dell'oggetto writer può essere suddivisa nei passaggi seguenti. In questi passaggi, "l'applicazione" fa riferimento al programma scritto con Windows Media Format SDK.

  1. L'applicazione fornisce al writer un profilo da usare per la creazione del file ASF. Quando il writer carica i dati del profilo, assegna un numero di input a ogni connessione del profilo.
  2. L'applicazione fornisce al writer un nome di file di output per il file da scrivere. Il writer crea un oggetto sink di file writer per gestire la creazione e l'input del file. Per altre informazioni, vedere Oggetto sink di file writer.
  3. Il writer crea un'intestazione per il nuovo file in base alle informazioni nel profilo.
  4. L'applicazione passa campioni non compressi al writer. I campioni vengono passati uno alla volta nei buffer di cui è stato eseguito il wrapping negli oggetti buffer. L'applicazione deve superare i campioni per ogni flusso simultaneamente in modo che il writer riceva tutti gli esempi nell'ordine di presentazione.
  5. Il writer passa gli esempi al codec appropriato per la compressione. Quando il writer riceve gli esempi compressi, li interlea con esempi dagli altri flussi in modo che gli esempi vengano inseriti nel file in un ordine di tempo di presentazione indipendentemente dal flusso. I dati di esempio vengono quindi inseriti in pacchetti e scritti nella sezione dei dati del file.
  6. Quando vengono elaborati tutti gli esempi, il writer può aggiungere un indice al file per migliorare le prestazioni di ricerca.

Questi passaggi sono illustrati nell'applicazione di esempio WMStats, tra gli altri. Per altre informazioni, vedere Applicazioni di esempio.

Il writer supporta anche funzionalità più avanzate, consentendo di eseguire le operazioni seguenti:

  • Modificare i metadati nell'intestazione del file.
  • Scrivere esempi precompressi.
  • Scrivere nei sink di rete per lo streaming di dati live.
  • Scrivere nei sink di file per le opzioni avanzate del controllo file.
  • Scrivere in sink di push per la distribuzione ai server che distribuiranno il contenuto agli utenti finali.
  • Distribuire esempi di postview per la verifica dell'output.
  • Fornire statistiche sulle prestazioni del writer.

Nelle sezioni seguenti viene descritto in dettaglio l'utilizzo dell'oggetto writer.

Sezione Descrizione
Per utilizzare profili con il writer Viene descritto come specificare un profilo da usare con il writer.
Uso degli input Viene descritto come identificare e configurare le impostazioni di input nel writer.
Per modificare i metadati con il writer Viene descritto come usare il writer per modificare i metadati per un nuovo file.
Per scrivere esempi Viene descritto come passare campioni al writer.
Impostazione delle estensioni unità dati Viene descritto come aggiungere dati estesi agli esempi.
Scrittura di esempi compressi Viene descritto come passare campioni precompressi al writer.
Scrittura di flussi di immagini Viene descritto come configurare un input per un flusso di immagini.
Scrittura di esempi di immagini video Descrive come configurare gli esempi di immagini video.
Scrittura di flussi a velocità in bit variabile Viene descritto come scrivere flussi VBR (Variable Bit Rate).
Uso della codifica Two-Pass Descrive come fare in modo che il codec esegua un passaggio preliminare prima di scrivere il file.
Per forzare l'inserimento di Key-Frame Viene descritto come forzare manualmente il codec per codificare un esempio come fotogramma chiave.
Per gestire la latenza del writer Viene descritto come ridurre al minimo il tempo necessario per il writer per elaborare i campioni in un file di output o in un sink.
Uso dei sink writer Viene descritto come usare i sink writer per distribuire il contenuto ai file o ai percorsi di rete.
Per ottenere le statistiche del writer Viene descritto come ottenere statistiche per il writer.
Per usare postview writer Viene descritto come ottenere esempi non compressi durante la scrittura di un file per la verifica.

 

Guida per programmatori

Oggetto file sink del writer

Oggetto Sink di rete writer

Oggetto writer