Suporte a código de hora SMPTE

[O recurso associado a esta página, Windows Media Format 11 SDK, é um recurso herdado. Ele foi substituído por Leitor de Origem e Gravador de Coletor. O Leitor de Origem e o Gravador de Coletor foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o Leitor de Origem e o Gravador de Coletor em vez do SDK do Windows Media Format 11, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O SDK de Formato de Mídia do Windows fornece suporte limitado para código de tempo SMPTE, que é um formato de código de hora padrão para filmes e televisão. Você pode incluir dados de código de tempo SMPTE com exemplos como extensões de unidade de dados. A parte de dados da extensão é uma estrutura WMT_TIMECODE_EXTENSION_DATA que contém as informações do carimbo de data/hora SMPTE original.

A manutenção do código de tempo SMPTE em seus arquivos ASF vem com limites de desempenho. Cada exemplo com um carimbo de data/hora SMPTE associado requer o transporte dos 14 bytes na estrutura de carimbo de data/hora. Em um cenário de streaming, esse maior requisito de largura de banda pode ser catastrófico. Como resultado, é sugerido que os códigos de tempo SMPTE sejam mantidos apenas em arquivos ASF durante o processo de edição de vídeo, que normalmente é feito com arquivos locais. Quando o arquivo final é criado, você deve remover as extensões de unidade de dados.

Você pode ler carimbos de data/hora SMPTE da mesma forma que faria para ler qualquer outra extensão de unidade de dados, mas os objetos de leitura fornecem suporte integrado para pesquisa por código de hora SMPTE. Para poder pesquisar carimbos de data/hora SMPTE, primeiro você deve indexar o arquivo pelo código de hora SMPTE. Você pode configurar o indexador para indexar códigos de tempo usando o método IWMIndexer2::Configure .

Usando o leitor assíncrono, você pode navegar por um arquivo por carimbos de data/hora SMPTE usando os métodos da interface IWMReaderTimecode e o método IWMReaderAdvanced3::StartAtPosition . Com o leitor síncrono, use IWMSyncReader2::SetRangeByTimecode.

Recursos do arquivo ASF

Configurar extensões de unidade de dados