2016-10-17 11 views
1

Я как бы прошел упражнение, пытаясь понять потоковое вещание немного больше. Поэтому, пожалуйста, несите мое невежество :)h.264 MPEG-TS to MP4 file

У меня есть файлы mpeg-ts с потоком h.264 внутри. Я смог написать небольшую программу (на Java) по спецификации ISO 13818-1 для извлечения пакетов PES. Оттуда я могу легко извлечь пакетные данные PES.

Так что я понимаю, что h.264 является mp4, но я полагаю, что это не так просто, как просто связать все пакетные данные PES в файл с именем .mp4, чтобы создать рабочий файл mp4.

Я не совсем понимаю, каковы на самом деле пакеты данных PES на этом этапе.

Но в основном, я пытаюсь получить представление о том, что этот алгоритм будет в основном напоминать данные, которые у меня есть для файла mp4.

ответ

1

H.264 - стандарт сжатия видео, в то время как MP4 - формат файла контейнера.

Пакетированный элементарный поток (PES) инкапсулирует элементарный поток (ES), который в вашем случае является потоком бит H.264. Существует несколько способов форматирования битового потока H.264.

Поскольку ваш вход является транспортным потоком MPEG-2, он использует формат приложения B. Это означает, что поток битов состоит из последовательности блоков уровня абстракции сети (NALU) с префиксом начальных кодов.

Формат MP4 использует другой формат, в котором каждый NALU имеет префикс поля, содержащего его длину.

Вам нужно будет преобразовать поток бит в соответствующий формат и добавить его в новый контейнер. Взгляните на this answer и найдите стандарт MP4 для получения дополнительной информации.