Suporte a código de tempo SMPTE
[A funcionalidade associada a esta página, Windows Media Format 11 SDK, é uma funcionalidade herdada. Foi substituído por Source Reader e Sink Writer. do Source Reader e Sink Writer foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize do Leitor de Origem e do Gravador de Separadores em vez de SDK do Windows Media Format 11, sempre que 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 do Windows Media Format fornece suporte limitado para o código de tempo SMPTE, que é um formato de código de tempo 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.
Manter o 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 aumento do requisito de largura de banda pode ser catastrófico. Como resultado, sugere-se que os códigos de tempo SMPTE só sejam persistidos 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 leria qualquer outra extensão de unidade de dados, mas os objetos de leitura fornecem suporte integrado para pesquisa por código de tempo SMPTE. Para poder pesquisar carimbos de data/hora SMPTE, você deve primeiro indexar o arquivo pelo código de tempo 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 em um arquivo por carimbos de data/hora SMPTE usando os métodos da interfaceIWMReaderTimecode e o métodoIWMReaderAdvanced3::StartAtPosition. Com o leitor síncrono, use IWMSyncReader2::SetRangeByTimecode.
Tópicos relacionados