Windows libyuv 引入 libjpeg

一、问题

最近一直在做 Windows 摄像头的采集(关于 Windows 的 Camera 采集后面会有博客单独介绍),使用 libyuv 去做格式的转换,但是在将 MJPEG 转换成 I420 时候一直失败

二、原因

查找原因发现是默认的 libyuv 是没有把 MJPEG 转 I420 编译进去的,需要我们手动添加 libjpeg 的库,然后将 libjpeg 编译进去

三、具体步骤

1、下载 libjpeg-turbo 库

https://github.com/libjpeg-turbo/libjpeg-turbo

2、编译 libjpeg-turbo

cd libjpeg-turbo
md build
cd build
cmake ..
打开 libjpeg-turbo.sln 然后编译

3、编译会生成对应的 libjpeg.lib

4、下载 libyuv,并进入到 libyuv 的根目录

https://github.com/lemenkov/libyuv

5、接下来看 libyuv 的 CMakeLists.txt

libyuv 的 CMakeLists.txt 是包含了 jpeg 的,但是需要自己将依赖的头文件和 lib 库加进去 

6、在 libyuv 根目录下面新建一个 libjpeg 的目录,然后在 libjpeg 目录下面新建 include 和 lib 目录,将 jpeglib.h 、jconfig.h 、 jmorecfg.h 三个头文件拷入到 include 目录下面,将 jpeg.lib 、 jpeg62.dll 拷贝到 lib 目录下面

7、在 libyuv 的 CMakeLists.txt 里面加上下面内容

SET ( JPEG_INCLUDE_DIR ${ly_base_dir}/third/include)
SET ( JPEG_LIBRARY jpeg)
LINK_DIRECTORIES(${ly_base_dir}/third/lib)
......
# 在 ADD_LIBRARY(${ly_lib_static} STATIC ${ly_source_files}) 后面加上
TARGET_LINK_LIBRARIES(${ly_lib_static} ${JPEG_LIBRARY})
# 在 ADD_LIBRARY(${ly_lib_shared} SHARED ${ly_source_files}) 后面加上
TARGET_LINK_LIBRARIES(${ly_lib_shared} ${JPEG_LIBRARY})

8、编译 libyuv

md build
cd build
cmake ..
打开 YUV.sln 编译生成 yuv.lib

9、在其它地方使用 libyuv 的时候,链接库的时候也需要链接 jpeg.lib 和 jpeg62.dll

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值