Об этом проекте

Этот репозиторий — обучающее руководство по использованию FFmpeg как библиотеки (libav) для создания мультимедийных программ. Он создан как современная замена устаревшим туториалам и доступен на нескольких языках. Содержание начинается с введения в основы медиа, объясняя, что такое видео, аудио, кодеки и контейнеры. Затем даётся краткий курс по работе с командной строкой FFmpeg, охватывающий основные операции с видео: транскодирование (конвертация кодеков), трансмукинг (смена контейнеров), трансорейтинг (изменение битрейта), транссайзинг (изменение разрешения) и адаптивное стриминг с использованием DASH. Основная часть репозитория — раздел "Learn FFmpeg libav the Hard Way" — содержит разбор кода на C. Он включает: - Глава 0: Программа «hello world», которая читает меди文件, извлекает метаданные, декодирует кадры и сохраняет их как серые изображения. Объясняется архитектура FFmpeg libav, включая компоненты AVFormatContext, AVStream, AVPacket, AVCodec и AVFrame. - Глава 1: Объяснение синхронизации аудио и видео, подробно разбираются временные метки воспроизведения (PTS), таймбазы и то, как видеоплееры управляют отображением кадров. - Глава 2: Код для ремуксинга. - Глава 3: Код для транскодирования. В руководстве используется Docker как среда разработки и выполнения, чтобы избежать проблем с компиляцией, а также присутствует Makefile для загрузки тестовых видео и запуска примеров. Хотя код написан на C, автор отмечает, что эти концепции легко применимы к другим языкам с привязками FFmpeg, таким как Python и Go.