O que é um arquivo M2TS?

Um arquivo M2TS contém um fluxo de transporte BDAV MPEG-2, a variante do fluxo de transporte MPEG-2 usada pelo Blu-ray Disc e pelo AVCHD, na qual um cabeçalho de 4 bytes precede cada pacote de transporte de 188 bytes. Ele pode multiplexar vídeo, áudio, gráficos de legendas e outros fluxos elementares em um único arquivo.

Como funcionam os arquivos M2TS

O formato Blu-ray Disc somente leitura armazena o áudio e o vídeo de cada clipe como um fluxo de transporte BDAV MPEG-2 em um arquivo .m2ts. O fluxo é uma sequência de pacotes de origem de 192 bytes, cada um com um TP_extra_header de 4 bytes seguido de um pacote de transporte MPEG-2 padrão de 188 bytes, agrupados em unidades alinhadas de 6144 bytes com 32 pacotes. Dentro dos pacotes de transporte, aplicam-se as regras usuais de MPEG-2 Systems: a tabela de associação de programas aponta para uma tabela de mapeamento de programa, que identifica os fluxos elementares do programa pelo identificador de pacote. Em um disco, o arquivo .m2ts é apenas metade de um clipe. Um arquivo .clpi com a mesma numeração armazena as marcas de tempo dos pontos de acesso ao fluxo, e os arquivos de playlist .mpls descrevem o que reproduzir como uma lista de itens de reprodução, cada um com um ponto de entrada e um ponto de saída no eixo de tempo de um clipe. Filmadoras AVCHD gravam no mesmo contêiner, e a descrição do formato da Library of Congress lista mts como uma segunda extensão para ele.

Informações essenciais

  1. Cada pacote de origem tem 192 bytes: um TP_extra_header de 4 bytes seguido de um pacote de transporte MPEG-2 padrão de 188 bytes. Um analisador que percorra o arquivo em pacotes de 188 bytes perderá o alinhamento, pois o byte de sincronização do transporte fica no deslocamento 4 de cada pacote de origem. O demultiplexador MPEG-TS do FFmpeg lida com isso detectando o tamanho dos pacotes e pulando os primeiros 4 bytes de cada pacote de 192 bytes.
  2. Um arquivo .m2ts isolado contém o fluxo de um clipe, não um título. Em um disco Blu-ray, as playlists .mpls em BDMV/PLAYLIST selecionam intervalos de clipes e sua ordem, e os arquivos de informações de clipe .clpi em BDMV/CLIPINF contêm as marcas de tempo dos pontos de acesso que um reprodutor usa para encontrar onde começar a leitura. Os títulos ficam um nível acima: a tabela de índice do disco associa cada título a um objeto de filme ou objeto BD-J, e os objetos de filme, armazenados em BDMV/MovieObject.bdmv, iniciam a reprodução de playlists. Portanto, abrir os arquivos em BDMV/STREAM um por um fornece os fluxos de cada clipe sem a ordem de reprodução e os pontos de entrada e saída definidos pelas playlists.
  3. As legendas de Blu-ray podem ficar em dois lugares. Fluxos de gráficos de apresentação em bitmap são multiplexados no fluxo de transporte BDAV junto com vídeo e áudio. As legendas de texto ficam em um clipe separado, fora da multiplexação, que uma playlist vincula por meio de um subcaminho, portanto elas não estão no .m2ts do clipe principal. O arquivo de fluxo do clipe de legendas fica em BDMV/STREAM junto com os clipes de áudio e vídeo, e as fontes das legendas ficam em arquivos .otf separados no diretório AUXDATA.
  4. Reempacotar M2TS em outro contêiner com cópia de fluxos mantém o vídeo e o áudio codificados intactos, pois nada é decodificado ou recodificado; o FFmpeg observa que a cópia de fluxos ainda pode falhar quando o contêiner de destino precisa de informações que a origem não fornece. Clipes de Blu-ray podem conter vídeo MPEG-2, H.264/AVC ou VC-1, portanto verifique cada fluxo em relação ao que o contêiner de destino aceita. As legendas mostram o limite: no código-fonte do FFmpeg 8.0, o multiplexador MP4 não tem uma tag de codec para nenhum dos dois codecs de legenda de Blu-ray e rejeita esses fluxos. Clipes de discos comerciais são um caso à parte: a Library of Congress observa que o próprio M2TS não oferece suporte a criptografia, mas que os discos Blu-ray costumam ser protegidos com AACS.

Quando os arquivos M2TS são importantes

Pipelines de mídia encontram M2TS ao ingerir gravações de filmadoras AVCHD ou os arquivos de clipe no diretório BDMV/STREAM de uma estrutura Blu-ray Disc. A decisão importante é tratar um arquivo como um fluxo independente ou como um clipe de um disco: um único .m2ts pode ser demultiplexado por conta própria, mas a ordem de reprodução e as tabelas de pontos de acesso são definidas nos arquivos associados de playlist e informações de clipe, e os títulos do disco, na tabela de índice.

Trabalhar com arquivos M2TS

O multiplexador MPEG-TS do FFmpeg tem um modo m2ts que grava o prefixo de 4 bytes antes de cada pacote de transporte e usa identificadores de pacote fixos. No código-fonte do FFmpeg 8.0, a configuração automática ativa o modo quando o nome da saída termina em .m2ts, e o multiplexador recusa mais de um programa nesse modo. O valor que o FFmpeg grava no prefixo é uma marca de tempo de 30 bits obtida do relógio de programa do fluxo.

Gravar um arquivo de pacotes de 192 bytes não é o mesmo que fazer a autoria de um disco. Uma estrutura BDMV de Blu-ray também precisa de arquivos de índice, objetos de filme, playlists e informações de clipe, e os reprodutores navegam por esses arquivos, em vez dos arquivos de fluxo. Para ler uma playlist em vez de um único clipe, o FFmpeg oferece um protocolo de entrada bluray que lê uma playlist de uma estrutura de disco montada.

Fontes

Transforme conhecimento sobre mídia em um pipeline funcional

Conecte uploads, processamento, IA, armazenamento e entrega por meio de uma única API declarativa, com o stack de codificação, o ajuste de escala e as constantes mudanças de formatos gerenciados para você.

Experimente a Transloadit gratuitamente