第二篇: libyuv的编译

news2024/11/18 13:25:22

一、前言

DirectShow采集出来的视频, 采集格式(例如: mjepg)和我们需要的视频格式(i420)并不一致,因此需要解码

二、libyuv下载

git clone https://chromium.googlesource.com/external/libyuv

三、libjpeg-turbo下载

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

四、libjpeg编译可以参考 BUILDING.md

环境:

  • VS2019
  • CMake
  • YASM

启动vs工具 编译:

cd libjpeg-turbo
cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release
nmake

编译生成

jpeg-static.lib Static link library for the libjpeg API

jpeg{version}.dll DLL for the libjpeg API

jpeg.lib Import library for the libjpeg API

turbojpeg-static.lib Static link library for the TurboJPEG API

turbojpeg.dll DLL for the TurboJPEG API

turbojpeg.lib Import library for the TurboJPEG API

五、打开libyuv CMakeLists.txt

1、默认libyuv是没有配置JPEG的

2、libyuv目录下创建libjpeg,拷贝库和头文件

-libjpeg

-jpeglib.h

-jconfig.h

-jmorecfg.h

-lib

-jpeg.lib

-jpeg62.dll

3、修改CMakeLists.txt

A、SET ( ly_lib_shared ${ly_lib_name}_shared )后面添加

SET ( JPEG_INCLUDE_DIR ${ly_base_dir}/libjpeg)
SET ( JPEG_LIBRARY jpeg)

B、ADD_LIBRARY ( ${ly_lib_static} STATIC ${ly_source_files} ) 后面添加

TARGET_LINK_LIBRARIES   (${ly_lib_static} ${JPEG_LIBRARY})

C、ADD_LIBRARY ( ${ly_lib_shared} SHARED ${ly_source_files} )后面添加

TARGET_LINK_LIBRARIES   (${ly_lib_shared} ${JPEG_LIBRARY})

D、去掉

target_compile_options(${ly_lib_static} PRIVATE
  -Wno-sign-compare
  -Wno-unused-function
  -Wunused-variable
  -Wuninitialized)

如图:

4、编译libyuv

md out
cd out
cmake ..
手动打开 YUV.sln 
编译生成 yuv.lib

注:编译出来的是yuv.lib,建议直接修改为libyuv.lib和工程名称一致

六、打包库

-libyuv

      -include // 这里是libyuv的include文件夹

      -lib // libyuv.lib jpeg.lib

      -dll // jpeg62.dll

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/956309.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

北斗三代PPP-B2b解算非组合PPP分析

下面进行了北斗三代PPP-B2b非组合PPP-B2b定位的初步结果(具体结果参考图片红色字体,不要看坐标轴标注或者标题): 参考文献: 1、https://blog.csdn.net/qq_40056060/article/details/119107531目录系列文章目录前言一、…

基于Spring Boot的高校二手物品售卖网站设计与实现(Java+spring boot+MySQL)

获取源码或者论文请私信博主 演示视频: 基于Spring Boot的高校二手物品售卖网站设计与实现(Javaspring bootMySQL) 使用技术: 前端:html css javascript jQuery ajax thymeleaf 微信小程序 后端:Java sp…

你需要了解的有关计算机电源的所有信息

电源单元是将插座提供的电源转换为计算机机箱内许多部件的可用电源的硬件。 它将墙上插座的交流电转换为计算机组件所需的直流电。它还通过控制电压来调节过热,电压可能会根据电源自动或手动变化。 电源是一个关键部件,因为没有它,其他内部…

Deepin 图形化部署 Hadoop Single Node Cluster

Deepin 图形化部署 Hadoop Single Node Cluster 升级操作系统和软件 快捷键 ctrlaltt 打开控制台窗口 更新 apt 源 sudo apt update更新 系统和软件 sudo apt -y dist-upgrade升级后建议重启 开启ssh服务 打开资源管理器 进入系统盘 找到 etc 目录 在系统盘的 etc 目录上 右键…

OceanBase安全审计之传输加密

上一期我们讲了关于 OceanBase 安全审计的《身份鉴别》和《用户管理与访问控制》 两个部分,OceanBase 的安全机制介绍其支持传输加密,今天我们主要来实践一下如何配置传输加密以及验证是否真的加密。 作者:金长龙 爱可生测试工程师&#xff0…

Docker安装OpenWAF

Docker安装OpenWAF 官方GitHub地址 介绍 OpenWAF(Web Application Firewall)是一个开源的Web应用防火墙,用于保护Web应用程序免受各种网络攻击。它通过与Web服务器集成,监控和过滤对Web应用程序的流量,识别和阻止潜…

Vue中使用qrcode实现渲染二维码中间添加自定义logo-demo

效果 使用 import QRCode from qrcode; 具体生成过程 <template><div class"banner-login"><img :src"qrDataUrl" /></div> </template><script setup> import { ref, reactive } from vue; import QRCode from q…

Caffine和Guava的refreshAfterWrite的异同

背景: guava和caffine的refreshAfterWrite方法在用于本地缓存的场景是非常常用的&#xff0c;本文通过例子列举下caffine的refreshAfterWrite方法和guava的refreshAfterWrite的相同点和不同点 相同点/不同点&#xff1a; 以下都是使用keyXYZ作为例子 场景1&#xff1a;一开…

Linux网络编程:select函数的用法和原理

Linux网络编程&#xff1a;select函数的用法和原理 Linux上的select函数 select函数用于检测一组socket中是否有事件就绪.这里的事件为以下三类: 读事件就绪 在socket内核中,接收缓冲区中的字节数大于或者等于低水位标记SO_RCVLOWAT,此时调用rec或read函数可以无阻塞的读取该…

【Web UI自动化测试】Web UI自动化测试之框架篇(全网最全)

本文大纲截图&#xff1a; UnitTest框架&#xff1a; PyTest框架&#xff1a; 框架&#xff1a; 框架英文单词 framework&#xff0c;为解决一类事情的功能的集合。需要按照框架的规定&#xff08;套路&#xff09;去书写代码。 一、UnitTest框架介绍【文末分享自动化测试学…

报错:axios发送的所有请求都是404

axios发送的所有请求都是404 一、问题二、分析三、解决一、问题 对后台发送数据请求接口,在 Swagger 上是可以请求到的 但是通过 Ajax 发送请求就会报 404 Swagger 上调用如下 项目接口请求如下

深入MaxCompute -第十一弹 -QUALIFY

简介&#xff1a; MaxCompute支持QUALIFY语法过滤Window函数的结果&#xff0c;使得查询语句更简洁易理解。Window函数和QUALIFY语法之间的关系可以类比聚合函数GROUP BY语法和HAVING语法。 MaxCompute&#xff08;原ODPS&#xff09;是阿里云自主研发的具有业界领先水平的分…

【附安装包】3ds Max2023安装教程

软件下载 软件&#xff1a;3ds Max版本&#xff1a;2023语言&#xff1a;简体中文大小&#xff1a;6.85G安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU3GHz 内存16G(或更高&#xff09;下载通道①百度网盘丨64位下载链接&#xff1a;https://pan.baidu.c…

【科普】干货!带你从0了解移动机器人(五) ( 如何选择控制器类型)

控制器是移动机器人&#xff08;AGV/AMR&#xff09;最主要的核心部件&#xff0c;是整个车体的“大脑”&#xff0c;关系到车体的可靠稳定、性能指标和安全性。它通常用于接收传感器模块采集的数据&#xff0c;并进行信息处理分析&#xff0c;从而下发各种运动指令的硬件。目前…

哪里可以找到优质的文章?

我认为中外科技内容过去主要是“信息差”&#xff0c;即人们可以直接从国外文章中摄取信息并直接实践&#xff0c;谁快谁赢。 而现在主要是“观点差”&#xff0c;国内科技相关的理论和评论文章的数量和质量都还比较弱。 所以&#xff0c;优质文章建议多找外文。 参考风险投资人…

django-项目

一、RESTful设计风格 基础概念 全称&#xff1a;Representational State Transfer 1.资源 网络上的一个实体&#xff0c;每个资源都有一个独一无二的URL与之对应&#xff1b;获取资源-直接访问URL即可 2.表现层 资源的表现形式 如HTML、xml、JPG、json等 3.状态转化 …

Kubernetes技术--部署实际的java项目部署

1.容器交付流程 (1).总体的流程如下所示: (2).k8s部署项目细节流程(详细过程) 2.java实际项目部署 (1).准备java项目,把项目打成jar包或者war包,这里需要依赖两个环境:jdk和maven环境。 使用mvn clean package进行打包,如下所示

2023年口腔医疗行业研究报告

第一章 行业概况 1.1 定义 口腔医疗行业是以口腔医疗服务消费为基础&#xff0c;包含医疗及消费双重属性&#xff0c;是 为满足口腔及颌面部疾病的预防和诊疗、口腔美容等需求提供相关医疗服务的行业。 该行业的主要参与者包括口腔保健专业人员&#xff08;如牙医、口腔外科…

【重要】这是我见过最好的Flash科普文了

一、Flash Memory简介 Flash Memory 是一种非易失性的存储器。在嵌入式系统中通常用于存放系统、应用和数据等。在 PC 系统中&#xff0c;则主要用在固态硬盘以及主板 BIOS 中。 另外&#xff0c;绝大部分的 U 盘、SDCard 等移动存储设备也都是使用 Flash Memory 作为存储介质…