Compartilhar via


Gravando arquivos ASF

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

Você pode usar o objeto gravador do SDK do Windows Media Format para criar arquivos ASF com base em dados de mídia digital. Para criar uma instância do objeto writer, chame a função WMCreateWriter . O objeto writer coordena a funcionalidade de vários componentes, incluindo codecs, que são externos ao SDK de Formato de Mídia do Windows.

A funcionalidade básica do objeto gravador pode ser dividida nas etapas a seguir. Nestas etapas, "o aplicativo" refere-se ao programa que você escreve usando o SDK de Formato de Mídia do Windows.

  1. O aplicativo fornece ao gravador um perfil a ser usado na criação do arquivo ASF. Quando o gravador carrega os dados do perfil, ele atribui um número de entrada a cada conexão do perfil.
  2. O aplicativo fornece ao gravador um nome de arquivo de saída para o arquivo a ser gravado. O gravador cria um objeto coletor de arquivos de gravador para gerenciar a criação e a entrada do arquivo. Para obter mais informações, consulte Writer File Sink Object.
  3. O gravador cria um cabeçalho para o novo arquivo com base nas informações no perfil.
  4. O aplicativo passa amostras descompactadas para o gravador. Os exemplos são passados um de cada vez em buffers encapsulados em objetos de buffer. O aplicativo deve passar exemplos para cada fluxo simultaneamente para que o gravador receba todos os exemplos em ordem de tempo de apresentação.
  5. O gravador passa os exemplos para o codec apropriado para compactação. Quando o gravador recebe os exemplos compactados, ele os intercala com amostras dos outros fluxos para que os exemplos entrem no arquivo na ordem de tempo de apresentação, independentemente do fluxo. Em seguida, os dados de exemplo são transformados em pacotes e gravados na seção de dados do arquivo.
  6. Quando todos os exemplos são processados, o gravador pode adicionar um índice ao arquivo para aprimorar a busca de desempenho.

Essas etapas são ilustradas no aplicativo de exemplo WMStats, entre outras. Para obter mais informações, consulte Aplicativos de exemplo.

O gravador também dá suporte a funcionalidades mais avançadas, permitindo que você faça o seguinte:

  • Edite metadados no cabeçalho do arquivo.
  • Escreva exemplos pré-compactados.
  • Gravar em coletores de rede para transmitir dados ao vivo.
  • Gravar em coletores de arquivos para opções avançadas de controle de arquivo.
  • Gravar em coletores push para distribuição para servidores que fornecerão conteúdo aos usuários finais.
  • Forneça exemplos de pós-visão para verificação de saída.
  • Forneça estatísticas de desempenho do gravador.

As seções a seguir descrevem o uso do objeto writer em detalhes.

Seção Descrição
Usar perfis com o gravador Descreve como especificar um perfil a ser usado com o gravador.
Trabalhando com entradas Descreve como identificar e definir as configurações de entrada no gravador.
Para editar metadados com o gravador Descreve como usar o gravador para editar metadados de um novo arquivo.
Para gravar exemplos Descreve como passar amostras para o gravador.
Configurando extensões de unidade de dados Descreve como adicionar dados estendidos a exemplos.
Escrevendo exemplos compactados Descreve como passar amostras pré-compactadas para o gravador.
Gravando fluxos de imagem Descreve como configurar uma entrada para um fluxo de imagem.
Escrevendo exemplos de imagem de vídeo Descreve como configurar exemplos de Imagem de Vídeo.
Gravando fluxos de taxa de bits variáveis Descreve como gravar fluxos de VBR (taxa de bits variáveis).
Usando a codificação Two-Pass Descreve como fazer com que o codec execute uma aprovação preliminar antes de gravar o arquivo.
Para forçar Key-Frame inserção Descreve como forçar manualmente o codec a codificar um exemplo como um quadro-chave.
Para gerenciar a latência do gravador Descreve como minimizar o tempo necessário para o gravador processar amostras em um arquivo de saída ou coletor.
Trabalhando com coletores de gravador Descreve como usar coletores de gravador para entregar seu conteúdo a arquivos ou locais de rede.
Para obter estatísticas do gravador Descreve como obter estatísticas para o gravador.
Para usar o Postview do Gravador Descreve como obter exemplos descompactados enquanto você escreve um arquivo para verificação.

 

Guia de Programação

Objeto de coletor de arquivo do gravador

Objeto coletor de rede do gravador

Objeto do gravador