Каковы технические характеристики для Motion JPEG? - PullRequest
27 голосов
/ 20 мая 2009

Я гуглюсь как сумасшедший и не могу найти никаких спецификаций формата файла для mjpeg.

Как должен выглядеть заголовок? Я просто добавляю серию jpegs после заголовка?

Я знаю, что это обычно в контейнере .avi, имеет ли он стандартизированный формат для кодеков, которые могут быть в нем?

Цель состоит в том, чтобы сделать это в ActionScript 3, но было бы неплохо портировать с других языков. Я пытался смотреть на ffmpeg и mplayer, но c не моя сильная сторона (пока).

Любые предложения будут оценены!

Ответы [ 8 ]

11 голосов
/ 19 декабря 2009

Официального стандарта не существует .

На практике в простейшем виде mjpeg - это просто конкатенация файлов jpeg, один за другим в одном и том же файле.

ffmpeg поддерживает это с помощью переключателей -f mjpeg или -vcodec mjpeg.

Декодеры JPEG, которые декодируют несколько изображений, должны помнить и использовать те же таблицы jpeg для последующих изображений, если эти изображения не обеспечивают замены. Стандарт jpeg описывает это как «сокращенные потоки jpeg», и libjpeg поддерживает это.

Таким образом, mjpeg может содержать полное изображение jpeg, а затем последующие блоки SOI..EOI, в которых не указаны те заголовки, которые являются дубликатами предыдущего кадра.

9 голосов
/ 20 мая 2009

Видимо нет единой спецификации. Из Википедии :

Критицизмы

В отличие от видео форматов, указанных в международных стандартах такие как MPEG-2 и формат указано в неподвижном изображении JPEG Стандарт кодирования, документа нет который определяет один точный формат это общепризнанно как Полная спецификация «Движение JPEG »для использования во всех контекстах. это вызывает проблемы совместимости о вывод файлов из разных производителей.

3 голосов
/ 20 мая 2009

Стандарт IETF определен как RFC 2435 . Я не знаю, какие кодеки будут поддерживать это, но это похоже на спецификацию данных.

2 голосов
/ 19 декабря 2009

MJPEG по HTTP, по крайней мере, имеет довольно стандартную реализацию. Возвращается как HTTP-ответ из нескольких частей.

В статье Википедии обсуждается точный механизм:

https://en.wikipedia.org/wiki/Motion_JPEG#M-JPEG_over_HTTP

1 голос
/ 04 апреля 2012

Нет единой официальной спецификации. Но некоторые компании сделали свою спецификацию:

Спецификация формата файла QuickTime (https://developer.apple.com/library/content/documentation/QuickTime/QTFF/QTFFPreface/qtffPreface.html)

Формат Motion JPEG, спецификация QuickTime M-JPEG (http://staticky.com/dl/ftp.apple.com/developer/Development_Kits/QuickTime/Programming_Stuff/Documentation/QuickTime-JPEGSpec.pdf)

Расширения формата файлов Microsoft OpenDML AVI (http://www.morgan -multimedia.com / download / odmlff2.pdf )

0 голосов
/ 18 июля 2015

Вы можете найти этот документ в других местах в сети, хотя я не знаю, какой из них является авторитетным источником: http://www.cajunbot.com/wiki/images/7/71/USB_Video_Payload_MJPEG_1.1.pdf

0 голосов
/ 18 ноября 2013

После многих дней поиска в Интернете я не смог найти ни полную документацию, ни двоичный пример протокола файла.

Самый информативный ресурс, который я нашел, см. http://www.digitalpreservation.gov/formats/fdd/fdd000127.shtml (Формат файла Motion JPEG 2000 - имеет много «Полезных ссылок URL» в конце, включая «Обзор Motion JPEG2000», которые, по крайней мере, помогают ответить на вопрос).

Вы найдете множество PDF Apple MOV, которое, очевидно, включает в себя Motion JPEG, но расшифровка займет недели. Я могу только предложить другим, что приведенный выше URL является хорошей отправной точкой для дальнейших исследований.

0 голосов
/ 11 июня 2013

В Motion JPEG каждый видеокадр или чересстрочное поле цифровой видеопоследовательности сжимается отдельно как изображение JPEG. Поэтому спецификация каждого кадра (например, коэффициент качества) хранится в заголовке. другими словами, ваша проблема сводится к следующему: «Как прочитать заголовок кадра в видео?»

Может быть, вы можете использовать JPEG Toolbax Фила Салли. Обратите внимание, что он имеет некоторые функции для чтения / записи изображения в формате JPEG, а некоторые - для отображения матриц DCT, коэффициента качества, таблиц кодирования Хаффмана и т.д.

Если вы найдете, как использовать эту функцию в видео и / или как прочитать спецификацию видео MJPEG, пожалуйста, поделитесь с нами

...