Видеоконтейнер Mp4 и используемые с ним кодеки

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

Я некоторое время искал, но не смог найти так много об основах контейнеров mp4 и рабочем и полном объяснении его структуры.

Пока что прочитал это и это , но мало информации именно о контейнере mp4.

Мой вопрос,

Существует так много аудио/видео кодеков, которые используются, но какие кодеки используются с контейнером mp4?

Можем ли мы использовать любой кодек с контейнером mp4? потому что существует дюжина разных кодеков, и как узнать, какой из них можно использовать с контейнером mp4?,

и есть ли книга или статья о структуре и объяснении контейнера Mp4?

Старый вопрос с хорошим новым ответом здесь: Понимание контейнеров и кодеков

Ответы (1)

Статья в Википедии о MPEG-4 — отличное начало, поскольку спецификация файла MP4 является частью спецификации MPEG-4. В частности, версия 2 MP4 — это MPEG-4 Part 14 . Хотя это и не бесплатно, вы можете приобрести копии спецификации ISO по ISO# 14496-14:2003 . Предварительный просмотр с некоторыми деталями доступен из ISO здесь .

Он предназначен для хранения любого из различных видеоформатов MPEG, включая MPEG, MPEG-2, MPEG-4 Part 2 (общий MPEG-4) и, возможно, чаще всего MPEG-4 part 10 (H.264). Теоретически он может поддерживать практически любой формат видеопотока, однако эти 4 являются наиболее широко поддерживаемыми типами файлов.

Полный список официально зарегистрированных типов кодеков можно получить в Центре регистрации MP4 здесь .

Теоретически любой контейнер не может поддерживать любой кодек? Разве это не вопрос способности игрока правильно понять их?
@digivisionmedia зависит от контейнера. Некоторые могут иметь перечисления разрешенных кодеков, поскольку для их идентификации используется целое число, а не открытая запись. Теоретически вы можете создать контейнер, который может содержать любой кодек.