@nicktrandafil

Как скомпилировать ffmpeg с поддержкой dxva2?

Доброе утро! Я пытаюсь скомпилировать ffmpeg с поддержкой DXVA2, чтобы я мог его использовать в Visual Studio. Все делал по этой статье.

Система: Windows 7 ultimate 64bit.
Visual Studio 2010

Пытался сконфигурировать следующим образом:
./configure --toolchain=msvc --arch=x86 --enable-hwaccels --enable-dxva2 --enable-runtime-cpudetect --enable-w32threads --enable-shared --disable-static --disable-filters --disable-encoders --disable-muxers --disable-bsfs --disable-debug --prefix=/c/ffmpeg_build

Окно консоли не выводит никаких ошибок, кроме предупреждения, что не найден pkg-config, но в config.log в конце обнаружил следующую ошибку:
BEGIN ./ffconf.WCCcDkjJ.c
    1   #include <crtversion.h>
    2   #if !(_VC_CRT_MAJOR_VERSION >= 12)
    3   #error "unsatisfied condition: _VC_CRT_MAJOR_VERSION >= 12"
    4   #endif
END ./ffconf.WCCcDkjJ.c
c99wrap cl -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_WIN32_WINNT=0x0502 -Dstrtod=avpriv_strtod -Dsnprintf=avpriv_snprintf -D_snprintf=avpriv_snprintf -Dvsnprintf=avpriv_vsnprintf -nologo -D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -Dinline=__inline -FIstdlib.h -Dstrtoll=_strtoi64 -W4 -wd4244 -wd4127 -wd4018 -wd4389 -wd4146 -wd4057 -wd4204 -wd4706 -wd4305 -wd4152 -wd4324 -we4013 -wd4100 -wd4214 -wd4554 -wd4273 -O2 -P -Fi./ffconf.wrodZiQL.o ./ffconf.WCCcDkjJ.c
ffconf.WCCcDkjJ.c
./ffconf.WCCcDkjJ.c(3) : fatal error C1189: #error :  "unsatisfied condition: _VC_CRT_MAJOR_VERSION >= 12"

Исходя из ошибки можно сделать вывод, что мне следовало бы использовать Visual Studio 2013, но исходя из статьи, что я использую для компиляции, можно пользоваться любой версией Visual Studio.
FFmpeg can be built with MSVC 2012 or earlier using a C99-to-C89 conversion utility and wrapper, or with MSVC 2013 natively.

Я все равно попытался сделать make, но ничего не получилось. make никакой информации про процесс компиляции не выводил, процессор грузил всего на 25%, хотя я сделал make -j9, да и конца компиляции я так и не дождался.
Что я делаю не так?
  • Вопрос задан
  • 2480 просмотров
Решения вопроса 1
@nicktrandafil Автор вопроса
Все заработало, когда я выполнил просто make, а не make -j9. Для компиляции используется компилятор cl.exe, видимо из-за этого и не получалось, хотя очень странно, что никаких ошибок не выводилось. Компиляция завершилась успешно, несмотря на то, что в config.log та ошибка не исчезла.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы