FFmpeg源码编译

msys2 依赖环境安装

依赖环境安装

编译X264

用于h264 AVC视频格式编码

bash 复制代码
CC=cl ./configure --enable-shared  #指定使用cl,编译成动态链接库
make -j32  #使用32线程进行编码
make install
  1. 命令一

关于第一条命令执行之后出现的错误:(我的F盘是exFAT文件格式的移动硬盘,所以会报错)

2.命令三

安装完成后,下面的目录里有了内容:

对于其中描述 x264 库的编译和链接信息见.pc文件


编译 fdk-aac

由于提供了 .vc的makefile文件,直接make就好了。

bash 复制代码
nmake -f Makefile.vc # 编译过程
nmake -f Makefile.vc prefix=.\install install # 安装过程

1.关于命令一、二
在VS 命令行窗口中输入:

命令描述

文件处理

将生成的文件

都复制到

之后,fdk-aac的文件与x264的文件都放在了一起

但是,pkgconfig里没有fdk-aac的配置文件,需要手动添加

找到

复制到此,并重命名为fdk-aac.pc

进入fdk-aac.pc文件改写为:

bash 复制代码
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: Fraunhofer FDK AAC Codec Library
Description: AAC codec library
Version: 
Libs: -L${libdir} -lfdk-aac
Libs.private: 
Cflags: -I${includedir}

编译x265

将解压出的x265文件放在下面的目录下:

bash 复制代码
make-Makefiles.sh
nmake install 

首先查看,/usr/bin下含有cmake的文件,发现有两个 cmake.exe与ccmake.exe

这里对cmake.exe重命名 `mv cmake.exe myrename.exe

然后进行编译 make-Makefiles.sh

编译成功

然后,切换管理员模式执行nmake install以便文件有写入权限。

具体地:首先以管理员模式打开命令行窗口

接着:正常输入命令msys2_shell.cmd -mingw32即可进入管理员模式的msys2

可以看到用户标志变成了 #

然后,转到下载好文件的路径,

将文件拷贝复制到

接着,找到

将其头文件稍加修改:具体地将第一行,路径改一下,以防msys2不认识C盘的路径

bash 复制代码
prefix=/usr/local

编译FFmpeg

bash 复制代码
CC=cl.exe ./configure --prefix=./install --toolchain=msvc --enable-shared --disable-programs --disable-ffplay --disable-ffmpeg --disable-ffprobe --enable-libx264 --enable-gpl --enable-libfdk-aac --enable-nonfree --enable-libx265
make -j16
make install

切到ffmpeg-4.3路径下,执行命令,报错:

考虑,将 pkgconfig剪切

粘贴到

再重新编译:

继续报错

去到 x264的配置文件中查看lib文件在哪里

发现 libx264.lib 文件不存在,需要将 libx264.dll.lib重命名为lbx264.lib

再次重新编译,继续报错:

然后,依然先查看 x265.lib的位置:

将 libx265.h重命名为 x265.h


最后生成成功

接着进行编译

然后进行安装

最后FFmpeg源码就编译完成了,此时有下面的文件 后面会将 .lib文件和 .dll文件进行分开

相关推荐
科技小E26 分钟前
EasyRTC嵌入式音视频通信SDK打造带屏IPC全场景实时通信解决方案
人工智能·音视频
天上路人6 小时前
AI神经网络降噪算法在语音通话产品中的应用优势与前景分析
深度学习·神经网络·算法·硬件架构·音视频·实时音视频
视频砖家7 小时前
如何设置FFmpeg实现对高分辨率视频进行转码
ffmpeg·音视频·视频编解码·视频转码
yanjiee8 小时前
视频质量分析时,遇到不同分辨率的对照视频和源视频,分辨率对齐的正确顺序。
ffmpeg·音视频
hudawei9969 小时前
flutter缓存网络视频到本地,可离线观看
flutter·缓存·音视频
lqj_本人11 小时前
鸿蒙OS&UniApp实现视频播放与流畅加载:打造完美的移动端视频体验#三方框架 #Uniapp
uni-app·音视频·harmonyos
Panesle14 小时前
基于对抗性后训练的快速文本到音频生成:stable-audio-open-small 模型论文速读
人工智能·机器学习·音视频
红米饭配南瓜汤15 小时前
WebRTC中的几个Channel
网络协议·音视频·webrtc·媒体
EasyDSS15 小时前
嵌入式EasyRTC音视频实时通话SDK在工业制造领域的智能巡检/AR协作等应用
人工智能·音视频
邪恶的贝利亚1 天前
FFplay 音视频同步机制解析:以音频为基准的时间校准与动态帧调整策略
音视频