Condividi tramite


Scrittura di flussi con pixel non quadrati

[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita da Lettore di origine e 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.

Esistono due modi per creare flussi video con pixel non quadrati che verranno visualizzati correttamente in Lettore multimediale Windows. La prima tecnica prevede l'impostazione degli attributi a livello di flusso nell'intestazione del file. La seconda tecnica prevede l'aggiunta di un'estensione dell'unità dati a un flusso nel profilo e quindi l'impostazione di un valore in ogni esempio scritto.

Per usare attributi di intestazione a livello di flusso per impostare proporzioni pixel

  1. Configurare l'oggetto writer. Per altre informazioni, vedere Scrittura di file ASF.
  2. Creare o caricare un profilo con uno o più flussi video. Per altre informazioni, vedere Per usare i profili con writer.
  3. Chiamare IWMWriter::SetProfile. Chiamare sempre questo metodo prima di impostare qualsiasi attributo di intestazione.
  4. Chiamare QueryInterface per ottenere l'interfaccia IWMHeaderInfo3 e chiamare AddAttribute due volte per aggiungere AspectRatioX e AspectRatioY come attributi a livello di flusso del flusso video. Questi attributi sono valori DWORD .
  5. Scrivere il file.

Per usare le estensioni dell'unità dati per impostare proporzioni pixel

Prima di scrivere:

  1. Configurare l'oggetto writer. Per altre informazioni, vedere Scrittura di file ASF.
  2. Creare o caricare un profilo con uno o più flussi video. Per altre informazioni, vedere Per usare i profili con writer.
  3. Per ogni flusso (di qualsiasi tipo di supporto) nel profilo, chiamare IWMStreamConfig::SetStreamName per specificare un nome univoco desiderato. Non assegnare due flussi lo stesso nome.
  4. Usare IWMStreamConfig2::AddDataUnitExtension nel flusso video per aggiungere un'estensione dell'unità dati per le proporzioni pixel.
  5. Chiamare IWMWriter::SetProfile.
  6. Scrivere il file.

Durante la scrittura:

  • Per ogni esempio, chiamare INSSBuffer3::SetProperty e specificare la proprietà WM_SampleExtensionGUID_PixelAspectRatio insieme al valore corretto. I valori delle proporzioni vengono scritti come due valori concatenati a due cifre. Ad esempio, 16:9 viene scritto come 1609 o 0x0649. Si tratta sempre di un valore a 2 byte.

Per leggere e scrivere flussi video con pixel non quadrati