Esclusione reciproca

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

Ogni file ASF contiene uno o più flussi, ognuno dei quali contiene dati multimediali digitali. In circostanze normali, ogni flusso è associato a un singolo output. Durante la riproduzione, l'oggetto lettore fornisce esempi per ogni output. Pertanto, come impostazione predefinita, ogni flusso in un file ASF viene recapitato dal lettore durante la riproduzione.

Esistono situazioni in cui non si vuole che ogni flusso venga recapitato al client. Ad esempio, se si crea un file video con cinque flussi audio, uno per ognuna di cinque lingue, si vuole che solo uno di essi venga recapitato alla volta. L'esclusione reciproca è una funzionalità di Windows Media Format SDK che consente di specificare un numero di flussi che si escludono a vicenda che tutti equivalgono allo stesso output.

L'esclusione reciproca viene definita nel profilo usato per creare un file. È possibile configurare l'esclusione reciproca in un profilo usando oggetti di esclusione reciproca. Si aggiungono flussi uno alla volta all'oggetto di esclusione reciproca, si imposta il tipo e si include l'oggetto nel profilo.

Windows Media Format SDK riconosce quattro tipi di esclusione reciproca:

  • Velocità in bit
  • Linguaggio
  • Presentazione
  • Sconosciuto

Esclusione reciproca per velocità in bit

L'esclusione reciproca della velocità in bit è un tipo speciale di esclusione reciproca ed è più comunemente definita esclusione reciproca di velocità in bit multipla (MBR). Un'esclusione reciproca MBR contiene un numero di flussi che provengono tutti dallo stesso input, ma vengono codificati a velocità di bit diverse. Quando si riproduce un file con MBR, il lettore determina il flusso migliore da usare in base alla larghezza di banda disponibile.

Windows Media Format SDK supporta MBR per flussi audio e video. L'SDK supporta anche un tipo speciale di video MBR denominato MBR di dimensioni video multiple. Si tratta di un video MBR normale, ad eccezione del fatto che i singoli flussi possono avere dimensioni dei fotogrammi diverse. Ad esempio, si potrebbero avere alcuni flussi con le dimensioni predefinite del video 320 x 240 e altre con velocità di bit più elevate e 640 x 480 dimensioni video.

Esclusione reciproca in base alla lingua

L'esclusione reciproca basata sulla lingua è progettata per l'uso con il contenuto (in genere audio) registrato in diverse lingue. Un'esclusione reciproca basata sul linguaggio include diversi flussi che provengono da input univoci. Ogni input è lo stesso contenuto, ma in una lingua diversa.

Per consentire il funzionamento dell'esclusione reciproca in base alla lingua, l'applicazione di lettura deve includere la logica per selezionare la lingua appropriata. Se scrivi un'applicazione per riprodurre file ASF e vuoi supportare i file con esclusione reciproca basata sulla lingua, devi selezionare il flusso appropriato prima di iniziare la riproduzione.

Esclusione reciproca per presentazione

L'esclusione reciproca basata su presentazione viene fornita per supportare flussi video che contengono lo stesso contenuto codificato con proporzioni diverse. In genere, questo viene usato per fornire video in una versione della casella di lettera (proporzioni 16:9) e formattato per schermi televisivi (proporzioni 4:3).

La selezione di una presentazione per la riproduzione è spesso determinata dall'utente. Se si scrive un'applicazione per riprodurre file ASF e si desidera supportare i file con esclusione reciproca basata su presentazione, è necessario presentare all'utente l'opzione di selezionare un tipo di presentazione per la visualizzazione.

Esclusione reciproca sconosciuta

È possibile creare l'esclusione reciproca in base a qualsiasi criterio desiderato. Tutti i tipi di esclusione reciproca personalizzati devono essere creati usando il tipo sconosciuto.

Funzionalità avanzate di esclusione reciproca

È anche possibile usare l'esclusione reciproca per assegnare flussi a gruppi che si escludono a vicenda. Ad esempio, è possibile che si vogliano avere flussi audio in più lingue e assegnare un flusso video diverso a ognuno di essi. Si usa l'esclusione reciproca per raggruppare ogni flusso audio con il flusso video corrispondente e rendere tutti i gruppi che si escludono a vicenda.

Il lettore seleziona automaticamente i flussi per tutte le esclusioni reciproche. Per tutti i tipi di esclusione reciproca ad eccezione di MBR e l'esclusione reciproca basata sul linguaggio, il lettore seleziona sempre il flusso predefinito, ovvero il primo flusso aggiunto all'oggetto di esclusione reciproca nel profilo. Per MBR, il lettore seleziona il flusso più adatto alla larghezza di banda disponibile al momento della riproduzione. Se non si vuole usare il flusso predefinito, è possibile impostare la selezione del flusso su manuale prima di iniziare a leggere un file.

La selezione manuale del flusso si applica all'intero file. Le difficoltà possono verificarsi quando si hanno esclusioni reciproche di tipi diversi nello stesso file. Ad esempio, un file può contenere l'esclusione reciproca basata su velocità in bit e l'esclusione reciproca personalizzata. Per selezionare un flusso diverso dall'impostazione predefinita nell'esclusione reciproca personalizzata, è necessario usare la selezione manuale del flusso. Se si usa la selezione manuale del flusso, tuttavia, il lettore non selezionerà automaticamente il flusso a velocità in bit multipla. È necessario pianificare questa eventualità nell'applicazione se si prevede di supportare più tipi di esclusione reciproca in un singolo file. In genere ciò significa creare routine di selezione del flusso personalizzate per i tipi normalmente automatici di esclusione reciproca.

Funzionalità dei file ASF

Uso dell'esclusione reciproca