Нужна помощь в компиляции FFmpeg с помощью инструментов MSVC
Мне нужно скомпилировать FFmpeg на Windows 10, используя компилятор MSVC 2017. Я следовал некоторым руководствам от:
- https://trac.ffmpeg.org/wiki/CompilationGuide/MSVC
- https://www.ffmpeg.org/platform.html#Microsoft-Visual-C_002b_002b-or-Intel-C_002b_002b-Compiler-for-Windows
- https://pracucci.com/compile-ffmpeg-on-windows-with-visual-studio-compiler.html
Я установил текущую стабильную версию MSYS, исправил link.exe и использовал среду PATH, установил make diffutils gcc pkg-config
и загрузил c99-to-c89, nasm и inttypes.h
Я думаю, что моя среда теперь правильно настроена, я запустил оболочку MSYS из командной строки MSVC и получил все доступное.
$ which cl
/c/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.12.25827/bin/HostX64/x64/cl
$ which link
/c/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.12.25827/bin/HostX64/x64/link
$ which yasm
/home/Antoine/bin/yasm
$ which c99conv
/home/Antoine/bin/c99conv
$ which c99wrap
/home/Antoine/bin/c99wrap
Сейчас я настраиваю сборку
$ ./configure --toolchain=msvc
install prefix /usr/local
source path .
C compiler cl
C library msvcrt
ARCH x86 (generic)
big-endian no
runtime cpu detection yes
standalone assembly yes
x86 assembler nasm
MMX enabled yes
MMXEXT enabled yes
3DNow! enabled yes
3DNow! extended enabled yes
SSE enabled yes
SSSE3 enabled yes
AESNI enabled yes
AVX enabled yes
AVX2 enabled yes
XOP enabled yes
FMA3 enabled yes
FMA4 enabled yes
i686 features enabled yes
CMOV is fast yes
EBX available no
EBP available no
debug symbols yes
strip symbols no
optimize for size no
optimizations yes
static yes
shared no
postprocessing support no
network support yes
threading support w32threads
safe bitstream reader yes
texi2html enabled no
perl enabled no
pod2man enabled no
makeinfo enabled no
makeinfo supports HTML no
External libraries:
schannel xlib
External libraries providing hardware acceleration:
cuda cuvid d3d11va dxva2 nvenc
Libraries:
avcodec avdevice avfilter avformat avutil swresample swscale
Programs:
ffmpeg ffprobe
[...]
Hundreds of modules, library, etc.
[...]
License: LGPL version 2.1 or later
Creating configuration files ...
config.h is unchanged
config.asm is unchanged
libavutil/avconfig.h is unchanged
libavcodec/bsf_list.c is unchanged
libavformat/protocol_list.c is unchanged
Но когда я бегу make
это останавливается очень быстро
$ make
Makefile:47: la cible « qt-faststart » ne correspond pas au motif de cible
Makefile:47: la cible « trasher » ne correspond pas au motif de cible
Makefile:47: la cible « uncoded_frame » ne correspond pas au motif de cible
Makefile:91: ffbuild/library.mak: No such file or directory
make: *** Aucune règle pour fabriquer la cible « ffbuild/library.mak ». Arrêt.
Извините за французскую формулировку, я не знаю, как сказать MSVC напечатать ее вывод на английском языке. По сути, ошибка означает:
Makefile:47: target « qt-faststart » doesn't match the target pattern
make: *** No rule to make target « ffbuild/library.mak ». Stopped.
Примечания стороны:
$ tree ffbuild
ffbuild
├── config.fate
├── config.log
├── config.mak
└── config.sh
Правильно, library.mak не был сгенерирован в ffbuild, но я не знаю почему, и скрипт configure не выводил никаких сообщений об ошибках...
Кто-нибудь может помочь мне узнать, что я делаю не так?
Редактировать:
make distclean
не помогает
$ make distclean
Makefile:47: la cible « qt-faststart » ne correspond pas au motif de cible
Makefile:47: la cible « trasher » ne correspond pas au motif de cible
Makefile:47: la cible « uncoded_frame » ne correspond pas au motif de cible
Makefile:91: ffbuild/library.mak: No such file or directory
make: *** Aucune règle pour fabriquer la cible « ffbuild/library.mak ». Arrêt.
1 ответ
Мне наконец удалось скомпилировать FFmpeg в Windows после повторной загрузки исходных файлов в виде zip-пакетов с github. Ранее я загружал исходники с ffmpeg.org, но архив (.tar.bz2), вероятно, был поврежден и / или извлечение не удалось в какой-то момент.