如何将MJPEG帧解码为JPEG

时间:2017-03-31 02:03:19

标签: objective-c c jpeg mjpeg

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

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

从我用Google搜索,似乎 MJPEG框架没有像 JPEG 那样的DHT,

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

我还发现很少有像 libjpeg-turbo 这样的第三方库, ffmpeg 可以实现这一点。

但是大多数示例仅显示如何执行此操作而只是提供URL而不是内存数据。

如果您之前已经在 C / Objective-C 中完成了此操作,希望您能告诉我。

与此同时,我一直在寻找答案。

感谢您的时间!

更新

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

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

这是我发现的最佳方式,不知道是否有更好的方式。

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

2 个答案:

答案 0 :(得分:1)

我已经找到了答案,这很容易使用。

无论谁需要它,这里是:

JPEGFixer

答案 1 :(得分:0)

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

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