Компьютеры и Интернет
Иногда когда вы пытаетесь воспроизвести видео файл в плеере, таком как Windows медиа-плеер, вы можете получить сообщение об ошибке, что файл не может быть воспроизведен, из-за того что необходимый кодек не установлен в вашей системе. На самом деле, большое количество проблем с воспроизведением аудио и видео часто может быть вызвано из-за отсутствия в системе правильных кодеков, установленных на вашем компьютере, проблем с установленным кодеком, или даже неверной версии. Если вам интересно, что такое кодек – они, как правило, состоят из 2-х слов кодер-декодер Coder-Decoder, и это просто устройство или небольшой кусок программного обеспечения, которое позволяет кодировать и декодировать блок данных, в нашем случае аудио или видео данных.
Если к примеру вам нужно скачать видео из интернета, ваш медиа-плеер должен иметь доступ к тому же декодеру, которым он был закодирован. Иногда, если вы спросите меня, менее опытные пользователи, не знают вообще имеют они определенный кодек или нет в системе, который будет в состоянии проиграть файл, большинство пользователей не смогут легко сказать вам, что это вообще такое.
Поиск этой информации может быть достаточно сложным для рядового домашнего пользователя, но есть способы, чтобы получить её, некоторыми лёгкими способами, но есть некоторые способы немного сложнее. Здесь мы предоставим инструкцию, как найти установленные кодеки в Windows, а также некоторые автоматические способы с помощью программного обеспечения, чтобы помочь Вам определить, какие установлены видео и аудио кодеки в вашей системе.
1. Найти кодеки с Sherlock
Программа, которая даст вам некоторую полезную информацию об установленных кодеках на компьютере Sherlock – The Codec Detective! В программе всё отображается в одном окне, и вы можете легко увидеть информацию о кодеке, с каким он связан файлом драйвера, его версия, дата и описание. Sherlock – это крошечный портативный исполняемый файл около 80К и не требует установки. При запуске детектив кодеков начинает сканирование установленных кодеков и покажет список в окне любой кодек, который появляется, и имеет он или нет проблемы. Когда вы попадаете в основной интерфейс этих “битых” кодеков они будут отображаться красным цветом.
Вы можете легко переключаться между аудио и видео кодеками, выбрав из выпадающего списка в левом верхнем углу окна. Существует также возможность экспортировать данные о всех установленных кодеков в текстовый файл, что очень удобно, если информация о том, что установлено должна быть отправлена кому-то, чтобы устранить или определить, что установлены правильные файлы. Программа была протестирована и работает в Windows 7.
Скачать Sherlock Вы можете по ссылке внизу.
2. С помощью программы от компании Nirsoft InstalledCodec
Компании nirsoft известна, как производитель простых и эффективных маленьких утилит, и InstalledCodec – это ещё одна утилита, которая делает то, что она предназначена делать. В дополнение к аудио и видео кодекам установленным в системе, она также может отображать фильтры DirectShow, которая является ценной функцией для пользователей 64-битной Windows , так ка кона предоставляет возможность отображения соответствующих 64-битных кодеков и фильтров. Любые недостающие или проблемы кодеков будут показываться в розовом цвете в главном окне.
Каждая запись имеет много информации, отображаемой в своей строке в том числе названия, описания, местоположения, размер, а также заслуга кодека, который является приоритетным, совместимость кодеков для данного формата. Ещё одна полезная опция, любой новичок может поиграть с ней, если ориентироваться на кого-то более опытного, то это возможность включить или отключить что-нибудь в списке, что идеально подходит для устранения проблем с кодеками. InstalledCodec – это портативная программа и работает в Windows 7.
Скачать InstalledCodec Вы можете по ссылке внизу.
3. Информация о кодеках через Windows
Одним из способов – это проверка Windows медиа-плеера, хотя ссылка на кнопку находится в довольно скрытом месте. Открыть окно медиа-плеера не сложно, но если у вас нет панели меню щелкните в верхней части программы, чтобы открыть контекстное меню. Зайдите в Справка -> о программе Windows медиа-плеер, затем нажмите на техническую поддержку, информация по ссылке внизу. Это откроет веб-страницу, которая содержит несколько битов информации, включая информацию о видео и аудиокодеках.
Существует также встроенная утилита MSInof32, которая может отображать информацию о кодеках, но она не отображает все установленные кодеки, а только список практически по умолчанию установленных кодеков в Microsoft.
Пользователи Windows XP также имеют довольно простой вариант для отображения названия установленных кодеков, перейдя в Панель управления -> звуки и аудиоустройства -> вкладка оборудование. Теперь нажмите на любой видео или аудио кодек в окне и нажмите на кнопку свойства.
Перейдите на вкладку свойства, чтобы в списке были представлены нужные кодеки. Двойным нажатием на Аудио кодек даст вам несколько вариантов, таких как изменение его приоритета и отключить его совсем.
Что такое видеокодеки и аудиокодеки?
Приготовились посмотреть кино, но проигрыватель сообщает об ошибке? Часто причиной того, что файл не воспроизводится, являются неподходящие кодеки. Но не спешите отправляться в интернет на утомительные поиски ролика другого формата. Вы можете самостоятельно исправить ситуацию. Из статьи вы узнаете, что такое аудио и видео кодеки, зачем они нужны, какими бывают и как их менять при необходимости.
Вы можете сами подготовить видео к просмотру в вашем проигрывателе!
Что такое кодеки
Название «Кодек» образовалось от английских «coder/decoder», означающих «кодировщик/декодировщик». Если составить первые буквы этих двух слов, получится Ко-Дек. Он представляют собой особый тип программы, который преобразует данные для более удобной передачи и хранения, а потом осуществляет обратный процесс – раскодирование – для воспроизведения и просмотра. Различают кодеки для видеопотоков и аудио:
- Видеокодеки предназначены для сжатия и восстановления видеоданных. Примеры: MPEG, H.264, DivX, Xvid.
- Аудиокодек кодирует и декодирует аудиоданные. MP3, OGG, AAC, FLAC – наиболее известные звуковые кодеки.
Зачем нужны кодеки
Существует распространённое заблуждение, что кодеки воспроизводят медиафайлы. На деле, воспроизведением занимаются медиапроигрыватели, а основная задача кодеков состоит в экономии места. Фильмы или музыка в базовом варианте имеют огромный вес, их сложно записывать на диски, выкладывать в Интернет. Сжатие кодеками позволяет сократить размер в десять раз или даже больше. При этом качество практически не страдает.
Никакой магии тут нет. Сжатие происходит за счёт устранения избыточных данных. Как это работает? В исходном видеофайле сотни тысяч кадров, и каждый из них немало весит. Но во многих сценах, особенно статичных, где герой, к примеру, любуется видом из окна, от кадра к кадру мало что меняется. Нет необходимости сохранять тысячу одинаковых изображений, когда можно оставить только меняющиеся фрагменты. Этот алгоритм является одним из основных при сжатии видеороликов.
Статичные эпизоды можно легко сжать
Обратную операцию – раскодирование для последующего воспроизведения в плеере, также выполняют кодеки для видео и на звук. Поэтому, если у вас не установлены нужные, при запуске файла выскакивает ошибка. Система просто не может раскодировать его и, следовательно, прочитать.
В некоторых медиапроигрывателях уже установлены основные кодеки, благодаря чему они без проблем воспроизводят видео и аудио разных форматов. Для других же приходится дополнительно загружать и устанавливать Codec Pack или преобразовывать сам видеофайл с помощью видеоконвертеров. Как же понять, какие кодеки требуются? Об этом расскажем дальше.
Какие кодеки бывают и как выбрать подходящий
Если вы решите познакомиться с видами кодеков, то обнаружите, что их достаточно много. Даже наиболее популярных и распространённых не один десяток:
- Аудиокодеки: AAC, WMA, ACELP.live, AIF, AU, MP3, Ogg Vorbis, RA, RAM.
- Видеокодеки: DivX, APE, Cinepak, H.261, H.263, H.264, H.265, Flash, MPEG-1, MPEG-2, MPEG-4, RM, RV, WMV.
Обычно, если возникает проблема с воспроизведением, какой-то отдельный кодек не ищут. Проще и удобнее сразу скачать пакет. Например, набор K-Lite или XP для Windows можно загружать и устанавливать бесплатно. Инсталляция выполняется очень просто: достаточно запустить установщик, и всё будет сделано автоматически. Останется лишь перезагрузить компьютер.
Искать конкретные кодеки стоит лишь в том случае, если вы знаете, какого именно не хватает, а все остальные уже установлены. Например, требуется специфический кодек для работы какой-либо программы.
Как самостоятельно сжать видео
Самостоятельно записали видео, и пятиминутный ролик весит несколько гигабайт? это повод уменьшить его размер при помощи кодировки. Например, можно использовать современный и наиболее эффективный кодек H.264. Как бы сложно это ни звучало, на деле процедура выполняется элементарно. Просто нужна хорошая удобная программа для монтажа видео. Всего за несколько минут вы значительно снизите вес исходного файла.
Для начала скачайте редактор «ВидеоМОНТАЖ» с нашего сайта. Установите его, дважды кликнув по загруженному дистрибутиву и следуя подсказкам. Запустите софт и начните новый проект.
Начните новый проект
Сначала вам будет предложено установить соотношение сторон. Можно выбрать одно из стандартных, либо оставить вариант по умолчанию – установку разрешения по первому добавленному видеоматериалу.
Определились? Теперь найдите видеоролик который необходимо закодировать, либо перекодировать, если, к примеру клип формата MKV имеет кодек, который не открывается в вашем медиапроигрывателе. Перенесите желаемый видеофайл на монтажный стол.
Добавьте нужный видеофайл
Прежде, чем переходить непосредственно к выбору формата кодирования, можно улучшить видеоряд. Особенно это актуально для тех случаев, когда вы загрузили собственную видеосъёмку. Программа «ВидеоМОНТАЖ» предлагает следующие интересные возможности:
- добавление оригинальных титров и заставок,
- дополнение видеоряда яркими футажами из коллекции программы,
- устранение лишнего с помощью удобных функций обрезки и кадрирования,
- наложение интересных визуальных эффектов,
- добавление текста и графики,
- улучшение качества изображения: настройки яркости, контраста, насыщенности, стабилизация картинки при дрожании камеры, автоматическое улучшение в один клик.
- ускорение и замедление видео,
- замена звука и наложение музыки,
- плавные переходы для сглаживания резких скачков с ролика на ролик.
Закончив с обработкой, или пропустив этот шаг, если он не требуется, переходим в раздел «Создать». Появится перечень вариантов сохранения. Их действительно много, вы можете перевести ролик в любой удобный вид и подготовить для просмотра на произвольном устройстве.
Выберите формат сохранения
Выберите пункт, который подходит именно для ваших целей. Для простоты создадим обычный AVI-файл. Перед вами появится окошко настроек. На верхней панели будут располагаться доступные варианты кодеков. Кликая по каждому, вы получите подсказку с краткой информацией о нём.
Выберите подходящий кодек
Укажите желаемый video codec и оцените прогнозируемый размер ролика после кодировки. Сомневаетесь, какой предпочесть? Давайте рассмотрим особенности каждого:
- H.264: на большой скорости сжимает видеоролики в высоком качестве Позволяет добиться отличной картинки при малом весе файла, особенно популярен при обработке клипов для YouTube.
- DivX: достаточно надёжный вариант, обеспечивающий плавное чёткое изображение. Видеофайл будет гарантированно воспроизводиться на всех проигрывателях. DivX – находка для владельцев слабых машин. Однако он сжимает не так сильно, как конкуренты.
- XviD: хорош для кодировки больших объёмов данных. Даёт отличную степень сжатия при высоком качестве картинки. Однако закодированные XviD-ом видеозаписи могут отображаться не отображаться в некоторых проигрывателях, где не установлены нужные кодек-паки.
Дополнительно вы можете настроить размер кадра и качество картинки. После этого можно создавать видео. Когда всё будет готово, смело открывайте готовый файл и просматривайте в проигрывателе.
Теперь можно наслаждаться просмотром!
Надеемся, что данная статья помогла вам разобраться, что такое кодеки для Windows, зачем они нужны и как самостоятельно кодировать видео. Если вы ещё не оценили удобный многофункциональный видеоредактор «ВидеоМОНТАЖ» – скачивайте его и работайте с видеоматериалом, как профи!
Первая часть: Основы работы с видео и изображениями
Что? Видеокодек — это часть программного/аппаратного обеспечения, сжимающая и/или распаковывающая цифровое видео.
Для чего? Невзирая на определённые ограничения как по пропускной способности так
и по количеству места для хранения данных, рынок требует всё более качественного видео. Припоминаете, как в прошлом посте мы подсчитали необходимый минимум для 30 кадров в секунду, 24 бита на пиксель, с разрешение 480×240? Получили 82,944 Мбит/с без сжатия. Сжатие — это пока единственный способ вообще передавать HD/FullHD/4K на телевизионные экраны и в Интернет. Как это достигается? Сейчас кратко рассмотрим основные методы.
Перевод сделан при поддержке компании EDISON Software.Мы занимаемся интеграцией систем видеонаблюдения, а также разрабатываем микротомограф.
Кодек vs Контейнер
Распространенная ошибка новичков — путать кодек цифрового видео и контейнер цифрового видео. Контейнер это некий формат. Обёртка, содержащая метаданные видео (и, возможно, аудио). Сжатое видео можно рассматривать как полезную нагрузку контейнера.
Обычно расширение видеофайла указывает на разновидность контейнера. Например, файл video.mp4, вероятно всего, является контейнером MPEG-4 Part 14, а файл с именем video.mkv — это, скорее всего, матрёшка. Чтобы быть полностью уверенным в кодеке и формате контейнера, можно воспользоваться FFmpeg или MediaInfo.
Немного истории
Прежде чем перейдем к Как?, давайте слегка погрузимся в историю, чтобы немного лучше понимать некоторые старые кодеки.
Видеокодек H.261 появился в 1990 году (технически — в 1988) и был создан для работы со скоростью передачи данных 64 Кбит/с. В нём уже использовались такие идеи, как цветовая субдискретизация, макроблоки и т.п. В 1995 году был опубликован стандарт видеокодека H.263, который развивался до 2001 года.
В 2003 году была завершена первая версия H.264/AVC. В том же году компания «TrueMotion» выпустила свой бесплатный видеокодек, сжимающий видео с потерями под названием VP3. В 2008 году Google купил эту компанию, выпустив VP8 в том же году. В декабре 2012 года Google выпустил VP9, и он поддерживается примерно на ¾ рынка браузеров (включая мобильные устройства).
AV1 — это новый бесплатный видеокодек с открытым исходным кодом, разработанный Альянсом за открытые медиа (AOMedia), в состав которого входят известнейшие компании, как-то: Google, Mozilla, Microsoft, Amazon, Netflix, AMD, ARM, NVidia, Intel и Cisco. Первая версия кодека 0.1.0 была опубликована 7 апреля 2016 года.
Рождение AV1
В начале 2015 года Google работал над VP10, Xiph (который принадлежит Mozilla) работал над Daala, а Cisco сделала свой бесплатный видеокодек под названием Thor.
Затем MPEG LA сначала объявила годовые лимиты для HEVC (H.265) и плату, в 8 раз выше, чем за H.264, но вскоре они снова изменили правила:
без годового лимита,
плата за контент (0,5% от выручки) и
плата за единицу продукции примерно в 10 раз выше, чем за H.264.
Альянс за открытые медиа был создан компаниями из разных сфер: производителями оборудования (Intel, AMD, ARM, Nvidia, Cisco), поставщиками контента (Google, Netflix, Amazon), создателями браузеров (Google, Mozilla) и другими.
У компаний была общая цель — видеокодек без лицензионных отчислений. Затем появляется AV1 с гораздо более простой патентной лицензией. Тимоти Б. Терриберри сделал сногсшибательную презентацию, ставшей источником текущей концепции AV1 и её модели лицензии.
Вы будете удивлены, узнав, что можно анализировать кодек AV1 через браузер (заинтересовавшиеся могут перейти по адресу aomanalyzer.org).
Универсальный кодек
Разберём основные механизмы, лежащие в основе универсального видеокодека. Большинство из этих концепций полезны и используются в современных кодеках, таких как VP9, AV1 и HEVC. Предупреждаю, что многие объясняемые вещи будут упрощены. Иногда будут использоваться реальные примеры (как в случае с H.264) для демонстрации технологий.
1-й шаг — разбиение изображения
Первым шагом является разделение кадра на несколько разделов, подразделов и далее.
Для чего? Есть множество причин. Когда дробим картинку, можно точнее прогнозировать вектор движения, используя небольшие разделы для маленьких движущихся частей. В то время как для статического фона можно ограничиться и более крупными разделами.
Обычно кодеки организуют эти разделы в секции (или фрагменты), макроблоки (или блоки дерева кодирования) и множество подразделов. Максимальный размер этих разделов варьируется, HEVC устанавливает 64×64, в то время как AVC использует 16×16, а подразделы могут дробиться до размеров 4×4.
Припоминаете разновидности кадров из прошлой статьи?! Это же можно применить и к блокам, так что, у нас могут быть I-фрагмент, B-блок, P-макроблок и т.п.
Для желающих попрактиковаться — посмотрите как изображение разобъётся на разделы и подразделы. Для этого можно воспользоваться уже упоминаемой в прошлой статье Intel Video Pro Analyzer (тот, что платный, но с бесплатный пробной версией, имеющей ограничение на первые 10 кадров). Здесь проанализированы разделы VP9:
2-й шаг — прогнозирование
Как только у нас появились разделы, мы можем составлять
3-й шаг — преобразование
После того, как получим остаточный блок (предсказанный раздел → реальный раздел), возможно преобразовать его таким образом, чтобы знать, какие пиксели можно отбросить, сохраняя при этом общее качество. Есть некоторые преобразования, обеспечивающие точное поведение.
Хотя есть и другие методы, рассмотрим более подробно дискретное косинусное преобразование (DCT — от discrete cosine transform). Основные функции DCT:
- Преобразует блоки пикселей в одинаковые по размеру блоки частотных коэффициентов.
- Уплотняет мощность, помогая устранять пространственную избыточность.
- Обеспечивает обратимость.
2 февраля 2017 года Синттра Р.Дж. (Cintra, R.J.) и Байер Ф.М. (Bayer F.M.) опубликовали статью про DCT-подобное преобразование для сжатия изображений, требующее только 14 дополнений.
Не переживайте, если не поняли преимуществ каждого пункта. Сейчас на конкретных примерах убедимся в их реальной ценности.
Давайте возьмем такой блок пикселей 8×8:
Этот блок рендерится в следующее изображение 8 на 8 пискелей:
Применим DCT к этому блоку пикселей и получаем блок коэффициентов размером 8×8:
И если отрендерим этот блок коэффициентов, получим такое изображение:
Как видим, это не похоже на исходное изображение. Можно заметить, что первый коэффициент сильно отличается от всех остальных. Этот первый коэффициент известен как DC-коэффициент, представляющий все выборки во входном массиве, нечто похожее на среднее значение.
У этого блока коэффициентов есть интересное свойство: он отделяет высокочастотные компоненты от низкочастотных.
В изображении большая часть мощности сконцентрирована на более низких частотах, поэтому, если преобразовать изображение в его частотные компоненты и отбросить более высокие частотные коэффициенты, можно уменьшить количество данных, необходимых для описания изображения, не слишком жертвуя качеством картинки.
Частота означает, насколько быстро меняется сигнал.Давайте попробуем применить знания, полученные в тестовом примере, преобразовав исходное изображение в его частоту (блок коэффициентов), используя DCT, а затем отбросив часть наименее важных коэффициентов.
Сначала конвертируем его в частотную область.
Далее отбрасываем часть (67%) коэффициентов, в основном нижнюю правую часть.
Наконец, восстанавливаем изображение из этого отброшенного блока коэффициентов (помните, оно должно быть обратимым) и сравниваем с оригиналом.
Видим, что оно напоминает исходное изображение, но есть много отличий от оригинала. Мы выбросили 67,1875% и все же получили что-то, напоминающее первоисточник. Можно было более продуманно отбросить коэффициенты, чтобы получить изображение ещё лучшего качества, но это уже следующая тема.
Каждый коэффициент формируется с использованием всех пикселей
Важно: каждый коэффициент напрямую не отображается на один пиксель, а представляет собой взвешенную сумму всех пикселей. Этот удивительный график показывает, как рассчитывается первый и второй коэффициент с использованием весов, уникальных для каждого индекса.
Вы также можете попытаться визуализировать DCT, взглянув на простое формирование изображения на его основе. Например, вот символ A, формируемый с использованием каждого веса коэффициента:
4-й шаг — квантование
После того как на предыдущем шаге выбрасываем некоторые коэффициенты, на последнем шаге (преобразование), производим особую форму квантования. На этом этапе допустимо терять информацию. Или, проще говоря, будем квантовать коэффициенты для достижения сжатия.
Как можно квантовать блок коэффициентов? Одним из самых простых методов будет равномерное квантование, когда берём блок, делим его на одно значение (на 10) и округляем то что получилось.
Можем ли обратить этот блок коэффициентов? Да, можем, умножив на то же значение, на которые делили.
Этот подход не самый лучший, поскольку он не учитывает важность каждого коэффициента. Можно было бы использовать матрицу квантователей вместо одного значения, а эта матрица может использовать свойство DCT, квантуя большинство нижних правых и меньшинство верхних левых.
5 шаг — энтропийное кодирование
После того, как мы квантовали данные (блоки изображений, фрагменты, кадры), все еще можем сжимать их без потерь. Существует много алгоритмических способов сжатия данных. Мы собираемся кратко познакомиться с некоторыми из них, для более глубокого понимания вы можете прочитать книгу «Разбираемся со сжатием: сжатие данных для современных разработчиков» («Understanding Compression: Data Compression for Modern Developers»).
Кодирование видео с помощью VLC
Предположим, у нас есть поток символов: a, e, r и t. Вероятность (в пределах от 0 до 1) того, как часто встречается каждый символ в потоке, представлена в этой таблице.Мы можем присвоить уникальные двоичные коды (предпочтительно малые) наиболее вероятным, а более крупные коды — менее вероятным.Сжимаем поток, предполагая, что в итоге потратим 8 бит на каждый символ. Без сжатия на символ понадобилось бы 24 бита. Если каждый символ заменять на его код, то получается экономия!
Первый шаг заключается в кодировании символа e, который равен 10, а второй символ — это a, который добавляется (не математическим способом): [10] [0], и, наконец, третий символ t, который делает наш финальный сжатый битовый поток равным [10] [0] [1110] или же 1001110, для чего требуется всего 7 бит (в 3,4 раза меньше места, чем в оригинале).
Обратите внимание, что каждый код должен быть уникальным кодом с префиксом. Алгоритм Хаффмана поможет найти эти цифры. Хотя данный способ не без изъянов, существуют видеокодеки, которые всё ещё предлагают этот алгоритмический метод для сжатия.
И кодер, и декодер должны иметь доступ к таблице символов со своими бинарными кодами. Поэтому также необходимо отправить во входных данных и таблицу.
Арифметическое кодирование
Предположим, у нас есть поток символов: a, e, r, s и t, и их вероятность представлена этой таблицей.С этой таблицей построим диапазоны, содержащие все возможные символы, отсортированные по наибольшему количеству.
Теперь давайте закодируем поток из трёх символов: eat.
Сначала выбираем первый символ e, который находится в поддиапазоне от 0,3 до 0,6 (не включая). Берём этот поддиапазон и снова делим его в тех же пропорциях, что и ранее, но уже для этого нового диапазона.
Давайте продолжим кодировать наш поток eat. Теперь берём второй символ a, который находится в новом поддиапазоне от 0,3 до 0,39, а затем берём наш последний символ t и, повторяя тот же процесс снова, получаем последний поддиапазон от 0,354 до 0,372.
Нам просто нужно выбрать число в последнем поддиапазоне от 0,354 до 0,372. Давайте выберем 0,36 (но можно выбрать и любое другое число в этом поддиапазоне). Только с этим числом сможем восстановить наш оригинальный поток. Это как если бы мы рисовали линию в пределах диапазонов для кодирования нашего потока.
Обратная операция (то бишь декодирование) так же проста: с нашим числом 0,36 и нашим исходным диапазоном можем запустить тот же процесс. Но теперь, используя это число, выявляем поток, закодированный с помощью этого числа.
С первым диапазоном замечаем, что наше число соответствует срезу, следовательно, это наш первый символ. Теперь снова разделяем этот поддиапазон, выполняя тот же процесс, что и раньше. Тут можно заметить, что 0,36 соответствует символу a, и после повторения процесса мы пришли к последнему символу t (формируя наш исходный кодированный поток eat).
И для кодера и для декодера должна быть в наличии таблица вероятностей символов, поэтому необходимо во входных данных отправить и её.
Довольно элегантно, не так ли? Кто-то, придумавший это решение, был чертовски умён. Некоторые видеокодеки используют эту технику (или, во всяком случае, предлагают её в качестве опции).
Идея состоит в том, чтобы сжать без потерь квантованный битовый поток. Наверняка в этой статье отсутствуют тонны деталей, причин, компромиссов и т.д. Но вы, если являетесь разработчиком, должны знать больше. Новые кодеки пытаются использовать разные алгоритмы энтропийного кодирования, такие как ANS.
6 шаг — формат битового потока
После того, как сделали всё это, осталось распаковать сжатые кадры в контексте выполненных шагов. Необходимо явно информировать декодер о решениях, принятых кодером. Декодеру должна быть предоставлена вся необходимая информация: битовая глубина, цветовое пространство, разрешение, информация о прогнозах (векторы движения, направленное INTER-прогнозирование), профиль, уровень, частота кадров, тип кадра, номер кадра и многое другое.
Мы поверхностно ознакомимся с битовым потоком H.264. Нашим первым шагом является создание минимального битового потока H.264 (FFmpeg по умолчанию добавляет все параметры кодирования, такие как SEI NAL — чуть дальше узнаем, что это такое). Можем сделать это, используя наш собственный репозиторий и FFmpeg.
./s/ffmpeg -i /files/i/minimal.png -pix_fmt yuv420p /files/v/minimal_yuv420.h364
Данная команда сгенерирует необработанный битовый поток H.264 с одним кадром, разрешением 64×64, с цветовым пространством YUV420. При этом используется в качестве кадра следующее изображение.
Битовый поток H.264
Стандарт AVC (H.264) определяет, что информация будет отправляться в макрокадрах (в понимании сети), называемых NAL (это такой уровень абстракции сети). Основной целью NAL является предоставление «дружественного к сети» представления видео. Этот стандарт должен работать на телевизорах (на основе потоков), в Интернете (на основе пакетов).
Существует маркер синхронизации для определения границ элементов NAL. Каждый маркер синхронизации содержит значение 0x00 0x00 0x01, за исключением самого первого, который равен 0x00 0x00 0x00 0x01. Если запустим hexdump для сгенерированного битового потока H.264, то идентифицируем по крайней мере три паттерна NAL в начале файла.
Как говорилось, декодер должен знать не только данные изображения, но также и детали видео, кадра, цвета, используемые параметры и многое другое. Первый байт каждого NAL определяет его категорию и тип.
Обычно первым NAL битового потока является SPS. Этот тип NAL отвечает за информирование об общих переменных кодирования, таких как профиль, уровень, разрешение и прочее.Если пропустить первый маркер синхронизации, то можем декодировать первый байт, чтобы узнать, какой тип NAL является первым.
Например, первый байт после маркера синхронизации равен 01100111, где первый бит (0) находится в поле forbidden_zero_bit. Следующие 2 бита (11) сообщает нам поле nal_ref_idc, которое указывает, является ли этот NAL ссылочным полем или нет. И остальные 5 бит (00111) сообщает нам поле nal_unit_type, в данном случае это блок SPS (7) NAL.
Второй байт (binary=01100100, hex=0x64, dec=100) в SPS NAL — это поле profile_idc, которое показывает профиль, который использовал кодер. В данном случае использовался ограниченный высокий профиль (т.е. высокий профиль без поддержки двунаправленного B-сегмента).
Если ознакомиться со спецификацией битового потока H.264 для SPS NAL, то обнаружим много значений для имени параметра, категории и описания. Например, давайте посмотрим на поля pic_width_in_mbs_minus_1 и pic_height_in_map_units_minus_1.
Если выполнить некоторые математические операции со значениями этих полей, то получим разрешение. Можно представить 1920 x 1080, используя pic_width_in_mbs_minus_1 со значением 119 ((119 + 1) * macroblock_size = 120 * 16 = 1920). Опять же, экономя место, вместо кодирования 1920 сделали это со 119.Если продолжить проверку нашего созданного видео в двоичном виде (например: xxd -b -c 11 v/minimal_yuv420.h364), то можно перейти к последнему NAL, который является самим кадром.
Здесь видим его первые 6 байтовых значений: 01100101 10001000 10000100 00000000 00100001 11111111. Поскольку известно, что первый байт указывает на тип NAL, в данном случае (00101) это IDR фрагмент (5), и тогда получится дополнительно исследовать его:
Используя информацию спецификации, получится декодировать тип фрагмента (slice_type) и номер кадра (frame_num) среди других важных полей.
Чтобы получить значения некоторых полей (ue(v), me(v), se(v) или te(v)), нам нужно декодировать фрагмент, используя специальный декодер, основанный на экспоненциальном коде Голомба. Этот метод очень эффективен для кодирования значений переменных, особенно, когда если есть много значений по умолчанию.
Значения slice_type и frame_num этого видео равны 7 (I-фрагмент) и 0 (первый кадр).
Битовый поток можно рассматривать как протокол. Если желаете узнать больше о битовом потоке, стоит обратиться к спецификации ITU H.264. Вот макросхема, показывающая, где находятся данные изображения (YUV в сжатом виде).
Можно исследовать и другие битовые потоки, такие как VP9, H.265 (HEVC) или даже наш новый лучший битовый поток AV1. Все ли они похожи? Нет, но разобравшись хотя бы с одним — гораздо проще понять остальные.
Хотите попрактиковаться? Исследуйте поток битов H.264
Можно сгенерировать однокадровое видео и использовать MediaInfo для исследования потока битов H.264. Фактически, ничто не мешает даже поглядеть исходный код, который анализирует поток битов H.264 (AVC).Для практики можно использовать Intel Video Pro Analyzer (я уже вроде говорил, что программа платная, но есть бесплатная пробная версия, с ограничением на 10 кадров?).
Обзор
Отметим, что многие современные кодеки используют ту же самую модель, которую только что изучили. Вот, давайте взглянем на блок-схему видеокодека Thor. Она содержит все шаги, нами пройденные. Весь смысл этой заметки в том, чтобы вы, по крайней мере, лучше понимали инновации и документацию из этой области.
Ранее рассчитали, что потребуется 139 Гб дискового пространства для хранения видеофайла длительностью один час при качестве 720p и 30 fps. Если использовать методы, которые разобрали в этой статье (межкадровые и внутренние прогнозы, преобразование, квантование, энтропийное кодирование и т.п.), то можно достичь (исходя из того, что тратим 0,031 бит на пиксель), видео вполне удовлетворительного качества, занимающее всего 367,82 Мб, а не 139 Гб памяти.
Как H.265 достигает лучшей степени сжатия, чем H.264?
Теперь, когда известно больше о том, как работают кодеки, проще разбираться, как новые кодеки способны обеспечивать более высокое разрешение с меньшим количеством битов.
Если сравнивать AVC и HEVC, стоит не забывать, что это почти всегда выбор между большей нагрузкой на CPU и степенью сжатия.
HEVC имеет больше вариантов разделов (и подразделов), чем AVC, больше направлений внутреннего прогнозирования, улучшенное энтропийное кодирование и многое другое. Все эти улучшения сделали H.265 способным сжимать на 50% больше, чем H.264.
Первая часть: Основы работы с видео и изображениями
Что такое кодеки и для чего они нужны | Аудио
Наверняка вы хоть раз в жизни сталкивались с тем, что ваш компьютер отказывался воспроизводить скачанную музыку, видеоролик или фильм с диска именно в тот день, когда вы решили провести приятный вечер у экрана монитора. От этой проблемы можно избавиться раз и навсегда, если переустановить или обновить кодеки.
Не знаете, что такое кодеки и как они работают? Тогда эта статья – для вас! Из нее вы узнаете, для чего нужны кодеки и какими они бывают, а также поймете, как устроен процесс воспроизведения видео на ПК и мобильных устройствах.
Всё, что нужно знать о кодеках
Кодеком (от английского codec) называют программу, предназначенную для кодирования и декодирования данных мультимедиа (например, аудио- и видеопотоков). Каждый кодек «специализируется» только на одном типе данных. За обработку звуковых записей отвечают аудиокодеки (AAC, AIF, AU, MP3, RA, RAM, WMA, FLAC), с видео работают видеокодеки (DivX, AVI, H.261, H.263, H.264, MPEG, RM, RV, WMV). Над роликами, в которых содержится и звук, и видео, «колдуют» оба этих типа кодеков.
Также существуют кодеки, предназначенные для обработки цифровых изображений и текста, однако в этой статье речь пойдет именно об аудио- и видеокодеках.
Как работают кодеки?
Представьте, что вы записали ролик на видеокамеру, загрузили его в компьютер и открыли с помощью проигрывателя. Казалось бы, пустяковое дело! Но кодекам на вашей камере и компьютере пришлось немало потрудиться, чтобы вы смогли это сделать. Давайте посмотрим, чем же занимаются эти программы, когда вы записываете видео и проигрываете снятые клипы.
Кодеки принимаются за работу в тот самый момент, когда вы нажимаете кнопку записи на своей камере. Прямо во время съемки видеокодек сжимает и кодирует видеодорожку, а аудиокодек работает со звуковой дорожкой. Затем оба потока синхронизируются и сохраняются в одном медиаконтейнере, а если говорить проще – формате. Камеры могут вести запись как в популярных форматах типа AVI и MP4, так и в более экзотических.
Теперь, когда вы перенесли снятый клип на свой компьютер, в дело вступают кодеки, установленные на нем: видеокодек распаковывает изображение, аудиокодек – звуковую дорожку, а проигрыватель выводит эту информацию на экран и в колонки вашего компьютера.
Зачем все эти сложности?
Неужели нельзя обойтись без кодирования? Теоретически – можно, на практике – лучше не стоит. Дело в том, что кодеки выполняют очень важную функцию: они сжимают файлы до размеров, приемлемых для современных устройств.
Видеофайлы, создаваемые камерами в процессе записи, имеют слишком большой размер: пятиминутный ролик, снятый на современный смартфон, в несжатом состоянии может занимать несколько гигабайт памяти! Вспомните, сколько места есть на дисках вашего компьютера и мобильных устройств, и представьте, сколько несжатых видеороликов вы могли бы на нем хранить – вряд ли эта цифра будет слишком большой.
Возможно, в будущем, когда память компьютеров и гаджетов будет исчисляться десятками и сотнями терабайтов, необходимость в использовании кодеков отпадет, но сейчас без этих шустрых программ, превращающих гигабайтные видео в мегабайтные, нам не обойтись.
Как же кодеки уменьшают размер файлов?
Сжатие видео и аудио происходит за счет устранения так называемой избыточности данных. Как это происходит? Представьте, что вы в течение 5 минут снимали морской пейзаж – такой, как на картинке:
Допустим, ваша камера снимает со скоростью 30 кадров в секунду. Получается, за 1 секунду записи она сохраняет в своей памяти 30 уникальных изображений. А за 5 минут (300 секунд) она снимет целых 9000 кадров!
Но что может кардинально измениться в этом пейзаже за 1 секунду? Позеленеет небо? Испарится вода?
Даже если произойдут какие-то изменения, то они будут плавными, и на их осуществление потребуется время. Вывод: ежесекундно камера снимает 30 практически полностью идентичных друг другу кадров.
Так зачем же сохранять в памяти все эти кадры целиком? Для записи пейзажа на видео кодеку достаточно сохранить один исходный кадр, найти все похожие на него и удалить из похожих кадров повторяющиеся части изображения. Затем, при воспроизведении видео, кодек будет наслаивать изменяющиеся части на исходное изображение. Если в картинке что-то поменяется, кодек выделит еще один исходный кадр и все на него похожие. Описанный алгоритм называют компенсацией движения и считают одним из основных методов сжатия видеоданных.
Компенсация движения – это всего лишь один из множества методов, применяемых видеокодеками при обработке записей с камер. Свои способы устранения избыточной информации используют и аудиокодеки. В результате работы кодеков из аудио- и видеопотоков удаляется большая часть «лишних» данных. За счет этого и происходит изменение объема закодированного файла.
Какой кодек выбрать?
Существует множество видео- и аудиокодеков, предназначенных для различных целей. Вот краткий список самых популярных кодеков:
— H.264 (MPEG-4)
— MPEG-2
— H.265 (MPEG-H, HEVC)
— Flash
— WMV
— FLAC
— APE
Чтобы вам не пришлось подолгу искать, какой кодек лучше подойдет вам, мы советуем скачать K-Lite Codec Pack – универсальный пакет для Windows, в котором есть все, что понадобится для проигрывания практически любого видео: самые хорошие кодеки для AVI, MKV, MP4 и других форматов.
Перейти на страницу K-Lite Codec Pack
А вдруг кодек сработает неправильно и удалит нужную информацию?
Можно ли обработать видеофайл без потерь?
В основе современных кодеков лежат сложные комплексные алгоритмы сжатия данных, которые помогают свести потери информации к минимуму. Однако если вы все-таки хотите перестраховаться, у нас есть хорошие новости: существуют так называемые lossless-кодеки, обрабатывающие видео без потерь. Это значит, что при декодировании потока информация будет воспроизведена бит к биту. Однако следует быть готовыми к тому, что размер видеофайла, обработанного такими кодеками, будет довольно большим.
Как узнать кодек видео?
Переполнение стека- Товары
- Клиенты
- Случаи использования
- Переполнение стека Публичные вопросы и ответы
- Команды Частные вопросы и ответы для вашей команды
- предприятие Частные вопросы и ответы для вашего предприятия
- работы Программирование и связанные с ним технические возможности карьерного роста
- Талант Нанимать технический талант
- реклама Связаться с разработчиками по всему миру
Загрузка…
Иногда случается, что вы загружаете видеоклип из Интернета и у вас возникают проблемы при воспроизведении этого видеофайла на вашем компьютере. Эта проблема чаще всего связана с кодеком при условии, что загрузка успешно завершена.
Вы можете, например, заметить, что видео не воспроизводится вообще, или что экран остается черным при воспроизведении видео, или что вы не можете слышать звук, но видите видео очень хорошо.
Одним из решений, которое не является совершенным, является установка пакета кодеков и надежда на то, что кодек, необходимый для воспроизведения, включен в этот пакет.
Недостатком является то, что вы устанавливаете много кодеков, которые вам не нужны в вашей системе. Иногда они могут переопределять другие кодеки, которые вы установили, в качестве побочного эффекта и, как следствие, могут создавать проблемы; большинство пользователей, вероятно, предпочли бы решение, которое указывает им на правильный кодек или правильный проигрыватель вместо того, чтобы воспроизводить файл.
Лучшим подходом является сканирование файла мультимедиа, чтобы определить, какие кодеки были использованы для кодирования файла. Одна бесплатная программа, которая может сделать это, — Media Info.
Media Info загружает файл мультимедиа и сканирует его на наличие кодеков, необходимых для воспроизведения файла. Он отображает обширную информацию об аудио и видео потоках, битрейте, используемом для кодирования фильма и названиях кодеков.
Что мне особенно нравится в программе, так это то, что она отображает две ссылки в своем интерфейсе после анализа. Первые ссылки на официальный сайт кодека, где вы можете загрузить его в свою систему, чтобы установить и использовать его. Вторая ссылка на скачивание видеоплеера, который можно использовать для воспроизведения файла напрямую и без установки кодека.
Все, что вам нужно сделать, это указать программу на видеофайл на вашем компьютере, чтобы получить информацию о кодеках, необходимых для его воспроизведения на компьютере. Media Info напрямую связывается с плеерами, которые могут воспроизводить выбранный видеофайл, и с видеокодеком, так что вы можете загрузить либо добавить поддержку
.Как включить поддержку AV1 на YouTube
AV1 — это новый медиакодек, который в настоящее время интегрируется в различные веб-браузеры, такие как Mozilla Firefox или Google Chrome. Кодек разработан консорциумом компаний и позиционируется в качестве бесплатной альтернативы не открытым кодекам H.264 и H.265.
Av1 обещает меньшие размеры файлов без ущерба для качества видеопотока.
Google недавно опубликовал тестовый плейлист с кодировкой AV1 и видео с поддержкой на сайте YouTube.Основная идея плейлиста состоит в том, чтобы предоставить разработчикам и пользователям возможность проверить функциональность, производительность и другие метрики видео в формате AV1 на сайте YouTube.
Поддержка AV1 ограничена на момент написания, и подготовка для добавления поддержки на данный момент. Пользователям Chrome необходимо запустить как минимум версию 70 веб-браузера, пользователям Firefox — как минимум версию 63 браузера.
Пользователи Firefox также должны изменить настройки в браузере, чтобы включить поддержку Av1; это делается загрузкой about: config? filter = media.av1.enabled в адресной строке браузера и переключение предпочтения на True с двойным щелчком мыши по имени предпочтения.
Обратите внимание, что YouTube может отображать инструкции «вам нужно» для Firefox, даже если вы уже установили предпочтение «Истина».
Mozilla Firefox поддерживает AV1 по умолчанию во всех поддерживаемых версиях веб-браузера.
Примечание. YouTube интегрировал AV1 в сайт и использует алгоритм, который определяет, какой кодек использовать.Вы можете изменить настройку на странице воспроизведения учетной записи с «Авто» на «Предпочитать AV1 для SD» или «Всегда предпочитать AV1».
Загрузите страницу пробной трубки на YouTube, чтобы включить поддержку AV1. Прокрутите страницу вниз, пока не дойдете до ее раздела Av1.
.Видеокодек AV1 обеспечивает расширенное сжатие, обеспечивая плавную потоковую передачу в формате HD и экономию данных для большего количества видео на ходу.
Потому что это новое, streami
- Товары
- Клиенты
- Случаи использования
- Переполнение стека Публичные вопросы и ответы
- Команды Частные вопросы и ответы для вашей команды
- предприятие Частные вопросы и ответы для вашего предприятия
- работы Программирование и связанные с ним технические возможности карьерного роста
- Талант Нанимать технический талант
- реклама Связаться с разработчиками по всему миру