Где в mp4 файловой структуре продолжительность его?
Возможно, это не ответ на вашу проблему, но это было решение моей: http://mediainfo.sourceforge.net/
(В нем есть библиотека и открытый исходный код, так что вы можете просто проверить наличие нужные вам части)
MP4 - это «контейнерный» формат, что в основном означает, что он может содержать несколько различных аудио- или видеопотоков. И каждый поток может иметь собственное значение продолжительности ...
Чтобы выяснить, что вам нужно, вам понадобятся еще несколько справочных файлов. Я мог бы предложить поискать здесь и здесь ... но вам, вероятно, придется продолжить поиск различных типов аудио / видео потоков, которые вы хотите поддерживать.
Насколько я знаю - контейнер "mp4" получен из атомарной структуры QuickTime. Вы можете прочитать описание QuickTime File Format.
Парсинг атомов QuickTime не является большой проблемой (посмотрите на проект atomicParsley). Я не уверен насчет MP4, но что касается MOV-файлов - в атоме "mvhd" (заголовок фильма), а также в атоме "tkhd" (заголовок дорожки) есть поле "duration". Эта длительность обычно представляет собой количество кадров, умноженное на атрибут "шкала времени". Шкалу времени можно найти в тех же атомах.