Origem do arquivo MPEG-4
A origem do arquivo MPEG-4 analisa arquivos MP4 e 3GPP. Para obter mais informações sobre o formato de arquivo MP4, consulte os seguintes documentos padrões:
- ISO/IEC 14496-12: Tecnologia da informação -- Codificação de objetos audiovisuais -- Parte 12: Formato de arquivo de mídia base ISO
- ISO/IEC 14496-14: Tecnologia da informação – Codificação de objetos audiovisuais – Parte 14: Formato de Arquivo MP4
Observação
(Esses recursos podem não estar disponíveis em alguns idiomas e países.)
A origem do arquivo MPEG-4 não decodifica os dados de áudio/vídeo no arquivo.
Este tópico contém as seguintes seções:
Extensões de arquivo e tipos MIME
A origem do arquivo MPEG-4 é a fonte de mídia padrão para as extensões de nome de arquivo a seguir.
Extensão de arquivo | Descrição |
---|---|
.3g2 | 3GPP2 |
.3gp | 3GPP |
.3gp2 | 3GPP2 |
.3gpp | 3GPP |
.m4a | Áudio MPEG-4 |
.m4v | Vídeo MPEG-4 |
.mov | Apple QuickTime Movie |
.mp4 | Áudio ou vídeo MPEG-4 |
.mp4v | Vídeo MPEG-4 |
Também é a fonte de mídia padrão para os seguintes tipos MIME.
tipo MIME | Descrição |
---|---|
áudio/3gpp | Áudio 3GPP |
áudio/3gpp2 | Áudio 3GPP2 |
áudio/mp4 | Áudio MPEG-4 |
vídeo/3gpp | Vídeo 3GPP |
vídeo/3gpp2 | Vídeo 3GPP2 |
vídeo/mp4 | Vídeo MPEG-4 |
Tipos de mídia
MP4 é um formato de contêiner extensível. A especificação MP4 não define uma estrutura fixa para descrever tipos de mídia em um contêiner MP4. Em vez disso, ele define uma hierarquia de objetos que permite que estruturas personalizadas sejam definidas para cada formato. A descrição do formato é armazenada na caixa de descrição de exemplo ('stsd') desse fluxo. A caixa de descrição de exemplo contém uma lista de entradas de exemplo. Para cada entrada de exemplo, um código de 4 bytes, semelhante a um FOURCC, define a estrutura de formato.
Essa extensibilidade significa que a origem do arquivo MPEG-4 não pode reconhecer todas as descrições de formato possíveis. Em vez disso, ele usa uma abordagem de duas camadas ao criar tipos de mídia para os fluxos. No mínimo, cada tipo de mídia contém os atributos a seguir.
Atributo | Descrição |
---|---|
MF_MT_MAJOR_TYPE | Igual a MFMediaType_Audio ou MFMediaType_Video. |
MF_MT_SUBTYPE | Especifica o subtipo de fluxo. |
MF_MT_MPEG4_SAMPLE_DESCRIPTION | Contém a caixa de descrição de exemplo completa como um blob binário. |
MF_MT_MPEG4_CURRENT_SAMPLE_ENTRY | Especifica a entrada atual na caixa de descrição de exemplo. |
A origem do arquivo MPEG-4 reconhece alguns tipos de entrada de exemplo. Para essas entradas, ele pode analisar a estrutura de formato e criar um tipo de mídia completo, com atributos adicionais que descrevem os detalhes do formato. Consulte Atributos de tipo de mídia.
A origem do arquivo MPEG-4 pode analisar as seguintes entradas de exemplo.
Código de entrada de exemplo | Tipo principal | Subtype | Descrição | Observações |
---|---|---|---|---|
'alaw' | Áudio | WAVE_FORMAT_ALAW | Codificação de lei | |
'jpeg' | Vídeo | MFVideoFormat_MJPG | Fluxo Photo-JPEG | O formato de contêiner QuickTime também dá suporte a fluxos JPEG de movimento com entradas 'mjpa' ou 'mjpb', mas a origem do arquivo MPEG-4 não fornece um tipo de mídia completo para esses tipos. |
'avc1' | Vídeo | MFVideoFormat_H264 | Vídeo H.264 | |
'mp4a' | Áudio |
MFAudioFormat_AAC MFAudioFormat_MP3 |
AAC ou MP3 | A entrada 'mp4a' pode descrever outros formatos de áudio MPEG, mas a origem do arquivo MPEG-4 não analisa a estrutura de formato. |
'mp4v' | Vídeo |
MFVideoFormat_M4S2 MFVideoFormat_MP4V |
MPEG-4 parte 2 |
MFVideoFormat_M4S2 é usado para o Perfil Simples mpeg-4 parte 2. MFVideoFormat_MP4V é usado para todos os outros perfis MPEG-4 parte 2, incluindo Perfil Simples Avançado. |
'raw' | Áudio | MFAudioFormat_PCM | Áudio PCM de 8 bits | |
'sowt' | Áudio | MFAudioFormat_PCM | Áudio PCM little-endian de 16 bits | |
'twos' | Áudio | MFAudioFormat_PCM | Áudio PCM big-endian de 16 bits | A origem do arquivo MPEG-4 converte os dados de áudio em formato little-endian. |
'ulaw' | Áudio | WAVE_FORMAT_MULAW | codificação da lei de μ | |
'vc-1' | Vídeo | MFVideoFormat_WVC1 | Vídeo VC-1 | |
'NONE' | Áudio | MFAudioFormat_PCM | Áudio PCM big endian de 8 ou 16 bits | A origem do arquivo MPEG-4 converte os dados de áudio em formato little-endian. |
0x00000000 | Áudio | MFAudioFormat_PCM | Áudio PCM big endian de 8 ou 16 bits | A origem do arquivo MPEG-4 converte os dados de áudio em formato little-endian. |
0x6d730002 | Áudio | WAVE_FORMAT_ADPCM | Modulação de código de pulso diferencial adaptável (ADPCM) | |
0x6d730011 | Áudio | WAVE_FORMAT_IMA_ADPCM | ADPCM |
Para quaisquer outros códigos não mostrados na tabela anterior, a origem do arquivo MPEG-4 define o subtipo da seguinte maneira:
- subtipo = MFMPEG4Format_Base
- subtipo. Data1 = código de entrada de exemplo
Para códigos não mostrados na tabela, um decodificador deve usar o atributo MF_MT_MPEG4_SAMPLE_DESCRIPTION para analisar a caixa de descrição de exemplo.
Para obter uma lista de códigos de entrada de exemplo e links para especificações relevantes, consulte o site da Autoridade de Registro 'MP4 '.
Limitações
A origem do arquivo MPEG-4 não dá suporte aos seguintes recursos de arquivos MP4:
- Faixas externas.
- Fragmentos de filme (caixas 'moof' ou 'mfra'). Há suporte para 'moof' em Windows 8.
- Apresentações transmitidas. A origem do arquivo MPEG-4 ignora silenciosamente as faixas de dica.
- Buscando por código de hora SMPTE.
- Átomos compactados ('cmov').
Há suporte apenas para fluxos de áudio e vídeo. Todas as faixas que contêm outros tipos de fluxo são silenciosamente ignoradas. Os dados de mídia devem ser colocados dentro de átomos 'mdat'.
Se o Suplemento de Atualização de Plataforma para Windows Vista estiver instalado, a origem do arquivo MPEG-4 estará disponível no Windows Vista, mas só poderá ser acessada no Windows Vista usando o Leitor de Origem.
Windows 8 atualizações para a origem e o coletor MPEG-4
Suporte de leitura e gravação de rotação adicionado em Windows 8 fonte e coletor MPEG-4. Não há suporte para isso na origem e no coletor MPEG-4 do Windows 7.
A fonte MPEG-4 lê o ângulo de rotação de uma faixa de vídeo ativa como a soma do ângulo de rotação de 'mvhd' e de 'tkhd'.
O coletor MPEG-4 da Microsoft grava o ângulo de rotação em 'tkhd', mas grava a matriz de 0 grau (identidade) em 'mvhd'. Observe que o coletor do Microsoft MPEG-4 dá suporte apenas a uma única faixa de vídeo.
IPropertyStore lê o ângulo de rotação apenas para a primeira faixa de vídeo como a soma do ângulo de rotação de 'mvhd' e de 'tkhd'.
IPropertyStore grava o ângulo de rotação apenas para a primeira faixa de vídeo em 'tkhd' depois que o ângulo de rotação é ajustado de acordo com o ângulo de rotação em 'mvhd', se existir.
Há suporte para fragmentos de filme ('moof') em Windows 8 fonte e coletor MPEG-4, mas 'mfra' não.
H.263 é compatível com Windows 8 fonte MPEG-4.
A origem MPEG-4 agora mapeia dois fourccs de 'h263' e 's263' no formato de arquivo MPEG-4 para o tipo de mídia de MFVideoFormat_H263.
Mais suporte fourcc adicionado para MJPEG em Windows 8 fonte MPEG-4.
A origem MPEG-4 mapeia foucc de 'dmb1' para o tipo de mídia de MFVideoFormat_MJPG.
Suporte a metadados furigana adicionado na origem Windows 8 MPEG-4.
A fonte mpeg-4 lê metadados furigana de 'soal', 'soar', 'soaa', 'sonm' e 'soco'. IPropertyStore lê metadados furignana por meio do conjunto de PKEYs correspondentes.
A tabela a seguir mostra o mapeamento entre o nome canônico do shell, a chave de propriedade e a ID de caixa/marca no formato de arquivo MPEG-4.
Campo Chave de propriedade ID da marca/caixa System.Music.AlbumTitleSortOverride PKEY_Music_AlbumTitleSortOverride soal System.Music.ArtistSortOverride PKEY_Music_ArtistSortOverride Subir System.Music.AlbumArtistSortOverride PKEY_Music_AlbumArtistSortOverride soaa System.TitleSortOverride PKEY _TitleSortOverride sonm System.Music.ComposerSortOverride PKEY_Music_ComposerSortOverride soco Suporte a atom 3D estéreo adicionado em Windows 8 fonte MPEG-4.
Suporte a AC3 e DD+ adicionados em Windows 8 fonte e coletor MPEG-4.
Há suporte para arquivos maiores que 4 GB (gigabytes) em Windows 8 coletor MPEG-4 para MP4 não fragmental.
A depuração foi otimizada em Windows 8 fonte MPEG-4.
Para reduzir a latência, as informações para os dois quadros-chave mais próximos para uma posição de busca específica são expostas por meio de IMFSeekInfo::GetNearestKeyFrames. Como o quadro-chave não tem quadros dependentes, ele apresenta o quadro após a decodificação de apenas um quadro. Use IMFGetService::GetService para obter essa interface por meio da fonte de mídia, pipeline ou aplicativo.
Defina a taxa como zero na origem MPEG-4. Quando o pipeline está no modo de limpeza, a taxa é zero.
O SPS e o PPS podem ser armazenados em dados de exemplo no coletor MPEG-4.
MF_MPEG4SINK_SPSPPS_PASSTHROUGH atributo no coletor MPEG-4 é definido para permitir que SPS e PPS sejam salvos junto com exemplos de entrada (dados de vídeo H.264). Os clipes mp4 produzidos são reproduzidos pela origem do Windows 7 MPEG-4 e outros.
SPS e PPS podem ser extraídos de exemplos de entrada no coletor MPEG-4.
Quando SPS e PPS não são definidos por meio de MF_MT_MPEG_SEQUENCE_HEADER no tipo de mídia de entrada do coletor MPEG-4, o coletor MPEG-4 tentará extrair SPS e PPS de exemplos de entrada. O coletor MPEG-4 ignora todos os exemplos de entrada até encontrar o primeiro SPS e PPS, pois todos os exemplos de entrada sem SPS e PPS não podem ser decodificados.
Há suporte para informações 3D no registro de configuração do AVC para MP4 não fragmental.
O comprimento da NALU é exposto para amostras compactadas H.264 para otimizar a decodificação DXVA de H.264 VLD.
O código-fonte MPEG-4 define MF_NALU_LENGTH_SET no tipo de mídia de saída de MFVideoFormat_H264 ou MFVideoFormat_h264. Ele define o blob de MF_NALU_LENGTH_INFORMATION em cada exemplo de saída, com comprimento NALU de quatro bytes para DIFERENTES NALUs em uma amostra compactada.
Suporte adicionado para áudio do MPEG2 ADTS na fonte MP4.
Tópicos relacionados