这里写自定义目录标题
ffmpeg(1)windows
(1)windows搭建ffmpeg
1.下载连接
1.1FFMPEG官⽹:http://ffmpeg.org/
1.2下载已经编译好的FFMPEG:https://ffmpeg.zeranoe.com/builds/
1.3 32位下载地址:
Shared:包含FFMPEG的dll库⽂件
https://ffmpeg.zeranoe.com/builds/win32/shared/ffmpeg-4.2.1-win32-shared.zip
Static:包含了FFMPEG的官⽅⽂档
https://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-4.2.1-win32-static.zip
Dev:包含FFMPEG的lib⽂件/头⽂件,以及example范例。
https://ffmpeg.zeranoe.com/builds/win32/dev/ffmpeg-4.2.1-win32-dev.zip
我们⽬前主要是使⽤32位的版本
2.解压ffmpeg-4.2.1-win32-shared.zip
2.1 将exe文件拷⻉可执⾏⽂件到C:\Window
2.2将 ffmpeg库拷⻉动态链接库到C:\Windows\SysWOW64
2.3. 打开cmd命令⾏窗⼝
输⼊ffmpeg -version测试,打印版本号4.2.1即可。
3.使用qt打印ffmpeg版本号
3.1将ffmpeg-4.2.1-win32-dev拷⻉到ffmpeg-version⽬录下

3.2在ffmpeg-version.pro⾥⾯添加ffmpeg头⽂件和库⽂件路径

win32 {
INCLUDEPATH += $PWD/ffmpeg-4.2.1-win32-dev/include
LIBS += $PWD/ffmpeg-4.2.1-win32-dev/lib/avformat.lib
$PWD/ffmpeg-4.2.1-win32-dev/lib/avcodec.lib
$PWD/ffmpeg-4.2.1-win32-dev/lib/avdevice.lib
$PWD/ffmpeg-4.2.1-win32-dev/lib/avfilter.lib
$PWD/ffmpeg-4.2.1-win32-dev/lib/avutil.lib
$PWD/ffmpeg-4.2.1-win32-dev/lib/postproc.lib
$PWD/ffmpeg-4.2.1-win32-dev/lib/swresample.lib
$PWD/ffmpeg-4.2.1-win32-dev/lib/swscale.lib
}
$自己加一个,打印不出来
3.3修改main.c⽂件
#include <stdio.h>
// 包含ffmpeg头⽂件
#include "libavutil/avutil.h"
//显示 Hello FFMPEG, version is 4.2.1
int main()
{
printf("Hello FFMPEG, version is %s\n", av_version_info());
return 0;
}
4Windows编译FFmpeg(MSYS2 (Minimal SYStem 2)是⼀个MSYS的独⽴改写版本,主要⽤于 shell 命令⾏开发环境。同时它也
是⼀个在Cygwin(POSIX 兼容性层) 和 MinGW-w64(从"MinGW-⽣成")基础上产⽣的,追求更好的互操
作性的 Windows 软件。)
4.1下载安装MSYS2:https://www.msys2.org/
4. 2. 安装完成之后,先把安装⽬录下的msys2_shell.cmd中注释掉的rem set MSYS2_PATH_TYPE=inherit 改成承给MSYS2。
set MSYS2_PATH_TYPE=inherit,这是为了将vs的环境继成
4.3 修改pacman的源
编辑 /etc/pacman.d/mirrorlist.mingw32 ,在⽂件开头添加:
1 Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686/
2 Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
编辑 /etc/pacman.d/mirrorlist.mingw64 ,在⽂件开头添加:
1 Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/
2 Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
编辑 /etc/pacman.d/mirrorlist.msys,在⽂件开头添加:
1 Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/arch/2Server=http://mirrors.ustc.edu.cn/msys2/msys/arch/
2 Server = http://mirrors.ustc.edu.cn/msys2/msys/arch/2Server=http://mirrors.ustc.edu.cn/msys2/msys/arch
4.4.启动命令⾏窗⼝,在窗⼝中输⼊
cd D:\msys64
如果要打开msys2的mingw64窗⼝输入:msys2_shell.cmd -mingw64
如果要打开msys2的输入:msys窗⼝msys2_shell.cmd
然后在msys2的shell中执⾏:
pacman -Sy
刷新软件包的数据
4.5 安装编译环境
在shell窗口输入(4.4所提及)
pacman -S mingw-w64-x86_64-toolchain
4.6 安装git
pacman -S git
4.7 安装make等⼯具
pacman -S make
pacman -S automake
pacman -S autoconf
pacman -S perl
pacman -S libtool
pacman -S mingw-w64-i686-cmake
pacman -S pkg-config
如果需要编译出ffplayer的话,还需要安装SDL
pacman -S mingw-w64-x86_64-SDL2
4.8 编译环境的其他准备⼯作
4.8.1.重命名link.exe重命名msys64/usr/bin/link.exe 为msys64/usr/bin/link.bak, 避免和MSVC 的link.exe抵触。
4.8.2.启动命令⾏窗⼝,在窗⼝中输⼊如下命令:
1.cd D:\msys64
2.msys2_shell.cmd -mingw64 (64位)
3. msys2_shell.cmd(32位)
2和3选一即可,本章节选2
4.8.3.下载和安装YASM
pacman -S yasm
4.8. 4.检查编译环境⼯具
which cl link yasm cpp
可能会遇到问题提示cl没有,将C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\目录有个c1.dll库,可以将C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\添加到windows的path环境变量即可(注意是用户变量)
最后输出如下就没问题
4.8. 5.修改⽀持中⽂显示
窗⼝右键->Options->Text,然后locale选择:zh_CN,Character set 选择 UTF-8。
4.8. 6.安装nasm(编译当前最新x264时需要⽤到nasm。)
pacman -S nasm
4.9编译第三⽅库
4.9.1 下载和编译x264
1.先创建一个本地目录ffmpeg目录build目录等(有些没说明本地目录自己创建),再cd到该目录
2.shell输入如下命令 git clone http://git.videolan.org/git/x264.git
会将文件都下载到/ffmpeg/x264目录下
3 cd进⼊x264⽬录下执行如下命令(32687指你自己的用户名):
3.1 ./configure --prefix=/home/32687/ffmpeg/build/libx264 --host=x86_64-w64-mingw32 –
enable-shared --enable-static --extra-ldflags=-Wl,–output-def= libx264.def
3.2 make
3.3 make install
4⽣成libx264.lib
1cp ./libx264.def /home/32687/ffmpeg/build/libx264/lib/
2 cd /home/32687/ffmpeg/build/libx264/lib
若要⽣成64位lib⽂件则输⼊如下命令: lib /machine:X64 /def:libx264.def
若要⽣成32位lib⽂件则输⼊如下命令:lib /machine:i386 /def:libx264.def
4.9.2 下载和编译fdk-aac
下载fdk-aac
git clone --depth 1 https://gitee.com/mirrors/fdk-aac.git
编译fdk-aac
cd fdk-aac
./autogen.sh
./configure --prefix=/home/32687/ffmpeg/build/libfdk-aac --enable
static --enable-shared
make -j4
make install
4.9.3 下载编译mp3
下载
git clone --depth 1 https://gitee.com/hqiu/lame.git
编译
./configure --prefix=/home/32687/ffmpeg//build/libmp3lame --disable-shared --disable
frontend --enable-static
make
make install
libmp3lame官⽹下载(选择版本>= 3.98.3)
https://sourceforge.net/projects/lame/files/lame/
4.9.4 下载编译libvpx
下载
git clone --depth 1 https://github.com/webmproject/libvpx.git
cd libvpx
./configure --prefix=/home/32687/ffmpeg/build/libvpx --disable-examples --disable-unit
tests --enable-vp9-highbitdepth --as=yasm
make -j4
make install
4.9.5 下载和编译ffmpeg
下载
git clone git://source.ffmpeg.org/ffmpeg.gi
2.编译ffmpeg
创建⼀个build.sh
将下载好的ffmpeg与x264放在⼀个⽬录下,本⼈是/home/32687/ffmpeg
build_ffmpeg.sh内容是:
./configure \
--pkg-config="pkg-config --static" \
--prefix=/home/32687/ffmpeg/build/ffmepg \
--arch=x86_64 \
--enable-shared \
--enable-gpl \
--enable-libfdk-aac \
--enable-nonfree \
--enable-libvpx \
--enable-libx264 \
--enable-libmp3lame \
--extra-cflags="-I/home/32687/ffmpeg/build/libfdk-aac/include" \
--extra-ldflags="-L/home/32687/ffmpeg/build/libfdk-aac/lib" \
--extra-cflags="-I/home/32687/ffmpeg/build/libvpx/include" \
--extra-ldflags="-L/home/32687/ffmpeg/build/libvpx/lib" \
--extra-cflags="-I/home/32687/ffmpeg/build/libx264/include" \
--extra-ldflags="-L/home/32687/ffmpeg/build/libx264/lib" \
--extra-cflags="-I/home/32687/ffmpeg/build/libmp3lame/include" \
--extra-ldflags="-L/home/32687/ffmpeg/build/libmp3lame/lib"
注意查看目录是否都存在
可能会遇到问题
ERROR: x264 not found using pkg-config
C:\msys64\home\32687\ffmpeg\x264\x264.pc复制到C:\msys64\usr\lib\pkgconfig目录下
如没解决可参考https://cloud.tencent.com/developer/article/2349060