Motion JPEG的规格是什么?

时间:2009-05-19 21:39:24

标签: actionscript-3 specifications file-format mjpeg

我一直在疯狂搜索,无法找到mjpeg的任何文件格式规范。

标题应该是什么样的? 我只是在标题后附加一系列jpegs吗?

我知道它通常位于.avi容器中,是否有可能存在于其中的编解码器的标准化格式?

目标是在动作脚本3中制作它,但其他语言可以很好地移植。我试过看ffmpeg和mplayer但c不是我强大的一面(还)。

任何建议都将不胜感激!

8 个答案:

答案 0 :(得分:11)

There isn't an official standard

实际上,在最简单的形式中,mjpeg只是jpeg文件的串联,在同一个文件中一个接一个。

ffmpeg使用-f mjpeg-vcodec mjpeg开关支持此功能。

解码多个图像的JPEG解码器应记住并使用相同的jpeg表用于后续图像(如果这些图像无法提供替换)。 jpeg标准将其描述为“缩写的jpeg流”,libjpeg支持此功能。

所以mjpeg可能包含一个完整的jpeg图像,然后是后续的SOI..EOI块,它们没有指定那些与前一帧重复的标题。

答案 1 :(得分:9)

显然没有单一的说明。来自wikipedia

  

批评

     

与国际标准中指定的视频格式不同   例如MPEG-2和格式   在JPEG静态图片中指定   编码标准,没有文件   它定义了一个确切的格式   这被普遍认为是一种   完整的“运动规范”   JPEG“用于所有上下文。这个   提出兼容性问题   来自不同的文件输出   厂家。

答案 2 :(得分:3)

IETF的标准定义为RFC 2435。我不知道哪些编解码器会支持这个,但这似乎是数据规范。

答案 3 :(得分:2)

HTTP上的MJPEG至少有一个非常标准的实现。它作为多部分HTTP响应返回。

维基百科的文章讨论了确切的机制:

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

答案 4 :(得分:1)

没有单一的官方规范。但是有些公司制定了自己的规范:

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

答案 5 :(得分:0)

在Motion JPEG中,数字视频序列的每个视频帧或隔行扫描场都作为JPEG图像单独压缩。因此,存储在It's Header中的每个帧的规范(例如品质因数)。换句话说,你的问题简化为:“如何读取视频中帧的标题?”

也许你可以使用Phil Sallee的JPEG Toolbax。请注意,它具有读取/写入jpeg图像的功能,还有一些用于显示DCT矩阵,品质因数,霍夫曼编码表等。

如果您发现如何在视频中使用此功能和/或如何阅读MJPEG视频的规格,请与我们分享

答案 6 :(得分:0)

经过多天的互联网搜索,我找不到完整的文档,也找不到文件协议的二进制示例。

对于迄今为止我发现的信息量最大的资源,请参阅 http://www.digitalpreservation.gov/formats/fdd/fdd000127.shtml (Motion JPEG 2000文件格式 - 最后有许多“有用的参考URL”,包括“Motion JPEG2000概述”,它至少在某种程度上回答了这个问题)。

你会发现Apple MOV PDF比比皆是,显然包含了Motion JPEG,但需要数周时间才能解读。我只能向其他人建议上述网址是进一步研究的良好起点。

答案 7 :(得分:0)

您可以在网络上的其他位置找到此文档,但我不知道哪一个是权威来源: http://www.cajunbot.com/wiki/images/7/71/USB_Video_Payload_MJPEG_1.1.pdf