使用 LIBAVCODEC 将原始图像缓冲区转换为 JPEG
我有一个从相机捕获的原始图像缓冲区(在内存中),我想将其转换为 JPEG(以减小尺寸)。问题在于,将这些图像保存为 .pgm 格式会导致文件大小巨大,由于保存这种大小的大文件所涉及的内存限制和延迟(我正在开发的应用程序中的一个限制),我无法承受这种巨大的文件大小。
我想知道如何使用 LIBAVCODEC 将图像缓冲区压缩/编码为 .jpg 格式?我的图像捕获代码是用 C 语言编写的。
I have a raw image buffer (in memory) captured from a camera that I want to convert into JPEG (for reducing size). The problem is that saving these images into .pgm format results into a huge file size that I can't afford due to the memory limitations and latency involved in saving a huge file of this size (a constraint in the application I am working on).
I want to know how do I compress/encode an image buffer into .jpg format using LIBAVCODEC? My image capture code is in C.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
此代码适用于 YUV 原始图像。我在尝试对 RGB 原始图像进行编码时遇到段错误。但您可以使用 swscale() 将 RGB 转换为 YUV
this code works with YUV raw images. I got segfault trying to encode an RGB raw image. but you can use
swscale()
to convert RGB to YUV