Можно ли подделать (mp4) атом moov? - PullRequest
6 голосов
/ 15 марта 2011

Я пытаюсь играть в MP4-Stream.Поток отправляется с моего телефона Android.Проблема в том, что атом moov, который необходим для воспроизведения mp4, записывается только в том случае, если телефон завершил запись.Так что на данный момент я только для воспроизведения потоковых данных, после завершения записи.Моя идея состояла в том, чтобы написать атом ftyp и moov самостоятельно, чтобы потоковые данные могли воспроизводиться во время записи телефона.Я пытался использовать moov Atom из другого видеофайла, но это не сработало.Я также читал, что обычно невозможно построить атом moov, если указан только атом mdat.Но в моем случае я знаю условия записи, такие как частота кадров и т. Д.

Итак, мой вопрос: можно ли сгенерировать действительный / пригодный атом moov для входящего потока, если я знаю параметры записи?1003 *

Ответы [ 2 ]

4 голосов
/ 23 октября 2012

Это возможно.Я сделал это 4 года назад, чтобы реализовать потоковую трансляцию на оригинальный iPhone.Просто заполните атомы STSZ и STCO кадрами постоянного размера, а затем заполните каждый кадр нулями.Да, размер будет огромным, но вы получите прямую трансляцию: -)

2 голосов
/ 08 апреля 2011

Похоже, что невозможно воспроизвести поток еще не законченного файла mp4, поскольку проигрывателю потребуются специальные таблицы с порциями и смещениями для определения местоположения каждой выборки данных.Вы можете подделать FTYP, MOOV и другие атомы, но вы не можете сгенерировать все таблицы, не заполнив файл.Лучшей стратегией было бы генерировать много коротких файлов mp4 и отправлять их файл за файлом ...

...