如何将 MJPEG 帧解码为 JPEG

How to decode MJPEG frame into JPEG

我正在编写一个 iOS 应用程序以通过 tcp 连接获取运动 jpeg 流作为内存数据。

但框架不能只保存为 jpg 文件。


根据我用谷歌搜索的结果,MJPEG 帧 似乎没有像 JPEG 那样的 DHT,

但是如何生成 DHT 并将其放入 mjpeg 帧中。

我还发现很少有像 libjpeg-turboffmpeg 这样的第三方库可以做到这一点。

但大多数示例只展示了如何简单地给出一个 URL 而不是内存中的数据。


如果你以前在C/Objective-C做过这个,希望你能告诉我。

同时,我会继续寻找答案。

感谢您的宝贵时间!


更新:

现在我正在使用 DFJPEGTurbo 并将其 libjpeg-turbo 替换为最新版本。

将 mjpeg 框架重新包装到 UIImage 对象很容易。

这是我找到的最好的方法,不知道有没有更好的方法

我该如何以编程方式"ffmpeg -i {MJPEG_FILE} outputframe%d.jpg"

我已经找到答案了,非常好用

谁需要,就在这儿:

JPEGFixer

请注意,此方法仅在您使用 FFmpeg 并在编译时启用比特流过滤器时才有效。

# this converts a MJPEG frame into a JPEG frame (adds a huffman table at the beginning.)
ffmpeg -i IN -bsf:v mjpeg2jpeg OUT