На данный момент система трансляций с камеры и экрана на удалённый сервер передаёт jpeg кадры, то есть используется покадровое сжатие. Для экономии трафика нужно перевести систему на трансляции с межкадровым сжатием с кодеком x264.
Что есть:
1. класс для захвата изображений с камеры или экрана с возможностью получать кадры jpeg или rgb/bgr;
2. класс для сетевого взаимодействия TCP/UDP;
3. статическая libx264.a (MinGW-w64).
Что надо:
1. Понимание того, как пользоваться libx264 и что нужно кодеку x264 на вход для создания видео ряда (кадры поступают в unsigned char* buffer, и все операции нужны в памяти - никаких файлов); Будет ли кодек работать с RGB/BGR или обязательно конвертировать в YUV-форматы? Как управлять уровнем компрессии?
2. Понимание принципа потоковой передачи видео на низком уровне в разрезе c++. Как строятся пакеты - из кадров, кусков кадров, набора кадров?
Чего не хотелось бы: отсылов к ffmpeg.
Помогите пожалуйста разобраться.
UPDATE
С пунктом 1 разобрался, оказалось в libx264 всё проще и логичнее, чем в libvpx, с которым я три месяца бился.
Прошу помощи по пункту 2.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости