Это должен был быть комментарий к сообщению @thomasrutter, но я пока не могу комментировать (без репутации).
Ваш пункт о MJPEG и AVC не совсем верен. Это правда, что MPEG-4 Part 10 (AVC / H.264) обычно не записывает каждый кадр как I-кадр (ключ / полный кадр). В спецификации нет ничего, что бы запрещало это, и некоторые камеры записывают только I-кадры.
Что вы ошибаетесь, так это преимущества MJPEG по сравнению с H.264 и ваш аргумент о том, почему. Я начну с краткого объяснения того, как кадры восстанавливаются из H.264 (или других форматов видеокодеков). Видео будет кодироваться в трех различных типах кадров, внутрикодированных кадрах (I-кадрах), кадрах с предсказательным кодированием (P-кадрах) и кадрах с двунаправленным предсказанием (B-кадрах). I-кадр - это сжатая версия полного «сырого» кадра. Его можно восстановить как JPEG (или один кадр в потоке MJPEG). С другой стороны, P-кадр ссылается на предшествующие I- и P-кадры, и их необходимо будет восстановить. B-кадр также может ссылаться на следующие I- и P-кадры. Об этом гораздо больше информации в Википедии.
Разница между H.264 и MJPEG как работает сжатие, а не как хорошо. Каждый отдельный кадр в цифровом видео может быть полностью реконструирован с использованием информации, которая находится в видеофайле / потоке. H.264 даст лучшие результаты, чем MJPEG, даже если вы экспортируете один кадр с одинаковой скоростью передачи данных. Это справедливо для большинства битрейтов (не уверен в очень низких битрейтах). Здесь есть больше информации и несколько тестов, и хорошее место для начала - ression.ru .
Единственный недостаток H.264 - сложность вычислений при реконструкции одного кадра. H.264 требует гораздо большей вычислительной мощности, чем MJPEG. Это не проблема на современных компьютерах.