libavcodec , libavformat и другие ffmpeg проекты - широкий спектр используемых кодеков.
Windows Media Format SDK - может кодировать видео в потоки WMV. Связанные технологии Windows включают DirectShow и Media Foundation.
Ogg Theora - не самый качественный по сравнению кодек, но он бесплатный и простой в использовании. Требуется конвертация RGB в YUV. У меня есть пример кода для этого, я мог бы найти для вас, как это сделать.
VP8 и WebM от Google.
MJPG - это не более чем простое кодирование каждого кадра в формате JPG. Высокая загрузка процессора и высокая скорость передачи данных, но проще всего реализовать. Любой кодировщик JPG, который вы можете найти, подойдет.
Одна заметка об API кодеков. Интуитивно, вы просто хотите иметь функции, которые «сжимают» и «распаковывают». (MJPG отвечает этому требованию) Но видео сложнее, чем просто сжатие отдельных кадров. Большинство буферов сжатых кадров основаны на разностях предыдущего кадра без повторного кодирования всего изображения. Они имеют настройки для различных целевых битрейтов, сетей с потерями (UDP) и сетей без потерь (TCP), частоты кадров, интерфейсов I-кадров и т. Д. Некоторые продвинутые кодеки даже ожидают получить информацию о QOS от приемника, чтобы они могли самостоятельно - настроить их вывод в соответствии с условиями сети.