ffmpeg windows编译及调试完整版

这篇具有很好参考价值的文章主要介绍了ffmpeg windows编译及调试完整版。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

编译

基础环境准备

依赖环境安装

依赖库安装

X264

fdk-aac

X265

ffmpeg-4.3.6

调试

基础项目环境搭建

VS2019项目创建

VS2019项目代码

vs2019配置

VS2019调试


编译

基础环境准备

1、安装vs2019环境
2、安装msys2工具
3、开始菜单启动x86 Native Tools Command Prompt for VS2019
4、进入msys2安装目录找到msys2_shell.cmd脚本,打开修改 
    rem set MSYS2_PATH_TYPE=inherit 删掉rem,打开环境变量的继承
5、在第3步的终端里输入msys2_shell.cmd -mingw32  启动msys2的mingw32终端窗口
6、在窗口中敲cl正常执行说明VS2019的环境已经继承过来
如果是乱码,则右击终端窗口选择
Options->Text->Locale选择zh_CN
Options->Text->Character set->GBK

依赖环境安装

pacman -S nasm
pacman -S yasm              #这两个是汇编需要
pacman -S make cmake
pacman -S diffutils          #比较工具,ffmpeg configure生成makefile时用到
pacman -S pkg-config    #找依赖使用
pacman -S git
无法翻墙则替换msys2数据源(类似linux数据源):
ffmpeg windows编译及调试完整版

依赖库安装

X264
使用上述方法进入msys2终端
git下载源码            
CC=cl ./configure --enable-shared --prefix=/usr/local   #指定编译器和编成动态链接库
make -j8 && make install
fdk-aac

 (21条消息) Windows平台下libfdk-aac库的编译方法_libfdk_aac_Jncryang的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-502039.html

git下载源码到msys2家目录,和x264放一起
version 2.0.1
进入 x86 Native Tools Command Prompt for VS2019终端
nmake -f Makefile.vc
nmake -f Makefile.vc prefix=./install install
version 2.0.2
进入 x86 Native Tools Command Prompt for VS2019终端
Makefile.vc文件,执行cmake .生成vs sln项目文件,用vs打开编译
或者
使用msys2终端
pacman -S autoconf automake libtool
./autogen.sh
CC=cl ./configure --enable-shared --prefix=/usr/local     #指定编译器和编成动态链接库
make -j8 && make install
X265
git clone multicoreware / x265_git / wiki / Home — Bitbucket
/home/admin/x265_git/build/msys-cl
mv /usr/bin/cmake.exe /usr/bin/ccmake.exe  #不能使用msys2中的cmake要使用msvc中的cmake,默认可能是/usr/bin/cmake,改个名就默认编程vs2019的cmake了
./make-Makefiles.sh
nmake install  #可能会出错因为拷贝最终文件没有c盘的权限 D:\msys64\home\admin\x265_git\build\msys-cl\ cmake_install.cmake中的路径C盘
改成D盘就好了
拷贝D盘的编译生成的数据全部拷贝放到msys2中的  /usr/local

ffmpeg-4.3.6

 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
ERROR: libfdk_aac not found
ffbuild/config.log查看错误日志(乱码的话使用vscode 的gbk2312编码方式)
pkg-config --cflags --libs fdk-aac发现找不到fdk-aac.pc
$ echo $PKG_CONFIG_PATH
/mingw32/lib/pkgconfig:/mingw32/share/pkgconfig
把/usr/local/lib/pkgconfig文件夹移动到 /mingw32/lib/即可,或者改 PKG_CONFIG_PATH环境变量添加/usr/local/lib路径
$ pkg-config.exe --cflags --libs fdk-aac
-I/usr/local/include -L/usr/local/lib -lfdk-aac
ERROR: libx264 not found   链接错误没找到libx264
libx264.lib.dll   改成  libx264.lib
ERROR: x265 not found using pkg-configx
libx265.lib  改成  x265.lib
x265.pc中的路径记得改成 prefix=/usr/local 之前默认是C盘的(详见X265 安装说明)
make -j8 && make install

调试

基础项目环境搭建

创建以下目录
ffmpeg windows编译及调试完整版
bin/x86      所有可执行文件和dll文件  D:\msys64\home\admin\ffmpeg-4.3.6\install\bin中所有dll文件
include      所有头文件                        D:\msys64\home\admin\ffmpeg-4.3.6\install\include
lib              所有lib文件                       D:\msys64\home\admin\ffmpeg-4.3.6\install\bin中所有lib文件
src             项目文件
tools          源码
doc            文档
上一章编译windows ffmpeg文档中的 最终输出目录
D:\msys64\home\admin\ffmpeg-4.3.6\install
lib和dll详见博客
(22条消息) C/C++库文件全了解(包含静态库、动态库,包含windows、linux,包含dll、lib、so)_GT19930910的博客-CSDN博客

VS2019项目创建

vs2019创建新项目,空项目
位置指定上面的src,钩子勾上

VS2019项目代码

添加main.cpp
添加代码
#include <iostream>
using namespace std;
extern "C"//指定函数是c语言函数,函数名不包含重载标注
{
       //引用ffmpeg头文件
#include <libavcodec/avcodec.h>
}
//预处理指令导入库
#pragma comment(lib, "avcodec.lib")
int main(int argc, char* argv[])
{
       cout << "first ffmpeg" << endl;
       cout << avcodec_configuration() << endl;
       return 0;
}

vs2019配置

属性-》c/c++-》常规-》附加包含目录-》添加头文件目录  ..\..\include
属性-》链接器-》常规-》附加库目录-》添加编译lib文件目录  ..\..\lib
属性-》链接器-》输入-》附加依赖项-》添加编译需要的依赖lib    #此条与代码中的#include <libavcodec/avcodec.h>选一项配置即可
属性-》常规-》输出目录-》..\..\bin\x86 指定可执行文件目录,此目录之前已经放置好所有的dll运行依赖库

VS2019调试

调试avcodec_configuration()函数,f11能进入源码,因为有默认的编译环境
会进入D:\msys64\home\admin\ffmpeg-4.3.6\源码中
若是别的环境,没有此编译环境,需要把源码拷贝到tools中
解决方案-》属性-》调试源文件
添加D:\ffmpeg-lesson\tools\ffmpeg-4.3.6源码目录
D:\msys64\home\admin\ffmpeg-4.3.6\中搜索*.pdb全部拷贝到D:\ffmpeg-lesson\bin\x86中
全部重新构建再次调试即可进入D:\ffmpeg-lesson\tools\ffmpeg-4.3.6的源码中

到了这里,关于ffmpeg windows编译及调试完整版的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows下FFmpeg库编译安装指南

            之前在学习FFmpeg时,都是网上零零散散的知识点拼凑起来,没有经过系统地学习,最近时间比较多,于是决定开始深入学习FFmpeg,从自己动手编译源码开始。 本文记录了在自己编译过程中踩的坑,以及完整的编译安装流程, 建议先看踩过的坑里面最后一条 目录 环境

    2024年02月13日
    浏览(29)
  • Windows配置编译ffmpeg +音视频地址

    Windows配置MinGW及MinGW-make使用实例 https://blog.csdn.net/Henoiiy/article/details/122550618 ffmpeg安装遇错:nasm/yasm not found or too old. Use --disable-x86asm for a crippled build. https://blog.csdn.net/sayyy/article/details/124337834https://blog.csdn.net/sayyy/article/details/124337834 详细的FFmpeg编译流程与脚本分析https://zhuanla

    2024年02月12日
    浏览(37)
  • windows下msys2编译64位的ffmpeg源码

    目前遇到过两次需求,需要编译ffmpeg源码。网上下载的编译好的源码里面可能不全,很多时候需要自行编译源码。本文介绍自行编译ffmpeg64位源码(32位通过相似的方式为编译成功,不知道原因) 环境: 2023.5.4下载的最新版msys2 ffmpeg 4.3.2源码 windows操作系统 首先需要msys2软件和

    2024年02月03日
    浏览(30)
  • 音视频开发三:Windows环境下FFmpeg编译安装

    FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的 开源计算机程序 。采用LGPL或GPL许可证 。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec。 FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环

    2024年02月04日
    浏览(52)
  • 如何在Windows使用 ffmpeg 转换整个目录?以MP4转MP3为例

    对于 Windows上键入命令如下: 在这里,我将所有 (.mp4) 文件转换为 (.mp3) 文件。 只需打开 cmd,转到所需的文件夹并键入命令。 快捷方式:(可选) 转到 (.mp4) 文件所在的文件夹 按 Shift 并左键单击并选择“在此处打开 PowerShell 窗口” 或“在此处打开命令提示符窗口” 键入“

    2023年04月08日
    浏览(30)
  • Clion配置C++程序用Android NDK编译,并用真机远程调试(临时目录和termux)

    :ndk, clion, cmake, usb, tcp, ssh, remote debug, remote gdb debug, termux, tabby 假设已经有了一个在windows下能正常编译运行的C++控制台程序,本文仅说明如何在windows下交叉编译到android并调试。C++库类似。 要点提示: 对于unity用户,建议用unity 2022自带的 ndk r23 。理论上可以用新版,但

    2024年02月21日
    浏览(45)
  • ffmpeg windows环境MinGW+msys2编译so库

    一定要把windows路径的\\\"“换成”/\\\" –prefix 配置安装路径参数 配置交叉编译参数 配置不需要生成相关工具 使用\\\"\\\"+enter可以换行输入多行参数

    2024年02月11日
    浏览(31)
  • 2023最新Windows编译ffmpeg详细教程,附msys2详细安装配置教程

    msys2是一款跨平台编译套件,它模拟linux编译环境,支持整合mingw32和mingw64,能很方便的在windows上对一些开源的linux工程进行编译运行。 类似的跨平台编译套件有: msys , cygwin , mingw 优势: 相对于 cygwin 和 msys 等环境,它支持 pacman 包管理器,这意味着你可以很方便的安装所

    2024年02月13日
    浏览(31)
  • Windows NT 驱动程序的编译、安装、调试

    Windows 驱动分为两类,一类是从 Windows NT 遗留下来的驱动模型称为传统的 Windows NT 驱动程序模型,另一类是 Windows 添加了电源管理后的 KMDF (WDM)驱动程序。本文这里首先以最简单的 Windows NT 驱动模型为例介绍 Windows 驱动的简单编写、编译、安装及调试。 如果有学习过 Linux

    2024年02月16日
    浏览(43)
  • 【unity】基础入门 编译错误排查与调试方法

    1、Win11系统不兼容部分unity版本 考虑换系统吧! 2、可能是系统权限问题,访问不到部分路径 一般是系统盘的文件因为用户账户授权的问题,一些文件只有读取没有写入权限。 3、依赖配置问题 系统环境配置问题

    2024年02月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包