windows11编译x264源码详解

介绍

x264在音视频领域盛名久远,网上介绍资源也很多,H.264是ITU(International Telecommunication Union,国际通信联盟)和MPEG(Motion Picture Experts Group,运动图像专家组)联合制定的视频编码标准。而x264是一个开源的H.264/MPEG-4 AVC视频编码函数库,是最好的有损视频编码器之一。直接套用百度文心一言的解释:

复制代码
x264是一种高效的H.264视频压缩编码器。它采用了一种基于块的运动估计和转换编码的混合编码方案,能够将视频数据压缩为更小的文件大小,同时保持较高的视频质量和流畅度。x264在许多领域都有广泛的应用,如视频流媒体、视频会议、视频编辑和存储等。

x264的特点包括:

高压缩效率:x264采用先进的编码算法,能够在保证视频质量的前提下,将视频数据压缩到更小的文件大小。
良好的兼容性:x264支持多种操作系统和硬件平台,能够与其他视频编解码器良好地兼容。
灵活的参数设置:x264提供了一系列的参数供用户进行自定义设置,可以根据不同的需求和场景进行调整。
总之,x264是一种高效、稳定、灵活的H.264视频压缩编码器,广泛应用于各种视频处理领域。

----文心一言

网址: https://www.videolan.org/developers/x264.html

x264编译过程

编译环境搭建配置: windows平台编译x264需要依赖MinGW或msys2,所以需要在本机先配置好MinGW或msys2,配置MinGW可参考windows11下配置MinGW详细步骤
下载x264源码: git clone https://code.videolan.org/videolan/x264.git ;源码目录如下。

使用MinGW: 双击MinGW安装目录下msys/1.0/msys.bat,在弹出的窗口 cd 到x264源码位置。

安装NASM:编译x264需要汇编库NASM,否则configure的需要--disable-asm

直接在PowerShell里用命令winget install nasm进行安装,然后将其安装目录配置到环境变量(配置时是配置到"用户变量 ","系统变量 "应该也可以没试)。


编译x264: 先进行configure之后进行make -j8 就可以编译x264了,在源码里可以找到x264.exe和对应的库libx264.a

测试是否可用: 利用命令行./x264.exe简单测试下,代表成功。

至此就可以应用x264可执行文件或用API调用x264库。

备注

  1. 可以看到用MinGW编译出来的x264是X86的,想用x84_64/x64的需要配置MinGW-w64或者用配置msys2进行编译。

  2. MinGW有三个主要版本:

    (1)mingw32-gcc.exe 编译器将在32位系统上构建32位应用程序。
    (2)i686-w64-mingw32-gcc.exe 编译器将在64位系统上构建32位应用程序。
    (3)x86_64-w64-mingw32-gcc.exe 编译器将在64位系统上构建64位应用程序。

相关推荐
DogDaoDao7 小时前
DeepQTMT: 深度学习加速VVC帧内编码CU划分 —— 论文深度解读与源码拆解
人工智能·深度学习·视频编解码·h266·vvc·帧内预测·deepqtmt
一个有点技术的程序猿12 小时前
局域网中视频采集,颜色空间转换,编码,网络发送,接收,解码,渲染全链路卡顿分析
网络·音视频·视频编解码
趣味科技13 小时前
记录修复EAGET忆捷移动硬盘损坏
windows·数据分析·硬件工程
我命由我1234515 小时前
Java 开发 - List subList 方法
java·windows·操作系统·list·intellij-idea·idea·intellij idea
吃辣我第一15 小时前
监听SHP目录自动注册SuperMap iServer地图服务(Windows版)
windows·iserver·shapefile
程序员老陆15 小时前
FFmpeg6 在 Windows 打开麦克风并录成 PCM:不走 Qt Multimedia,也不碰 WASAPI
windows·ffmpeg·音视频·pcm
乱舞八重击(junluoyu)16 小时前
硬件视频编解码(一)
视频编解码
DogDaoDao16 小时前
VVC 帧间编码分区加速方法
深度学习·音视频·视频编解码·h266·vvc·预测编码·帧间编码
chushiyunen16 小时前
神雕武功排名
windows
酩酊仙人16 小时前
Windows Server部署django
windows·django·sqlite