Доклад

FFmpeg без боли: архитектура видеотранскодера на C++23

FFmpeg — одна из самых мощных библиотек для работы с мультимедиа, но ее низкоуровневый C API требует ручного управления ресурсами, аккуратной обработки ошибок и продуманной многопоточности. Покажу, как построить поверх FFmpeg современную архитектуру видеотранскодера на C++23.

Мы разберем, как интегрировать C-библиотеку в модульное C++ приложение с помощью C++ modules, bridge headers и RAII-оберток. Обсудим использование std::expected для обработки ошибок и проектирование безопасного API поверх C-примитивов FFmpeg.

Затем перейдем к архитектуре транскодера: соберем последовательный конвейер обработки, увидим его ограничения и шаг за шагом сделаем его асинхронным с очередями, backpressure и независимыми стадиями обработки. Также рассмотрим проектирование конкурентных примитивов: bounded queue, batching и координацию потоков.

В финале сравним производительность полученного решения с консольным FFmpeg и разберем, почему промышленная реализация все еще оказывается быстрее. Доклад будет полезен C++ разработчикам уровня middle+ и системным инженерам, которым интересны архитектура, многопоточность и интеграция современного C++ с низкоуровневыми C-библиотеками.

Спикеры

Расписание