如何将MJPEG帧解码为JPEG

3
我正在编写一个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"

2个回答

2

我已经找到了答案,非常容易使用。

需要的人可以在这里找到:

JPEGFixer


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接