Я так запутался ... в чем разница между аудио / видео кодеком (который, по-видимому, является сокращением для "кодера / декодера", вроде того, как "модем" на самом деле "модулятор / демодулятор") и аудио / видео формат?
(Я даже использую правильную терминологию?)
то есть: в чем разница между тем, чтобы что-то сказать «MPEG-4», и тем, что что-то использует кодек «DivX»? Почему Windows Media Player иногда запускает .mpg
файлы, а иногда нет?
Кроме того, какие из следующих кодеков, какие форматы файлов, а какие нет?
- Quicktime MOV
- MPEG (1, 2, 3, 4)
- WMV
- FFmpeg
- AVC
- Xvid
- DivX (чем он отличается от своего палиндрома, Xvid?)
- H.264
video
codec
file-format
video-codecs
Mehrdad
источник
источник
Ответы:
Некоторые основные определения:
Как вы можете видеть, мы должны объяснить несколько вещей здесь.
Что такое кодек?
Кодек короток для кодера / декодера, который в основном просто означает следующее: Данные , полученные с помощью кодера всегда можно декодировать с помощью соответствующего декодера. Это действительно для видео, аудио, но вы также можете подумать о криптографии (кодировщику нужен соответствующий декодер для отображения зашифрованного сообщения).
В настоящее время, когда указывается видеокодек, участвующие в нем учреждения обычно определяют только синтаксис стандарта. Например, они скажут: «Формат битового потока должен быть таким», «
0x810429AAB
Здесь будет переведено в это» и т. Д. Часто они предоставляют эталонный кодер и декодер, но как тогда кодер пишется для соответствия такому Формат полностью зависит от производителей.По этой причине вы найдете так много кодеров для одного и того же кодека, а некоторые даже коммерческие.
Пример дела - H.264
Прежде чем мы перепутаем терминологию, давайте рассмотрим пример. Рассмотрим случай для H.264 . Название стандарта - H.264 - это не имя фактического кодировщика. Mainconcept - очень хороший коммерческий кодер, тогда как x264 - бесплатный и с открытым исходным кодом. Конечно, оба претендуют на высокое качество.
Тот факт, что вы можете оптимизировать кодировку, создает конкуренцию здесь. Оба кодера доставляют стандартизированный поток битов, который всегда можно декодировать с помощью H.264-совместимого декодера.
Обобщить
Итак, в общем, давайте просто скажем, что кодер будет:
Затем поток битов мультиплексируется в контейнер.
Декодер будет:
Они оба соответствуют стандарту кодеков. Вот и все!
Текущие кодеки
В наши дни вы, вероятно, найдете только видео с кодеками, о которых я упомяну ниже. Интересно, что почти все они были созданы группой экспертов по кинематографии (MPEG). Но есть и другие бесплатные кодеки, например, созданные Google или Alliance for Open Media, которые являются конкурентами стандартов MPEG.
Обратите внимание, что «MPEG» может относиться как к кодекам, так и к контейнерам, как вы увидите ниже. Это добавляет путаницы, но просто знайте, что само по себе «MPEG» ничего не значит, например, «у меня есть файл в формате MPEG», это очень неоднозначно ».
MPEG-2,
MPEG-2 довольно старый. Его первый публичный выпуск вышел в 1996 году. Видео MPEG-2 в основном используется для DVD и телевизионного вещания, например, DVB-T или спутникового, а также для унаследованных приложений, где важна совместимость. Видео MPEG-2 в основном находятся в контейнере .MPG .
MPEG-4 часть 2
Вероятно, это тот, который использовался в основном для кодирования видео для Интернета в середине 2000-х, но в то же время он был заменен. Он предлагает хорошее качество при практических размерах файлов, что означает, что вы можете записать весь фильм продолжительностью 90 минут на компакт-диск объемом 600 МБ (тогда как для MPEG-2 вам понадобился бы DVD, см. Мой ответ здесь ). Это больше не работает так хорошо для HD или 4K контента.
Некоторыми кодировщиками, которые выводят видео в формате MPEG-4 Part 2, являются DivX , его Ripoff с открытым исходным кодом XviD и Nero Digital .
Видеоролики MPEG-4 Part 2 в основном поставляются в контейнере AVI , но MP4 также часто просматривается.
MPEG-4 Part 10 / AVC / H.264
Это также известно как MPEG-4 Advanced Video Coding (AVC) или H.264 ; это самый используемый кодек сегодня. Он предлагает хорошее качество при небольших размерах файлов и поэтому идеально подходит для всех видов видео для Интернета или мобильных устройств. Вы найдете H.264 практически во всех современных приложениях, от телефонов до видеокамер. На дисках Blu-ray видео теперь кодируется в формате H.264.
Некоторые кодеры для этого: x264 , NVENC (от NVIDIA), Mainconcept . Видео в основном приходят в контейнерах MP4 , MKV или MOV .
HEVC / H.265
Также называется MPEG-H Part 2, это преемник MPEG-4 Part 10 / AVC / H.264. Он нацелен на более высокие разрешения (до 8 КБ ) и может обеспечить производительность кодирования на 50% выше (с точки зрения качества и скорости передачи битов) по сравнению с H.264 (см. , Например, эту статью ).
Стандарт был опубликован в 2013 году, и постепенно кодек начинает все больше и больше использоваться, например, для IPTV или онлайн-трансляции видео. HEVC также используется Apple для хранения видео и изображений (с использованием HEIF ) на iOS. Однако тот факт, что с HEVC связано несколько патентных пулов, заставляет многие компании (почти все, кроме Apple) переходить на альтернативы без роялти. HEVC также изначально не поддерживается всеми браузерами, что делает его непригодным для потоковой передачи через Интернет.
Самый известный кодер - x265 . Там же NVENC . Видео обычно приходят в контейнерах MP4 .
VP9 и AV1
VP9 (преемник VP8) - это кодек, в основном разработанный Google. Он открыт и бесплатен, и реализован во многих браузерах . Его качество почти так же хорошо, как HEVC, а иногда даже лучше (см. Эту статью Netflix). VP9 - это то, что вы получаете, когда смотрите YouTube в браузере, который его поддерживает.
VP9 может быть закодирован с помощью кодера libvpx , и он часто поставляется в контейнерах WebM или MKV .
Некоторые компании собрались вместе, чтобы сформировать еще более сильного конкурента HEVC - но в качестве альтернативы без роялти. AV1 будет преемником VP9, и он основан на том, что должно было стать VP10. Он поддерживается Альянсом открытых медиа (основанным Amazon, Cisco, Google, Intel, Microsoft, Mozilla и Netflix). Подробнее об этом читайте здесь .
Libaom кодер может быть использован для создания AV1 битовых потоков, но это все еще является экспериментальной.
Что такое формат (контейнер)?
До сих пор мы только объясняли необработанный «поток битов», который в основном представляет собой просто необработанные видеоданные. Вы могли бы пойти дальше и посмотреть видео, используя такой сырой битовый поток. Но в большинстве случаев этого просто недостаточно или не практично.
Поэтому вам нужно обернуть видео в контейнер. Есть несколько причин, почему:
По всем этим причинам были изобретены форматы контейнеров, некоторые простые, некоторые более продвинутые. Все, что они делают, это «оборачивают» поток битов видео в другой поток битов.
Контейнер будет синхронизировать видео и аудио кадры в соответствии с их меткой времени представления (PTS), которая гарантирует, что они отображаются в одно и то же время. Он также позаботится о добавлении информации для потоковых серверов, если необходимо, чтобы потоковый сервер знал, когда отправлять какую часть файла.
Давайте посмотрим на некоторые популярные контейнеры.
Популярные контейнеры
Вы найдете видео в основном в следующих контейнерах. Есть и другие, менее популярные, но, как я уже сказал, в основном это:
AVI
Audio Video Interleave - это самый простой контейнер, он просто для чередования аудио и видео. Он был написан в 1992 году и до сих пор используется сегодня, но считается устаревшим, поэтому не используйте его больше.
MP4
также известен как MPEG-4 Part 14 и основан на формате файла QuickTime. Это формат перехода к видео H.264, но он также охватывает HEVC, MPEG-4 Part 2 и MPEG-2.
Этот контейнер может также обернуть только аудио, поэтому вы найдете так много файлов .mp4, которые не являются видео, а представляют собой аудио в кодировке AAC , также в файлах .m4a (просто с другим расширением). Расширение .m4v обычно используется для видеопотоков.
MKV и WebM
Matroska Video (MKV) - это бесплатный формат файлов с открытым исходным кодом, который часто встречается в настоящее время, поскольку он поддерживает практически любой кодек, от H.264 до VP9, и, конечно, также много аудиокодеков.
WebM основан на MKV и в основном используется для видео VP9 и Opus audio - он является контейнером для потокового видео в Интернете, когда используются эти кодеки.
Ogg
Контейнер Ogg является контейнером выбора для видеокодека Theora (и аудиокодека Vorbis ), также созданного Фондом Xiph.Org. Это также бесплатный и открытый исходный код (как и кодек).
FLV
Формат видео Flash был создан Adobe для использования в их потоковых приложениях. Он больше не используется, так как способ потоковой передачи значительно изменился за последние годы.
Популярные кодеки и форматы
libavcodec
иlibavformat
библиотеки для создания кодеков и контейнеров соответственно. Большинство видео инструментов, которые вы найдете сегодня, основаны на нем.На примечании стороны:
Я думаю, что однажды предпочел бы специально использовать «кодек» и «контейнер» вместо «формат», чтобы избежать недоразумений. Формат теоретически может быть любым, потому что кодеки и контейнеры определяют формат (то есть, как должны быть представлены данные).
При этом терминология FFmpeg будет заключаться в использовании «формата» для контейнера. Это также из-за различия между:
libavcodec
библиотека для кодирования / декодированияlibavformat
, библиотека для контейнеровисточник
В общем, медиа-формат - это действительно контейнер, содержащий аудиопоток (некоторого аудиокодека) и видеопоток (некоторого видеокодека), а иногда и дополнительную информацию. большинство «файлов» имеют тип файла на основе контейнера, а не кодека
FFmpeg не является ни контейнером, ни кодеком - это универсальный набор библиотек, кодеков и программного обеспечения для преобразования файлов, который лежит в основе многих конвертеров и музыкальных проигрывателей.
H.264 / AVC и xvid / divx являются кодеками
AVI (файлы divx / xvid), mp4, mpeg являются контейнерами.
Я не уверен насчет quicktime mov - .mov - это контейнер, quicktime - кодек.
источник
Есть кодеки и контейнеры (форматы файлов). Кодек описывает, как данные кодируются / декодируются. Другой описывает, как закодированные данные помещаются в файл.
Большинство медиаплееров поддерживают несколько типов кодеков и контейнеров. Это сбивает с толку, поэтому я предлагаю вам прочитать мои ссылки для получения дополнительной информации
источник
Формат - это имя, данное конкретному типу формата файла и типу сжатия (большая часть видео сжимается, чтобы уменьшить размер), а кодек - это то, что может фактически сжать его, прочитать его и преобразовать в видео, которое вы видите, распаковав его , Другими словами, один тип файла, а другой - часть программного обеспечения.
Обычно мы называем большинство видео по названию формата, поэтому Quicktime MOV, MPEG и WMV являются форматами.
FFmpeg (я никогда не слышал об этом), кажется, является названием программного обеспечения для преобразования различных форматов в другие форматы.
AVC и H.264 одинаковы и представляют собой формат для кодирования HD-видео.
DivX - это коммерчески продаваемый кодек.
Xvid - это кодек для MPEG-4.
источник