MP4 Atom Parsing - gdzie skonfigurować czas…?

Napisałem parser MP4, który może odczytywać atomy w MP4, i zszywać je razem - w rezultacie powstał poprawny technicznie plik MP4, który Quicktime może otworzyć i tak dalej, ale nie może odtwarzać dźwięku, ponieważ wierzę, że informacje o czasie / próbkowaniu są wyłączone. Powinienem chyba wspomnieć, że interesuje mnie tylko audio.

Próbuję pobrać atomy moov / etc z istniejącego MP4, a następnie wziąć tylko podzbiór atomu mdat w pliku, aby utworzyć nowy, mniejszy MP4. W ten sposób zmieniłemduration wmvhd atom, a także czas trwania wmdia nagłówek. Nie matkhd atomy w tym pliku, które mają edycje, więc uważam, że nie muszę tam zmieniać czasu trwania - czego brakuje?

Podczas tworzenia nowego MP4 poprawnie podzielę sekcjęmdat zablokuj szerokim pudełkiem i zachowaj nagłówek / rozmiar „mdat” we właściwych miejscach - upewniam się, że zaktualizowałem rozmiar nową zawartością.

Teraz jest to w 100% możliwe. Brakuje mi czegoś istotnego w tym formacie, ale jeśli to możliwe, chciałbym zdobyć ostatni kawałek. Ktoś ma jakieś dane wejściowe / pomysły?

Kod można znaleźć pod następującym linkiem:

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

questionAnswers(1)

yourAnswerToTheQuestion