Existe um formato de vídeo existente que registra os metadados por quadro?

7

Desejo transmitir um vídeo com metadados dinâmicos. Sei que poderia apenas vaporizar o vídeo e os metadados separadamente, mas o ideal é que eles sejam vinculados permanentemente.

Existe um protocolo / codificação / formato existente que faça isso? Eu poderia armazenar os dados em cada quadro usando a esteganografia, mas essa não é uma solução ideal e é bastante hacky.

enigma
fonte

Respostas:

4

Se a taxa de quadros não for muito alta e você puder associar um quadro a um carimbo de data / hora preciso, o mais fácil seria adicionar os metadados como legendas em texto.

A outra opção é agrupar os metadados como cabeçalhos padrão .mp4ou em um formato de contêiner semelhante. .mp4pode ser dividido em vários fragmentos, cada um com seu próprio cabeçalho, e teoricamente isso pode ser feito por quadro. No entanto, fazer isso por mais de alguns quadros é extremamente ineficiente em termos de tamanho e desempenho do arquivo. Uma variação desse método seria extrair cada quadro como uma imagem (por exemplo, JEPG) e definir seus metadados.

Ainda outra opção é usar a estenografia sem hackers; basta codificar os metadados em um fluxo separado, sincronizado com o carimbo de data e hora com o fluxo de vídeo principal. A maioria dos formatos modernos de contêiner, inclusive .mp4, pode acomodar vários fluxos de vídeo no mesmo contêiner (por exemplo, você pode rotular o fluxo de metadados codificados como o mesmo conteúdo, mas em outro idioma).

avnr
fonte
Fluxos de legenda é o que eu estava pensando também. Sinalize-o como não-padrão ou adicione um fluxo de legenda vazio como o primeiro sub-fluxo, para que os jogadores que não estão cientes do seu sub-formato personalizado não o exibam como texto.
Peter Cordes
O ffmpeg distingue entre legenda e outros fluxos de dados. por exemplo, existem coisas como metadados RTP em alguns arquivos de vídeo e é um fluxo de metadados separado no contêiner mp4. Portanto, dependendo do que você precisa, você pode usar apenas um fluxo de dados personalizado com muxed em mp4 ou mkv.
Peter Cordes
2

Não tenho certeza de como isso se encaixa em uma estratégia de streaming, mas o formato de arquivo DPX inclui metadados por quadro (potencialmente uma grande quantidade). Este artigo da Wikipedia tem as informações básicas.

Também não estou claro sobre o que você quer dizer com "vinculado permanentemente". No contêiner do arquivo AVI, o "I" significa "Interleaved", onde pacotes de vídeo e áudio (aproximadamente) se alternam no arquivo. Isso é verdade para quase todos os formatos de contêiner. Os fluxos podem ser separados, mas eles coexistem nativamente em um meta-fluxo.

Jim Mack
fonte