Нужна помощь в компиляции FFmpeg с помощью инструментов MSVC

Мне нужно скомпилировать FFmpeg на Windows 10, используя компилятор MSVC 2017. Я следовал некоторым руководствам от:

Я установил текущую стабильную версию 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), вероятно, был поврежден и / или извлечение не удалось в какой-то момент.

Другие вопросы по тегам