FFMpeg sws_scale Статическая и общая разница в производительности - PullRequest
0 голосов
/ 06 ноября 2018

Я использовал swscale в своем коде как общую библиотеку, затем сумел скомпилировать FFMpeg (4.1) в статические библиотеки с помощью Visual Studio с помощью этой команды, чтобы получить swscale:

./configure --toolchain=msvc --arch=x86_32 --disable-everything --disable-programs 

У меня установлен нос и ясм. это мой конфиг вывод:

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
AVX-512 enabled           yes
XOP enabled               yes
FMA3 enabled              yes
FMA4 enabled              yes
i686 features enabled     yes
CMOV is fast              no
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

External libraries providing hardware acceleration:
d3d11va                    dxva2

Libraries:
avcodec                    avdevice                   avfilter                   avformat                   avutil                     swresample                 swscale

Programs:
Enabled decoders:
Enabled encoders:
Enabled hwaccels:
Enabled parsers:
Enabled demuxers:
Enabled muxers:
Enabled protocols:
Enabled filters:
Enabled bsfs:
null
Enabled indevs:
Enabled outdevs:

Это успешно скомпилировано, и я заменил файлы lib на файл .a в QT:

INCLUDEPATH += $$PWD/ffmpeg/inc/
LIBS += $$files($$PWD/ffmpeg/lib/*.a, true)

Я больше ничего не менял. EXE работает правильно без зависимости, но проблема в том, что статическая swscale намного медленнее, чем общая. Для 1080p доля .DLL занимает 2ms , чтобы сжать и преобразовать yuv в rgb, а static .A занимает 6ms в

Я также пытался удалить --disable-everything --disable-programs, но все так же. Я хочу знать, это из-за компилятора cl или я пропустил библиотеку или настройку?

Кстати, это моя система: Win10 / i7 4820K / 16GB / GTX970

EDIT:

Я получил это в выводе приложения: Не найдено ускоренного преобразования цветового пространства из yuv420p в bgra. Хотя папка x86 в swscale компилируется, похоже, она не связана в выводе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...