Quelles sont les spécifications de Motion JPEG?
j'ai cherché sur Google comme mad et je ne trouve aucune spécification de format de fichier pour mjpeg.
à quoi doit ressembler l'en-tête? Dois-je simplement ajouter une série d'images jpeg après l'en-tête?
je sais que c'est l'habitude dans les .conteneur avi, est un format standardisé pour les codecs qui peuvent être en cours?
L'objectif est de faire en actionscript 3, mais d'autres langues serait bon port. J'ai essayé de regarder ffmpeg et mplayer mais c n'est pas mon le côté fort (encore).
toute suggestion serait appréciée!
8 réponses
il n'y a pas de norme officielle.
en pratique, dans sa forme la plus simple, un mjpeg est juste une concaténation de fichiers jpeg, l'un après l'autre dans le même fichier.
ffmpeg supporte ceci en utilisant le -f mjpeg
ou -vcodec mjpeg
interrupteurs.
les décodeurs JPEG qui décodent plusieurs images doivent se souvenir et utiliser les mêmes tables jpeg pour les images suivantes si ces images ne parviennent pas à fournir des remplacements. La norme jpeg décrit ceci comme " abrégé jpeg flux', et libjpeg prend en charge cette.
ainsi, un mjpeg peut contenir une image jpeg complète, puis des SOI subséquentes..Les blocs EOI qui ne spécifient pas les en-têtes qui sont dupliqués dans le cadre précédent.
apparemment, il n'y a pas de spécification unique. À partir de wikipédia:
Critiques
Contrairement aux formats vidéo spécifiés dans les normes internationales comme le MPEG-2 et le format spécifié dans L'image fixe JPEG norme de codage, il n'y a pas de document qui définit un seul format exact c'est universellement reconnu comme un spécification complète du "mouvement" JPEG" pour une utilisation dans tous les contextes. Ce soulève des questions de compatibilité sur les sorties de fichiers de différents Fabricant.
MJPEG sur HTTP A au moins une implémentation assez standard. Il est retourné sous forme de réponse HTTP en plusieurs parties.
L'article de Wikipedia discute du mécanisme exact:
il n'y a pas de spécification officielle unique. Mais certaines entreprises ont fait leurs propres spécifications:
Spécification Du Format De Fichier QuickTime (https://developer.apple.com/library/content/documentation/QuickTime/QTFF/QTFFPreface/qtffPreface.html)
Motion format JPEG, Quicktime Spécification M-JPEG (http://staticky.com/dl/ftp.apple.com/developer/Development_Kits/QuickTime/Programming_Stuff/Documentation/QuickTime-JPEGSpec.pdf)
Microsoft AVI OpenDML Extensions du Format de Fichier (http://www.morgan-multimedia.com/download/odmlff2.pdf)
in Motion JPEG chaque image vidéo ou champ entrelacé d'une séquence vidéo numérique est compressé séparément sous forme D'image JPEG. Ainsi la spécification de chaque cadre (tel que le facteur de qualité) stocké dans son en-tête. en d'autres termes votre problème se réduit à ceci : "Comment lire l'en-tête d'une image dans une vidéo?"
vous pouvez peut-être utiliser la boîte à outils JPEG de Phil Sallee. Notez qu'il a une fonction pour lire/écrire une image jpeg et une autre pour afficher des Matrices DCT, des facteurs de qualité,des Tables de codage Huffman , etc.
si vous trouvez comment utiliser cette fonction en vidéo et / ou comment lire la spécification D'une vidéo MJPEG s'il vous plaît partager avec nous
après plusieurs jours de recherche sur Internet, je n'ai pas pu trouver la documentation complète non plus, ni un exemple binaire du protocole de fichier.
pour la ressource la plus informative que j'ai trouvée jusqu'à présent, voir http://www.digitalpreservation.gov/formats/fdd/fdd000127.shtml (Le Format de fichier de Motion JPEG 2000 -- a beaucoup de "références utiles URLs" à la fin y compris "aperçu de Motion JPEG2000" qui au moins aller quelque peu vers la réponse à la question).
Vous trouverez Les PDF de Apple MOV abondent, ce qui inclut apparemment Motion JPEG, mais il faudrait des semaines pour déchiffrer. Je ne peux que suggérer à d'autres que L'URL ci-dessus est un bon point de départ pour de plus amples recherches.
Vous pouvez trouver ce document dans d'autres endroits sur le Net mais je ne sais pas lequel est une source officielle: http://www.cajunbot.com/wiki/images/7/71/USB_Video_Payload_MJPEG_1.1.pdf