Windows11编译x265源码生成Visual Studio工程详细步骤

概述

x265是一款开源符合HEVC标准的编码器,也属于VLC项目之一。

由于x265是开源的,因此它得到了广泛的应用和开发。许多开源项目和商业产品都使用x265进行视频压缩处理。同时,x265也支持多种编程语言和平台,使得开发者可以方便地集成到自己的项目中。

需要注意的是,由于视频压缩技术涉及到复杂的算法和计算,因此使用x265进行视频压缩处理可能需要一定的技术背景和经验。对于初学者来说,建议先了解基本的视频压缩原理和H.265/HEVC标准,再逐步学习和掌握x265的使用方法。

官方代码仓库: https://bitbucket.org/multicoreware/x265_git/src/master/
git镜像代码仓库: https://github.com/videolan/x265/commits/master

官方文档:https://x265.readthedocs.io/en/master/

编译具体过程

源码下载:
git clone https://bitbucket.org/multicoreware/x265_git.git

打开源码:
用VScode等编辑工具打开x265源码,源码目录如下,build文件夹编译相关,doc是说明文档,source文件夹是真正的实现HEVC标准的源码。
在这里插入图片描述
打开x265/build文件目录,可以看到x265官方本身提供了不同的平台的构建脚本。可以看到在Windows系统里针对不同版本的Visual Studio版本提供不同的构建脚本。但可以看到目前版本(最新版本3.5)还未支持VS2019、VS2022的IDE。
在这里插入图片描述
根据x265/build/README.text中关于Windows系统的编译说明,进行详细的详细的编译。
在这里插入图片描述
编译说明:
Windows系统下x265的编译一般有三种方式,即使用VS的MSVC编译、MSYS2中gcc编译、MinGW中gcc编译。

安装依赖:
x265会用到NASM 和CMAKE,以及Visual Studio;其中NASM汇编依赖,CMAKE用于生成sln文件, Visual Studio直接打开sln文件进行编译,生成x265库和可执行文件。(直接知道到官网下载或可以利用PowerShell里的winget进行安装:winget install nasmwinget install cmake
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

sln文件生成:
小编用的Visual Studio是2022版本,而x265/build源码里没有现成的2022的构建脚本,因此需要利用CMAKE生成sln文件。完整的CMAKE指令如下(需要cmake环境定位到x265源码目录下):
在这里插入图片描述

 cmake -G "Visual Studio 17 2022" -S ./source -B ./build/project

关于cmake的三个参数-G、-S、-B的说明如下

-S <path-to-source>
Path to root directory of the CMake project to build.

-B <path-to-build>
Path to directory which CMake will use as the root of build directory.

If the directory doesn't already exist CMake will make it.

-G <generator-name>
Specify a build system generator.

CMake may support multiple native build systems on certain platforms. A generator is responsible for generating a particular build system. Possible generator names are specified in the cmake-generators(7) manual.

If not specified, CMake checks the CMAKE_GENERATOR environment variable and otherwise falls back to a builtin default selection.

运行上面cmake指令,如果依赖库都没问题,出现如下截图,则代表成功生成sln文件。
在这里插入图片描述
VS2022编译x265:
打开project里的x265.sln,可以看到图标的右上角有17的数字,代表是生成了VS2022版本的sln(VS2022对应的版本就是17)。
在这里插入图片描述
用VS2022打开,点击"生成"->“生成ALL_BUILD”,等待一段时间的编译。
在这里插入图片描述
一段时间后,在输出窗口就会提示生成:7 成功,0 失败,0 最新,0 已跳过,则代表已经编译成功。
在这里插入图片描述
由于选择的是Debug-x64架构编译,因此在project/Debug目录里就可以找到对应的库文件libx265.dllx265可执行程序等文件。
在这里插入图片描述
可以根据需求编译Release、x86架构等。

备注

  1. 此外还可以利用MinGW、msys2进行编译直接生成库和可执行程序,可以参考README.txt以及网上资源。
  2. Mac和Linux相对简单,直接根据README.txt即可。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CSS背景(详解)

CSS背景 &#x1f365;CSS背景属性&#x1f9ff;背景代码演示&#x1fae7;background&#x1f368;background-color&#x1f30a;background-image&#x1f3af;background-position&#x1f367;background-repeat &#x1f365;CSS背景属性 使用背景的重要性&#xff1a; …

构建高效持久层:深度解析 MyBatis-Plus(02)

目录 引言1. 逻辑删除1.1 概述1.2 逻辑删除的优势1.3.为什么使用逻辑删除1.4 综合案例 2. 乐观锁和悲观锁2.1.什么是乐观锁和悲观锁2.2.乐观锁和悲观锁的区别2.3.综合案例 3. 分页插件总结 引言 在现代软件开发中&#xff0c;数据库操作是不可或缺的一环。为了提高系统的性能、…

SQL进阶理论篇(十二):InnoDB中的MVCC是如何实现的?

文章目录 简介事务版本号行记录的隐藏列Undo LogRead View的工作流程总结参考文献 简介 在不同的DBMS里&#xff0c;MVCC的实现机制是不同的。本节我们会以InnoDB举例&#xff0c;讲解InnoDB里MVCC的实现机制。 我们需要掌握这么几个概念&#xff1a; 事务版本号行记录的隐藏…

在centos7上安装docker

1.CentOS安装Docker Docker CE 支持 64 位版本 CentOS 7&#xff0c;并且要求内核版本不低于 3.10&#xff0c; CentOS 7 满足最低内核的要求&#xff0c;所以我们在CentOS 7安装Docker。 1.1.卸载&#xff08;可选&#xff09; 如果之前安装过旧版本的Docker&#xff0c;可…

智慧园区电力监控系统

智慧园区的电力监控系统是一种针对园区电力配送和管理的智能化系统。它的主要功能是实时监控设备运行情况&#xff0c;进行电能质量分析&#xff0c;监控电能损耗&#xff0c;以及分时段用电统计等。具体来说&#xff0c;智慧园区的电力监控系统可以利用现代技术如RS-485总线通…

C++共享和保护——(4)保护共享数据

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 一滴汗珠万粒粮&#xff0c;万粒汗珠谷…

5.5 DataFrame.rolling()创建滚动窗口对象

DataFrame.rolling创建滚动窗口对象 一、介绍二、代码一、介绍 DataFrame.rolling() 是 pandas 中用于创建滚动窗口对象的函数,它可以对时间序列或其他类型的数据进行滚动计算。下面是该函数的一些参数说明: DataFrame.rolling(window, min_periods=None, center=False, win_…

59. 螺旋矩阵 II(java实现,史上最详细教程,想学会的进!!!)

今天来分享一下螺旋矩阵的解题思路及代码的实现。 题目描述如下&#xff1a; 首先拿到这道题&#xff0c;首先不要慌张&#xff0c;我们来仔细分析一下会发现并没有那么难。 首先看下边界的元素是1、2、3递增的&#xff0c;那么我们也许可以根据这一点先把边界的元素一个一个给…

Discord Midjourney 安装使⽤教程(AI绘画)

安装步骤: 1.注册Discord账号 2.进⼊Midjourney社区创作 3.创建⾃⼰服务器 安装教程: 1.注册Discord账号 账号注册的方式&#xff1a; 注册地址: //账号注册地址https://discord.com/ 2.进⼊Midjourney社区创作 // 邀请链接: 官方的midjourneyhttps://discord.gg/midjo…

4.docker镜像及相关命令

目录 1 查看所有镜像 docker images 1.1 基本用法 1.2 docker images -q 只显示所有镜像ID 1.3 docker images -f [筛选条件] -q 只显示符合条件的所有镜像ID 1.4 docker images --no-trunc 显示完整的IMAGE ID 1.5 docker images --format [模板] 使用模板 2 从…

玩转Docker(六):数据挂载与共享

文章目录 〇、Docker的两种存放数据的资源1.Storage Driver2.Data Volume3.使用场景 一、使用Data Volume1.-v <host_path>:<container_path>2.-v <container_path>挂载匿名卷 二、数据共享1.容器和主机之间共享2.容器之间共享(1)方法一&#xff1a;-v非匿名…

Mysql之Specified key was too long; max key length is xx bytes异常

问题原因&#xff1a;mysq索引的字段都太长了 767字节是 MySQL 版本5.6(以及以前版本)中 InnoDB 表的最大索引前缀长度限制&#xff0c;MyISAM 表的长度为1,000字节。在 MySQL 版本5.7及以上版本中&#xff0c;这个限制增加到了3072字节。 如果对 utf8mb4编码的 varchar 字段设…

第七节JavaScript Promise

一、JavaScript Promise 1、简介 Promise是一个ES6提供的类&#xff0c;目的是更加优雅地书写复杂的异步任务。 由于Promise是ES6新增的&#xff0c;所以一些旧的浏览器并不支持&#xff0c;苹果的Safari 10和Windows的Edge 14版本以上的浏览器才支持&#xff0c;这个需要注…

[AutoSar]基础部分 RTE 02 S/R Port 显式/隐式

目录 关键词平台说明一、显式&#xff08;Explicit&#xff09;和隐式&#xff08;Implicit&#xff09;1.1 显式模式1.1.1code 二、隐式模式2.1 code 三、区别 关键词 嵌入式、C语言、autosar、EcuM、Rte 平台说明 项目ValueOSautosar OSautosar厂商vector芯片厂商TI编程语…

Content-Type是什么

目录 Content-Type是什么 获取方式 设置方式 常见类型 application/x-www-form-urlencoded multipart/form-data application/json text/xml text/html text/plain Content-Type是什么 Content-Type出现在请求标头和响应标头中&#xff0c;意思是内容类型&#xff0…

Ubuntu如何安装KVM

环境&#xff1a; 联想E14笔记本 Ubuntu20.04 问题描述&#xff1a; Ubuntu如何安装KVM 解决方案&#xff1a; 1.验证CPU是否支持硬件虚拟化 rootst-ThinkPad-E14:~# grep -Eoc (vmx|svm) /proc/cpuinfo 162.检查 VT 是否在 BIOS 中启用 安装 apt install cpu-checker …

论文阅读——Painter

Images Speak in Images: A Generalist Painter for In-Context Visual Learning GitHub - baaivision/Painter: Painter & SegGPT Series: Vision Foundation Models from BAAI 可以做什么&#xff1a; 输入和输出都是图片&#xff0c;并且不同人物输出的图片格式相同&a…

隐私计算介绍

这里只对隐私计算做一些概念性的浅显介绍&#xff0c;作为入门了解即可 目录 隐私计算概述隐私计算概念隐私计算背景国外各个国家和地区纷纷出台了围绕数据使用和保护的公共政策国内近年来也出台了数据安全、隐私和使用相关的政策法规 隐私计算技术发展 隐私计算技术安全多方计…

滴滴出行:驾龄不到一年有什么办法注册网约车?

驾龄不到一年有什么办法注册网约车&#xff1f;怎么解决网约车注册审核问题。我可以为您提供一些对于如何注册滴滴快车的信息。要注册为滴滴快车司机&#xff0c;你需要符合下列规范&#xff1a; 1.年龄在12-60岁左右&#xff0c;有C1或以上驾照&#xff0c;如果驾龄不够三年是…

JVM 垃圾回收详解

前言 什么是垃圾? 垃圾是指运行程序中没有任何引用指向的对象&#xff0c;需要被回收。 内存溢出和内存泄漏 内存溢出&#xff1a;经过垃圾回收之后&#xff0c;内存仍旧无法存储新创建的对象&#xff0c;内存不够溢出。 内存泄漏&#xff1a;又叫“存储泄漏”&#xff0…