我一直在疯狂搜索,找不到任何 mjpeg 的文件格式规范。
标题应该是什么样子?我只是在标题后附加一系列 jpeg 吗?
我知道它通常在 .avi 容器中,它是否具有可能在其中的编解码器的标准化格式?
目标是在 actionscript 3 中实现它,但其他语言可以很好地移植。我试过看 ffmpeg 和 mplayer 但 c 不是我的强项(还)。
任何建议,将不胜感激!
我一直在疯狂搜索,找不到任何 mjpeg 的文件格式规范。
标题应该是什么样子?我只是在标题后附加一系列 jpeg 吗?
我知道它通常在 .avi 容器中,它是否具有可能在其中的编解码器的标准化格式?
目标是在 actionscript 3 中实现它,但其他语言可以很好地移植。我试过看 ffmpeg 和 mplayer 但 c 不是我的强项(还)。
任何建议,将不胜感激!
显然没有单一的规范。来自维基百科:
批评
与 MPEG-2 等国际标准中规定的视频格式和 JPEG 静止图像编码标准中规定的格式不同,没有文件定义了一种被普遍认为是“Motion JPEG”完整规范的单一精确格式。在所有情况下使用。这引发了对来自不同制造商的文件输出的兼容性问题。
IETF 具有定义为RFC 2435的标准。我不知道什么编解码器会支持这个,但这似乎是数据规范。
没有单一的官方规范。但是有些公司制定了自己的规范:
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 )
MJPEG over HTTP 至少有一个相当标准的实现。它作为多部分 HTTP 响应返回。
维基百科文章讨论了确切的机制:
在互联网搜索了很多天后,我也找不到完整的文档,也找不到文件协议的二进制示例。
对于迄今为止我发现的信息量最大的资源,请参阅 http://www.digitalpreservation.gov/formats/fdd/fdd000127.shtml(Motion JPEG 2000 文件格式——结尾有许多“有用的参考 URL”,包括“Overview of Motion JPEG2000”,至少在某种程度上回答了这个问题)。
您会发现 Apple MOV PDF 比比皆是,其中显然包含 Motion JPEG,但需要数周时间才能破译。我只能向其他人建议,上述 URL 是进一步研究的良好起点。
在 Motion JPEG 中,数字视频序列的每个视频帧或隔行扫描场都被单独压缩为 JPEG 图像。因此存储在It's Header中的每个帧的规范(例如质量因子)。换句话说,您的问题简化为:“如何读取视频中帧的标题?”
也许您可以使用 Phil Sallee 的 JPEG Toolbax。请注意,它具有读取/写入 jpeg 图像的一些功能,以及显示 DCT 矩阵、质量因子、霍夫曼编码表等的功能。
如果您发现如何在视频中使用此功能和/或如何阅读 MJPEG 视频的规范,请与我们分享
您可以在网络上的其他地方找到此文档,但我不知道哪个是权威来源: http: //www.cajunbot.com/wiki/images/7/71/USB_Video_Payload_MJPEG_1.1.pdf