Набор библиотек на C и инструментов командной строки для декодирования, кодирования, конвертации, фильтрации и потоковой передачи аудио, видео и субтитров.
leandromoreira/digital_video_introduction
Практическое и понятное новичкам введение в цифровое видео: цвет, типы кадров, кодеки H.264, H.265, VP9 и AV1, стриминг и примеры с FFmpeg.
- Звёзды
- 16,380
- Форки
- 1,381
- Открытые issues
- 19
- Последний коммит
- позавчера
Что это?
Это доступное практическое руководство о том, как работает цифровое видео. Оно рассчитано на разработчиков, но написано так, чтобы в нём мог разобраться каждый. Здесь разбираются базовые термины: пиксели, разрешение, соотношение сторон и битрейт, а затем объясняется, как сжатие видео использует избыточность цвета, времени и пространства.
В руководстве рассматриваются субдискретизация цветности, I-, P- и B-кадры, оценка движения, внутрикадровое предсказание, преобразования, квантование и энтропийное кодирование. На примере показано, как устроен условный кодек и чем отличаются H.264, H.265, VP9 и AV1. В отдельном разделе рассказывается об онлайн-стриминге, в том числе о прогрессивной загрузке, адаптивном стриминге и защите контента.
Во многих разделах есть примеры, которые можно запустить. В них используются команды FFmpeg и mediainfo в контейнерах, а также Jupyter-ноутбуки для визуализации массивов изображений, коэффициентов DCT и векторов движения. Проект переведён на несколько языков.
Ключевые возможности
- 01Объясняет основные понятия: цветовые модели, YCbCr, субдискретизация цветности и битрейт.
- 02Описывает типы кадров I, P и B и то, как межкадровое и внутрикадровое предсказание устраняют избыточность.
- 03Разбирает основные этапы работы условного кодека — от разбиения на блоки до формата битового потока.
- 04Сравнивает H.264, H.265, VP9 и AV1 и рассказывает об истории их появления.
- 05Содержит практические примеры с FFmpeg и Jupyter для изучения видеофайлов.
Сценарии использования
- Введение в работу для инженеров, занимающихся видеоплеерами, стримингом или медиапайплайнами.
- Изучение влияния настроек кодека, таких как интервал между ключевыми кадрами и B-кадры, на размер файла.
- Проведение практикума или курса по основам сжатия видео.
Быстрый старт
- 1
Клонируйте репозиторий
git clone https://github.com/leandromoreira/digital_video_introduction.git - 2
Перейдите в папку проекта
cd digital_video_introduction - 3
Запустите скрипт настройки (требуется Docker)
./setup.sh
Что важно знать
- Для практических разделов необходимо установить Docker.
- Это руководство по обучению, а не библиотека программного обеспечения или инструмент.
В подборках
Темы
Частые вопросы
- Что такое digital_video_introduction?
- Практическое и понятное новичкам введение в цифровое видео: цвет, типы кадров, кодеки H.264, H.265, VP9 и AV1, стриминг и примеры с FFmpeg. Это доступное практическое руководство о том, как работает цифровое видео. Оно рассчитано на разработчиков, но написано так, чтобы в нём мог разобраться каждый. Здесь разбираются базовые термины: пиксели, разрешение, соотношение сторон и битрейт, а затем объясняется, как сжатие видео использует избыточность цвета, времени и пространства.
- digital_video_introduction можно использовать бесплатно? Какая у него лицензия?
- digital_video_introduction распространяется с открытым исходным кодом под лицензией BSD-3-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- digital_video_introduction всё ещё поддерживается?
- Активно поддерживается. Последний коммит в digital_video_introduction — 5 нояб. 2026 г..
- Для чего можно использовать digital_video_introduction?
- Введение в работу для инженеров, занимающихся видеоплеерами, стримингом или медиапайплайнами. Изучение влияния настроек кодека, таких как интервал между ключевыми кадрами и B-кадры, на размер файла. Проведение практикума или курса по основам сжатия видео.
- Как установить digital_video_introduction?
- Клонируйте репозиторий: git clone https://github.com/leandromoreira/digital_video_introduction.git Перейдите в папку проекта: cd digital_video_introduction Запустите скрипт настройки (требуется Docker): ./setup.sh
- Где скачать digital_video_introduction?
- Исходный код и инструкции по установке — на GitHub: https://github.com/leandromoreira/digital_video_introduction
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Транскодер видео с открытым исходным кодом для Linux, Mac и Windows: преобразует видео в MP4, MKV или WebM для телефонов, телевизоров, консолей и браузеров.
Кроссплатформенный GUI для FFmpeg, позволяющий без перекодирования вырезать и обрезать видео- и аудиофайлы, а также выполнять их ремультиплексирование.
Открытое ПО для Linux-видеонаблюдения: захватывает, анализирует и записывает видео с IP-, USB- и аналоговых камер, а также позволяет следить за ними.
Brotli — универсальный формат сжатия без потерь и эталонная библиотека, описанные в RFC 7932; коэффициент сжатия сопоставим с лучшими универсальными методами.
Низколатентная трансляция удалённого рабочего стола в браузер на Rust: H.264 передаётся по WebSocket и декодируется через WebCodecs.