У меня есть два файла MP4, скажем,
- mp4 (20 секунд) и
- mp4 (20 секунд);
оба генерируются одним и тем же приложением. Я хочу объединить их программно. Я прочитал документацию ISO / IEC 14496-12 и искал в Google несколько возможных ответов, но их всего несколько.
Из того, что я прочитал до сих пор, файлы можно объединить, если я объединю часть MDAT и объединю элементы блока STBL, такие как STTS, STSS, STSC, STSZ, STCO и т. Д.
Я пробовал использовать упомянутую выше стратегию, я редактировал часть продолжительности в MVHD и MDHD, объединил другие поля, как показано ниже, и вывел как новый файл mp4.
MDAT part of 1.mp4 -- MDAT part of 2.mp4 -- MOOV box (MOOV, MVHD, TRAK, MDIA, STBL, etc)
Внутри блока STBL я объединил элементы в два файла, использую ту же структуру для аудио и видео частей:
STTS(1.mp4) -- STTS(2.mp4) -- STSS(1.mp4) -- STSS(2.mp4) -- STSC(1.mp4) -- STSC(2.mp4) -- STSZ(1.mp4) -- STSZ(2.mp4) -- STCO(1.mp4) -- STCO(2.mp4)
Однако выходной файл нельзя воспроизвести или открыть.
Если бы я просто объединил блоки TRAK двух файлов, например:
MOOV (MVHD -- TRAK (and all other boxes of 1.mp4) -- TRAK (and all other boxes of 1.mp4))
Я могу воспроизвести выходной файл, но продолжительность остается такой же, как 1.mp4 ...
Есть предложения или конкретные примеры того, какие части мне следует отредактировать?
Спасибо.