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: