Quando os usuários precisam apenas do áudio — como em aplicativos de música, players de podcast ou reprodução de áudio em segundo plano de conteúdo de vídeo —, transferir o arquivo de vídeo completo desperdiça largura de banda. A extração de áudio permite que os nós de borda do CDN removam a faixa de vídeo de um arquivo e retornem apenas o stream de áudio, reduzindo o consumo de largura de banda em cenários que utilizam somente áudio.
Como funciona
Quando um cliente solicita um arquivo de vídeo com o parâmetro de consulta ali_audio_only=1, o nó de borda do CDN mais próximo intercepta a solicitação, extrai a faixa de áudio e retorna apenas os metadados e os dados de áudio. Os dados de vídeo não são enviados ao cliente.
O cliente deve oferecer suporte à codificação de transferência em blocos (Transfer-Encoding: chunked).
Ativar a extração de áudio
-
Faça logon no CDN console.
-
No painel de navegação à esquerda, clique em Domain Names.
-
Na página Domain Names, encontre o nome de domínio de destino e clique em Manage na coluna Actions.
-
No painel de navegação do domínio, clique em Video.
Na seção Audio Extraction, ative a opção.
Fazer uma solicitação
Após ativar a extração de áudio, inclua ali_audio_only=1 na URL da solicitação:
http://<domain>/<video-file>?ali_audio_only=1Substitua os espaços reservados pelos valores reais:
Espaço reservado | Descrição | Exemplo |
| Nome de domínio acelerado do CDN |
|
| Caminho do arquivo de vídeo |
|
O nó do CDN retorna apenas os metadados e os dados de áudio. Se o parâmetro estiver ausente ou definido com qualquer valor diferente de 1, a extração de áudio não será realizada.
Formatos compatíveis
MP4
Requisito de metadados: os metadados devem estar no cabeçalho do arquivo. Arquivos com metadados no final do arquivo não são compatíveis.
Tamanho do cabeçalho de box: apenas arquivos MP4 com cabeçalho de box de 8 bytes são compatíveis. Arquivos MP4 com cabeçalho de box de 16 bytes (64 bits) não são compatíveis.
Exemplo de solicitação:
http://<domain>/video.mp4?ali_audio_only=1FLV
Requisito de metadados: sem requisitos.
Exemplo de solicitação:
http://<domain>/video.flv?ali_audio_only=1Limitações
Solicitações de intervalo (range requests) não são compatíveis. Navegadores como o Safari emitem automaticamente solicitações de intervalo ao reproduzir mídia. Recomendamos fornecer aos seus usuários clientes desenvolvidos internamente para a extração de dados de áudio.
A busca requer configuração adicional. Se os usuários precisarem navegar pelo conteúdo de áudio, ative o recurso de busca em vídeo. A busca em vídeo lê os metadados do arquivo para determinar o comprimento total, o que possibilita a busca por posição.
Tamanho do cabeçalho de box do MP4
Se a extração de áudio não conseguir processar um arquivo MP4, a box mdat do arquivo pode estar usando um cabeçalho estendido de 16 bytes, incompatível com a extração de áudio. Use esta seção para entender os tamanhos de cabeçalho de box e verificar se seus arquivos são compatíveis.
Sobre cabeçalhos de box do MP4
Um arquivo MP4 consiste em múltiplas boxes (unidades de contêiner), como a box moov e a box mdat. Cada box contém um cabeçalho que descreve o tamanho e o tipo da box. Existem dois formatos de cabeçalho:
Formato | Tamanho do cabeçalho | Descrição |
Cabeçalho padrão | 8 bytes (32 bits) | Contém um campo de tamanho (4 bytes) e um campo de tipo de box (4 bytes). O campo de tamanho armazena o tamanho real da box. Usado quando o tamanho da box pode ser representado em 4 bytes. |
Cabeçalho estendido | 16 bytes (64 bits) | Contém um campo de tamanho (4 bytes, valor fixo 1), um campo de tipo de box (4 bytes) e um campo largesize (8 bytes). Quando o campo de tamanho é igual a 1, o mecanismo largesize é ativado e o tamanho real da box é armazenado no campo largesize. Comumente usado para boxes mdat com grandes volumes de dados. |
Verificar o tamanho do cabeçalho de box de um arquivo MP4
Use as ferramentas a seguir para verificar o tamanho do cabeçalho de box de um arquivo MP4.
Método 1: usar a ferramenta online MP4Box.js (recomendado)
Faça upload do seu arquivo MP4.
Na árvore Box View à esquerda, clique em mdat (MediaDataBox).
No Box Property View à direita, verifique o campo
original_sizepara determinar o tamanho do cabeçalho:original_sizeé igual a 1: o tamanho do cabeçalho da box mdat é 16 bytes. A extração de áudio não é compatível.original_sizenão é exibido ou não é igual a 1: o tamanho do cabeçalho da box mdat é 8 bytes. A extração de áudio é compatível.
A tabela a seguir compara as propriedades para ambos os cenários:
Propriedade | Tamanho do cabeçalho = 8 bytes (compatível) | Tamanho do cabeçalho = 16 bytes (não compatível) |
size | Valor de tamanho real | Valor de tamanho real |
box_name | MediaDataBox | MediaDataBox |
start | Deslocamento em bytes | Deslocamento em bytes |
original_size | Não exibido | Exibido como 1 |
Método 2: usar a ferramenta de linha de comando Bento4
Execute o seguinte comando:
./mp4dump your-file.mp4 | grep -E "\[mdat\]|\[moov\]"Interprete a saída:
[mdat] size=8+xxxxxx: o tamanho do cabeçalho é 8 bytes. A extração de áudio é compatível.[mdat] size=16+xxxxxx: o tamanho do cabeçalho é 16 bytes. A extração de áudio não é compatível.
Limitação de tamanho de cabeçalho na extração de áudio
A extração de áudio é compatível apenas com arquivos MP4 em que a box mdat usa um cabeçalho padrão de 8 bytes. Arquivos em que a box mdat usa um cabeçalho estendido de 16 bytes (mecanismo largesize) não são compatíveis.
Cenário do arquivo MP4 | Tamanho do cabeçalho | Extração de áudio |
A box mdat usa um cabeçalho padrão | 8 bytes | Compatível |
A box mdat usa um cabeçalho estendido de tamanho grande (large-size) | 16 bytes | Não compatível |
Essa limitação se aplica principalmente à box mdat, que armazena os dados brutos de mídia. Outras boxes, como a moov, normalmente usam o cabeçalho padrão de 8 bytes e não são afetadas por essa limitação.