Android: пример пакетирования mpeg4 / H.264 - PullRequest
2 голосов
/ 03 мая 2011

Мне нужно разделить видеопоток mpeg4 (фактически с видеокамеры Android), чтобы отправить его через RTP. Спецификация немного велика для быстрого ознакомления.

Интересно, есть ли пример / открытый исходный код для пакетирования mpeg4?

Спасибо за любую помощь!

1 Ответ

5 голосов
/ 03 мая 2011

Формат файла Mpeg4 также называется ISO / IEC 14496-14.Google это любой, вы найдете спецификации.Однако то, что вы пытаетесь сделать (издатель RTP), будет трудным по следующим причинам:

  1. Mpeg4 имеет заголовок в конце файла.Что означает, что заголовок будет записан только после завершения видеопотока.Поскольку вы хотите осуществлять потоковую передачу видео в реальном времени, вам нужно будет угадать, где начинаются / заканчиваются аудио- и видеопакеты.Это не будет одинаковым на всех устройствах Android, так как они могут использовать видео разного размера и параметры кодека.Таким образом, ваш код будет зависеть от устройства, и вам нужно будет поддерживать и тестировать множество различных устройств.

  2. Некоторые устройства не сбрасывают видеоданные в файл через равные промежутки времени.Некоторые промывают только раз в минуту или около того.Это нарушит ваш поток в реальном времени.

  3. Нет примера кода.Я знаю, потому что я посмотрел.Есть несколько компаний, которые делают что-то подобное, но в основном они пропускают RTP.Вместо этого они постепенно загружают файл на свой собственный сервер, а затем реализуют «прерывание» видео / аудиопотока и затем вставляют его в серверную часть своего видео / транскодера.Я работал на одну из этих компаний, и вот как мы это сделали.AFAIK конкурс принял аналогичные подходы.Плюс в том, что вся сложность на сервере, и вам не нужно обновлять клиентов, когда что-то ломается или появляются новые устройства.

...