Condividi tramite


Impostazione delle proprietà nel sink di file

Il sink di file ASF è un'implementazione di FMMediaSink fornita da Media Foundation che un'applicazione può usare per archiviare i dati multimediali ASF in un file. Per informazioni sul modello a oggetti di ASF Media Sinks e sull'utilizzo generale, vedere Sink multimediali ASF.

Dopo aver creato il sink di file ASF, deve essere configurato con informazioni sui flussi nel file di output. Questa procedura è descritta in Aggiunta di informazioni di flusso al sink di file ASF. È possibile impostare proprietà aggiuntive sul sink di file a seconda del tipo di codifica; bucket in perdita; proprietà di file generali. Queste impostazioni non vengono scritte nell'oggetto intestazione ASF finale. Questo argomento descrive il processo di aggiunta di queste proprietà nell'archivio delle proprietà del sink di file.

L'oggetto ContentInfo gestisce le proprietà dei file globali e le singole proprietà di flusso per il sink di file. Per informazioni sul recupero di un riferimento all'oggetto ContentInfo del sink del file, vedere Creazione del sink di file ASF.

Per ottenere un riferimento all'archivio delle proprietà del sink di file (IPropertyStore), chiamare FMASFContentInfo::GetEncodingConfigurationPropertyStore nel riferimento dell'oggetto ContentInfo del sink del file.

Proprietà di codifica di flusso

Per codificare correttamente il contenuto, il file deve conoscere determinate informazioni di codifica, ad esempio il tipo di codifica e i parametri di codifica correlati. Questi valori vengono impostati nel sink di file come valori delle proprietà in un archivio delle proprietà gestito dall'oggetto ASF ContentInfo. Se si configura il sink di file prima di creare un'istanza dei codificatori pertinenti, è possibile usare l'oggetto ContentInfo con tutte le proprietà popolate per creare i codificatori di Windows Media. In questo caso, le proprietà vengono impostate automaticamente sui codificatori istantanei. Al contrario, se si creano i codificatori prima del sink, assicurarsi che le proprietà impostate sui codificatori vengano copiate nell'archivio delle proprietà del sink di file.

Per impostare le proprietà di codifica, è necessario accedere all'archivio delle proprietà a livello di flusso del sink di file. Passare il numero di flusso nel parametro wStreamNumber del metodo IMFASFContentInfo::GetEncodingConfigurationPropertyStore . I numeri di flusso devono corrispondere ai valori impostati durante la configurazione di ogni flusso nel profilo. I valori delle proprietà vengono impostati chiamando IPropertyStore::SetValue. Nella tabella seguente vengono descritte le proprietà supportate.

Le proprietà dipendono dal tipo di codifica. Per informazioni sulle proprietà e sui rispettivi valori da impostare, vedere Proprietà di codifica.

Bucket leaky, proprietà

I parametri del bucket in perdita determinano la finestra del buffer effettiva usata dal codificatore per il flusso. La proprietà MFPKEY_ASFSTREAMSINK_CORRECTED_LEAKYBUCKET del sink di file contiene i parametri del bucket di perdita, la frequenza di bit, la finestra del buffer e la piena del buffer iniziale. Questa proprietà è impostata nell'archivio delle proprietà a livello di flusso per il sink di file e deve essere impostata dopo la creazione e la configurazione dei codificatori. Questo valore è impostato in . Durante la negoziazione del tipo di supporto, il codificatore decide la finestra del buffer e la frequenza di bit da usare. È possibile ottenere questi valori usando l'interfaccia IWMCodecLeakyBucket , definita in wmcodecifaces.h e è necessario collegare a wmcodecdspuuid.lib per chiamare i relativi metodi.

I valori recuperati possono essere impostati per questa proprietà per ogni flusso nel sink di file ASF.

Proprietà del sink di file globale

Per ottenere l'archivio delle proprietà globali del sink del file, passare 0 nel parametro wStreamNumber del metodo IMFASFContentInfo::GetEncodingConfigurationPropertyStore . I valori delle proprietà vengono impostati chiamando IPropertyStore::SetValue. Nella tabella seguente vengono descritte le proprietà supportate.

Proprietà a livello di file Descrizione
MFPKEY_ASFMEDIASINK_BASE_SENDTIME L'ora di invio indica quando verrà rilasciato il payload all'interno del bucket in perdita. Questo valore della proprietà indica la prima volta di invio. Il multiplexer usa questo valore per calcolare i tempi di invio successivi per i pacchetti generati e garantisce che i dati vengano distribuiti costantemente attraverso il bucket di perdita.
MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE Questo valore BOOL indica se il multiplexer deve modificare automaticamente la frequenza di bit per assicurarsi che i dati non sovraflowno il bucket di perdita.
MFPKEY_ASFMEDIASINK_DRMACTION Questo indica l'azione DRM del sink multimediale ASF per la generazione di file. In questa versione è supportata solo la transcodice DRM.

 

Sink multimediali ASF

Componenti del livello di pipeline ASF

Supporto asF in Media Foundation