如何将 MJPEG 帧解码为 JPEG
How to decode MJPEG frame into JPEG
我正在编写一个 iOS 应用程序以通过 tcp 连接获取运动 jpeg 流作为内存数据。
但框架不能只保存为 jpg 文件。
根据我用谷歌搜索的结果,MJPEG 帧 似乎没有像 JPEG 那样的 DHT,
但是如何生成 DHT 并将其放入 mjpeg 帧中。
我还发现很少有像 libjpeg-turbo、ffmpeg 这样的第三方库可以做到这一点。
但大多数示例只展示了如何简单地给出一个 URL 而不是内存中的数据。
如果你以前在C/Objective-C做过这个,希望你能告诉我。
同时,我会继续寻找答案。
感谢您的宝贵时间!
更新:
现在我正在使用 DFJPEGTurbo 并将其 libjpeg-turbo 替换为最新版本。
将 mjpeg 框架重新包装到 UIImage 对象很容易。
这是我找到的最好的方法,不知道有没有更好的方法
我该如何以编程方式"ffmpeg -i {MJPEG_FILE} outputframe%d.jpg"?
我已经找到答案了,非常好用
谁需要,就在这儿:
请注意,此方法仅在您使用 FFmpeg 并在编译时启用比特流过滤器时才有效。
# this converts a MJPEG frame into a JPEG frame (adds a huffman table at the beginning.)
ffmpeg -i IN -bsf:v mjpeg2jpeg OUT
我正在编写一个 iOS 应用程序以通过 tcp 连接获取运动 jpeg 流作为内存数据。
但框架不能只保存为 jpg 文件。
根据我用谷歌搜索的结果,MJPEG 帧 似乎没有像 JPEG 那样的 DHT,
但是如何生成 DHT 并将其放入 mjpeg 帧中。
我还发现很少有像 libjpeg-turbo、ffmpeg 这样的第三方库可以做到这一点。
但大多数示例只展示了如何简单地给出一个 URL 而不是内存中的数据。
如果你以前在C/Objective-C做过这个,希望你能告诉我。
同时,我会继续寻找答案。
感谢您的宝贵时间!
更新:
现在我正在使用 DFJPEGTurbo 并将其 libjpeg-turbo 替换为最新版本。
将 mjpeg 框架重新包装到 UIImage 对象很容易。
这是我找到的最好的方法,不知道有没有更好的方法
我该如何以编程方式"ffmpeg -i {MJPEG_FILE} outputframe%d.jpg"?
我已经找到答案了,非常好用
谁需要,就在这儿:
请注意,此方法仅在您使用 FFmpeg 并在编译时启用比特流过滤器时才有效。
# this converts a MJPEG frame into a JPEG frame (adds a huffman table at the beginning.)
ffmpeg -i IN -bsf:v mjpeg2jpeg OUT