Это должен был быть комментарий к посту @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, даже если вы экспортируете один кадр с одинаковой скоростью передачи данных. Это справедливо для большинства битрейтов (не уверен насчет очень низких битрейтов). Здесь есть больше информации и несколько тестов, и хорошее место для начала - это сжатие .
Единственный недостаток H.264 - сложность вычислений при реконструкции одного кадра. H.264 требует гораздо большей вычислительной мощности, чем MJPEG. Это не проблема на современных компьютерах, хотя.