O que é um arquivo M2V?
Um arquivo M2V contém um fluxo elementar de vídeo MPEG-2 sem áudio multiplexado nem um contêiner de uso geral. Portanto, as informações de temporização ou o áudio associado podem ser fornecidos por outro arquivo ou sistema de autoria.
Como funcionam os arquivos M2V
O M2V contém a sequência de imagens codificadas produzida por um codificador de vídeo MPEG-2: um cabeçalho de sequência, cabeçalhos opcionais de grupos de imagens e cabeçalhos de imagem com seus dados de imagem. Recursos do nível de contêiner, como faixas nomeadas, marcas de tempo de apresentação e som intercalado, estão ausentes. O software de autoria associa o fluxo a um áudio codificado separadamente e multiplexa ambos em um fluxo de programa MPEG, um fluxo de transporte ou uma estrutura voltada a DVD, na qual a camada de sistemas adiciona marcas de tempo aos cabeçalhos dos pacotes. Como a multiplexação copia as imagens codificadas, o vídeo pode ser remultiplexado sem outra codificação com perdas.
Informações essenciais
- A extensão
.m2vé uma convenção de nomenclatura para um fluxo de bits de vídeo H.262/MPEG-2 bruto e, por si só, não comprova nada. As ferramentas identificam o conteúdo pelos códigos de início: a detecção de vídeo MPEG bruto do FFmpeg conta os códigos de início de sequência, imagem e fatia e rejeita dados que contenham cabeçalhos de blocos de fluxo de programa ou pacotes de áudio. - Um arquivo M2V não tem marcas de tempo de apresentação, mas sua sintaxe de vídeo ainda descreve a temporização da reprodução. O cabeçalho de sequência declara as dimensões da imagem, informações de proporção e um
frame_rate_codeque seleciona taxas como 24000/1001, 25 ou 30000/1001 quadros por segundo. Cada cabeçalho de imagem MPEG-2 é seguido por uma extensão de codificação de imagem cujos sinalizadorestop_field_firsterepeat_first_fieldpodem prolongar a exibição dessa imagem, por exemplo, para três períodos de campo em vez de dois no pulldown 3:2 de filmes, portanto as durações das imagens nem sempre são determinadas apenas pela taxa de quadros. As marcas de tempo de apresentação pertencem à camada de sistemas e aparecem somente após a multiplexação, nos cabeçalhos dos pacotes PES. Um cabeçalho de grupo de imagens, quando presente, contém um código de tempo que, segundo a H.262, não participa da decodificação. - Renomear um arquivo M2V para
.mpgnão o transforma em um fluxo de programa. Um fluxo de programa é formado por blocos, cada um com um cabeçalho de bloco seguido de pacotes PES, e nada disso existe em um fluxo de bits de vídeo puro. O arquivo continua contendo apenas vídeo, e um software que identifica pelo conteúdo continuará reconhecendo um fluxo elementar. - Adicionar som exige multiplexação, não conversão. Um multiplexador como
mplexdo MJPEG Tools combina vídeo MPEG com fluxos de áudio MPEG, AC-3, DTS ou LPCM em um fluxo de programa sem recodificar. Duas condições se aplicam: a sincronização de áudio e vídeo não é armazenada em nenhum dos arquivos elementares, portanto qualquer deslocamento inicial precisa ser fornecido ao multiplexador, e uma saída em conformidade com DVD exige o modo específico para DVD do multiplexador, que o próprio manual domplexdescreve como muito distante de uma autoria completa de DVD.
Quando os arquivos M2V são importantes
Os arquivos M2V vêm de fluxos de trabalho de autoria de DVD e Blu-ray, nos quais o vídeo é codificado como um fluxo elementar MPEG-2 separado do áudio, e os dois são multiplexados posteriormente. O Compressor da Apple, por exemplo, descreve sua saída de fluxo elementar MPEG-2 como um canal de vídeo sem áudio, para uso em um aplicativo de autoria de terceiros. Por si só, um arquivo M2V não tem som nem marcas de tempo ou índice no nível de contêiner, portanto trate-o como um arquivo intermediário para multiplexação, não como um arquivo de entrega.
Fontes
- Library of Congress: descrição do formato de codificação de vídeo MPEG-2 (H.262) (fluxos elementares, cabeçalhos de sequência, fluxos de programa)
- Manual do mplex(1), MJPEG Tools: multiplexador de fluxos de programa/sistema MPEG-1/2
- Documentação de formatos do FFmpeg: multiplexadores de fluxos brutos (mpeg2video, extensão m2v) e multiplexadores de fluxos de programa MPEG-1/MPEG-2
- Código-fonte do FFmpeg 8.0: libavformat/mpegvideodec.c (detecção de vídeo MPEG bruto)
- Guia do usuário do Apple Compressor: MPEG-2 (saída de fluxos de programa, elementares e de transporte)
- ITU-T H.262 (02/2000) | ISO/IEC 13818-2: vídeo MPEG-2 (estrutura de sequência de vídeo, cabeçalho de sequência, cabeçalho de grupo de imagens)
- ITU-T H.222.0 (08/2018) | ISO/IEC 13818-1: MPEG-2 Systems (pacotes PES, marcas de tempo de apresentação, blocos de fluxo de programa)