En realidad es muy simple. La razón por la que gasté tanto es que traté de compilar en la máquina virtual WIN7, por lo que hay varios errores inexplicables.
Referencia: https://www.jianshu.com/p/5f175dec9109 .
- Preparación ambiental
WIN10, VS2015。
- Descargar FFmpegInterop
https://github.com/microsoft/FFmpegInterop
- Descargar ffmpeg
Descargue, descomprima, cambie el nombre de ffmpeg y colóquelo debajo de FFmpegInterop.
- Descargue e instale MSYS2
Descargar x86_64; instalar en c: \ msys64
- Configuracion
c:\msys64\usr\bin目录下,把link.exe改名为link.bak,这样可以调用VS的link。
Editar C: \ msys64 \ msys2_shell.cmd:
rem set MSYS2_PATH_TYPE=inherit
改成
set MSYS2_PATH_TYPE=inherit
Editar C: \ msys64 \ home \ XXXX \ .bashrc
export PATH=/C/'Program Files (x86)'/'Microsoft Visual Studio 14.0'/VC/bin/amd64:${PATH}
- Inicie MSYS2
set MSYS2_BIN="C:\msys64\usr\bin\bash.exe"
cd c:\msys64
msys2_shell.cmd -mingw64
Clic derecho, opciones, texto, juego de caracteres cambiado a UTF-8.
- Software de instalación MSYS2
Como referencia, se recomienda el método MinGW-w64.
pacman -S mingw-w64-x86_64-toolchain
pacman -S nasm
# pacman -S make gcc diffutils pkg-config
- Comprobar comandos de compilación
$ which cl
/C/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl
$ which link
/C/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/link
$ which yasm
/usr/bin/yasm
$ which cpp
/mingw64/bin/cpp
- Compilar x264
Descargar, descomprimir y compilar.
./configure \
--prefix=../lib-ffmpeg \
--host=x86_64-w64-mingw32 \
--enable-shared --extra-ldflags=-Wl,--output-def=libx264.def
make
make install
Convierte a dll
#若要生成64位lib文件则输入如下命令:
lib /machine:X64 /def:libx264.def
#若要生成32位lib文件则输入如下命令:
lib /machine:i386 /def:libx264.def
- configurar
Modificar FFmpegConfig.sh
--enable-gpl \
--enable-nonfree \
--enable-libx264 \
--extra-cflags="-I${BUILD_LIBS}/include" \
--extra-ldflags="-LIBPATH:${BUILD_LIBS}/lib"
Implementación
./FFmpegConfig.sh Win10 x64
Se dice que abre el archivo config.h recién generado y lo convierte al formato UTF-8. Esto evita muchas advertencias.
- hacer
./BuildFFmpeg.bat win10 x64
- Compruebe 32 bits o 64 bits:
查看32位还是64位:
dumpbin /headers libx264.dll
查看符号清单(导出函数)
dumpbin /exports libx264.dll > libx264-exports.txt