Motion JPEG 的规格是啥?

Posted

技术标签:

【中文标题】Motion JPEG 的规格是啥?【英文标题】:What is the specifications for Motion JPEG?Motion JPEG 的规格是什么? 【发布时间】:2010-10-27 11:25:24 【问题描述】:

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

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

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

我们的目标是在 actionscript 3 中实现它,但其他语言也可以很好地移植。我试过看 ffmpeg 和 mplayer,但 c 还不是我的强项。

任何建议将不胜感激!

【问题讨论】:

【参考方案1】:

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

【讨论】:

这是 RTSP 流的有效负载格式,而不是它自己的容器。【参考方案2】:

显然没有单一的规范。来自wikipedia:

批评

与国际标准中指定的视频格式不同 例如 MPEG-2 和格式 在 JPEG 静态图片中指定 编码标准,没有文档 定义单一的精确格式 这被普遍认为是 “运动”的完整规范 JPEG”适用于所有情况。这 引起兼容性问题 来自不同的文件输出 制造商。

【讨论】:

我想这可以解释为什么它很难找到。奇怪的是,由于许多“普通”相机在 mjpeg 中录制,他们只是在制定规格吗? 这就是标准的有趣之处 - 有很多可供选择!【参考方案3】:

基于 HTTP 的 MJPEG 至少有一个相当标准的实现。它作为多部分 HTTP 响应返回。

***文章讨论了确切的机制:

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

【讨论】:

jpegcameras.com 的链接已失效。【参考方案4】:

There isn't an official standard.

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

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

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

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

【讨论】:

libjpeg 现在似乎还活着here。【参考方案5】:

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

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)

【讨论】:

@RobertSköld 我现在试过了,链接真的坏了。我的电脑上有这个规范。如果你愿意,我可以发给你。 是的,我想要一份,谢谢。但它不能公开发布吗? @RobertSköld 我认为是可发布的,该链接上周有效。我怎么给你发邮件? 哦,我知道了,它现在已经在线备份了【参考方案6】:

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

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

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

【讨论】:

【参考方案7】:

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

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

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

【讨论】:

【参考方案8】:

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

【讨论】:

以上是关于Motion JPEG 的规格是啥?的主要内容,如果未能解决你的问题,请参考以下文章

leap motion是啥意思?

Unity3D 中 Generic 动画导入设置和 Root Motion 之间的关系

[Motion]MPU9250的Motion Driver

树莓派3b+ 使用 motion 进行拍照

树莓派motion配置

树莓派motion安装配置