В этой статье вы узнаете об основах медиафайлов, таких как концепции контейнера, и нескольких из множества доступных форматов кодеков, которые вы можете использовать в потоке. Плюс слегка коснетесь таких тем, как адаптивная потоковая передача, битрейт и разрешение, но мы подробнее рассмотрим все это в последующих разделах.
Обслуживание видеофайлов
Вы можете подумать, что вы можете взять необработанный файл с видеокамеры и просто загрузить его в сеть как есть. Действительно, сайты потокового видео, такие как YouTube или Vimeo, позволяют вам сделать именно это и даже предоставляют возможности потоковой передачи в реальном времени — обычно путем подключения к порту HDMI вашей камеры и последующей обработки через карту захвата. Эти сервисы значительно упрощают обработку и загрузку видео, что включает в себя создание множества файлов и манифестов, необходимых для адаптивной потоковой передачи и различных разрешений. Плюс множество других сложных и тонких требований, которые делают самостоятельный хостинг немного рутиной. Подготовка и обслуживание видео с вашего собственного сайта, и, вероятно, отдельного медиасервера, немного сложнее, чем просто загрузка необработанного файла камеры, если вас волнует, как ваши пользователи видят ваш сайт.
Видеофайлы бывают разных форматов. Формат, который выходит из вашей камеры, обычно представляет собой файл .mov
или .mp4
если у вас хорошая современная беззеркальная камера. Однако, хотя .mov
хорош для записи, редактирования и других ранних процессов постобработки, размер файла означает, что он не подходит для потоковой передачи через Интернет. Кроме того, размер файла необработанного .mp4
в 4K сделает воспроизведение этого файла на мобильном устройстве очень невыгодным. Поскольку браузеры поддерживают разные форматы файлов, вам нужно будет создать несколько оптимизированных файлов и, возможно, манифест, если вы планируете поддерживать адаптивную потоковую передачу. Перед конвертацией файлов вам нужно понять несколько основ о них и об их характеристиках.
Контейнеры, кодеки и потоки?
Файл, который вы видите в оболочке вашей операционной системы, является контейнером , идентифицируемым по расширению файла ( .mp4
, .webm
, .ogg
и т. д.). Контейнер содержит один или несколько потоков . Медиафайл может иметь любое количество потоков, гораздо большего количества форматов , чем мы рассмотрим здесь.
Файлы примеров, используемые далее в этом разделе, содержат максимум два потока: аудиопоток и видеопоток. Среди других типов, с которыми вы можете столкнуться, есть субтитры и данные, оба из которых выходят за рамки этой статьи. Есть случаи, когда аудио- и видеопотоки рассматриваются отдельно. Большинство файлов, с которыми вы столкнетесь, будут содержать только один аудиопоток и один видеопоток.
В аудио- и видеопотоках фактические данные сжимаются с помощью кодека. Кодек , или кодер/декодер, — это формат сжатия видео- или аудиоданных. Различие между контейнером и кодеком важно, поскольку файлы с одним и тем же контейнером могут иметь свое содержимое, закодированное разными кодеками.
Изображение ниже иллюстрирует эту структуру. Слева — базовая структура контейнера с двумя потоками. Справа — особенности этой структуры для одного файла WebM.

Файлы в контейнерах WebM могут быть на порядок меньше других форматов, что делает их хорошим выбором для потоковой передачи на мобильных сайтах. К сожалению, не все браузеры поддерживают современные контейнеры и кодеки. Например, WebM был создан специально для Интернета как высококачественный и открытый вариант, но его поддержка пока не является универсальной. В частности, Safari, согласно Can I use на момент написания этой статьи, не поддерживает WebM для встроенного видео. Однако WebM имеет частичную поддержку с кодеками VP8 и VP9, используемыми в WebRTC. Поэтому лучшим вариантом будет предоставить резервное видео.
Форматы кодеков
Многие типы файлов поддерживают несколько кодеков в одном контейнере. Полный список доступных видеокодеков и аудиокодеков был бы отдельным веб-сайтом. Приведенные ссылки предназначены для практических списков MDN того, что можно использовать в Интернете. Ниже перечислены предпочтительные в настоящее время типы файлов и кодеки, которые они могут использовать. Перейдите по ссылкам типов файлов, чтобы просмотреть браузеры, которые их поддерживают.
Тип файла | Видеокодек | Аудиокодек |
---|---|---|
МП4 | AV1 , AVC (H.264) *, VP9 | ААК |
ВебМ | АВ1 , ВП9 * | Ворбис , Опус |
* Указывает предпочтительный видеокодек.
Битрейт и разрешение
Битрейт — это максимальное количество бит, используемых для кодирования одной секунды потока. Чем больше бит используется для кодирования секунды потока, тем выше потенциальная детализация и точность. Более подробную информацию об этой концепции мы предоставляем в разделе Битрейт .
Разрешение — это количество информации в одном кадре видео, заданное как количество логических пикселей в каждом измерении. Мы предоставляем больше информации об этой концепции в разделе Разрешение .
Далее, в разделе Основы работы с медиаприложениями , мы покажем вам, как проверить эти характеристики с помощью двух инструментов командной строки: Shaka Packager и FFmpeg.
,В этой статье вы узнаете об основах медиафайлов, таких как концепции контейнера, и нескольких из множества доступных форматов кодеков, которые вы можете использовать в потоке. Плюс слегка коснетесь таких тем, как адаптивная потоковая передача, битрейт и разрешение, но мы подробнее рассмотрим все это в последующих разделах.
Обслуживание видеофайлов
Вы можете подумать, что вы можете взять необработанный файл с видеокамеры и просто загрузить его в сеть как есть. Действительно, сайты потокового видео, такие как YouTube или Vimeo, позволяют вам сделать именно это и даже предоставляют возможности потоковой передачи в реальном времени — обычно путем подключения к порту HDMI вашей камеры и последующей обработки через карту захвата. Эти сервисы значительно упрощают обработку и загрузку видео, что включает в себя создание множества файлов и манифестов, необходимых для адаптивной потоковой передачи и различных разрешений. Плюс множество других сложных и тонких требований, которые делают самостоятельный хостинг немного рутиной. Подготовка и обслуживание видео с вашего собственного сайта, и, вероятно, отдельного медиасервера, немного сложнее, чем просто загрузка необработанного файла камеры, если вас волнует, как ваши пользователи видят ваш сайт.
Видеофайлы бывают разных форматов. Формат, который выходит из вашей камеры, обычно представляет собой файл .mov
или .mp4
если у вас хорошая современная беззеркальная камера. Однако, хотя .mov
хорош для записи, редактирования и других ранних процессов постобработки, размер файла означает, что он не подходит для потоковой передачи через Интернет. Кроме того, размер файла необработанного .mp4
в 4K сделает воспроизведение этого файла на мобильном устройстве очень невыгодным. Поскольку браузеры поддерживают разные форматы файлов, вам нужно будет создать несколько оптимизированных файлов и, возможно, манифест, если вы планируете поддерживать адаптивную потоковую передачу. Перед конвертацией файлов вам нужно понять несколько основ о них и об их характеристиках.
Контейнеры, кодеки и потоки?
Файл, который вы видите в оболочке вашей операционной системы, является контейнером , идентифицируемым по расширению файла ( .mp4
, .webm
, .ogg
и т. д.). Контейнер содержит один или несколько потоков . Медиафайл может иметь любое количество потоков, гораздо большего количества форматов , чем мы рассмотрим здесь.
Файлы примеров, используемые далее в этом разделе, содержат максимум два потока: аудиопоток и видеопоток. Среди других типов, с которыми вы можете столкнуться, есть субтитры и данные, оба из которых выходят за рамки этой статьи. Есть случаи, когда аудио- и видеопотоки рассматриваются отдельно. Большинство файлов, с которыми вы столкнетесь, будут содержать только один аудиопоток и один видеопоток.
В аудио- и видеопотоках фактические данные сжимаются с помощью кодека. Кодек , или кодер/декодер, — это формат сжатия видео- или аудиоданных. Различие между контейнером и кодеком важно, поскольку файлы с одним и тем же контейнером могут иметь свое содержимое, закодированное разными кодеками.
Изображение ниже иллюстрирует эту структуру. Слева — базовая структура контейнера с двумя потоками. Справа — особенности этой структуры для одного файла WebM.

Файлы в контейнерах WebM могут быть на порядок меньше других форматов, что делает их хорошим выбором для потоковой передачи на мобильных сайтах. К сожалению, не все браузеры поддерживают современные контейнеры и кодеки. Например, WebM был создан специально для Интернета как высококачественный и открытый вариант, но его поддержка пока не является универсальной. В частности, Safari, согласно Can I use на момент написания этой статьи, не поддерживает WebM для встроенного видео. Однако WebM имеет частичную поддержку с кодеками VP8 и VP9, используемыми в WebRTC. Поэтому лучшим вариантом будет предоставить резервное видео.
Форматы кодеков
Многие типы файлов поддерживают несколько кодеков в одном контейнере. Полный список доступных видеокодеков и аудиокодеков был бы отдельным веб-сайтом. Приведенные ссылки предназначены для практических списков MDN того, что можно использовать в Интернете. Ниже перечислены предпочтительные в настоящее время типы файлов и кодеки, которые они могут использовать. Перейдите по ссылкам типов файлов, чтобы просмотреть браузеры, которые их поддерживают.
Тип файла | Видеокодек | Аудиокодек |
---|---|---|
МП4 | AV1 , AVC (H.264) *, VP9 | ААК |
ВебМ | АВ1 , ВП9 * | Ворбис , Опус |
* Указывает предпочтительный видеокодек.
Битрейт и разрешение
Битрейт — это максимальное количество бит, используемых для кодирования одной секунды потока. Чем больше бит используется для кодирования секунды потока, тем выше потенциальная детализация и точность. Более подробную информацию об этой концепции мы предоставляем в разделе Битрейт .
Разрешение — это количество информации в одном кадре видео, заданное как количество логических пикселей в каждом измерении. Мы предоставляем больше информации об этой концепции в разделе Разрешение .
Далее, в разделе Основы работы с медиаприложениями , мы покажем вам, как проверить эти характеристики с помощью двух инструментов командной строки: Shaka Packager и FFmpeg.