MP4 Atom Parsing - onde configurar o tempo…?

Eu escrevi um analisador MP4 que pode ler átomos em um MP4 muito bem e juntá-los novamente - o resultado é um arquivo MP4 tecnicamente válido que o Quicktime pode abrir e tal, mas não pode reproduzir nenhum áudio, pois acredito que a informação de tempo / amostragem está desativada. Eu provavelmente deveria mencionar que estou interessado apenas em áudio.

O que estou fazendo é tentar pegar os átomos moov / etc de um MP4 existente, e então pegar apenas um subconjunto do átomo mdat no arquivo para criar um MP4 novo e menor. Ao fazê-lo eu alterei oduration nomvhd átomo, bem como a duração nomdia cabeçalho. Não hátkhd átomos neste arquivo que edita, então eu acredito que eu não preciso alterar as durações lá - o que estou perdendo?

Ao criar o novo MP4 eu estou seccionando corretamente omdat bloquear com uma caixa larga, e mantendo o cabeçalho / tamanho 'mdat' em seus lugares certos - eu me certifico de atualizar o tamanho com o novo conteúdo.

Agora é totalmente possível que eu esteja faltando algo crucial sobre o formato, mas se isso for possível, eu adoraria ter a peça final. Alguém tem alguma entrada / ideias?

Código pode ser encontrado no seguinte link:

https://gist.github.com/ryanmcgrath/958c602cff133bd7fa0b

questionAnswers(1)

yourAnswerToTheQuestion