X264: в том, как компилировать с помощью x264 с поддержкой swscale?


Цель

Я пытаюсь построить:

  • Статическая библиотека x264 (.lib) с поддержкой swscale. Я хотел бы использовать эту библиотеку в проекте Visual Studio, где 24-битные растровые изображения RGB являются:

    1. преобразовано из RGB в YUV2
    2. преобразованное изображение передается кодеру x264
    3. и выходные данные кодера передаются на удаленную IP-конечную точку через UDP.
  • Исполняемый файл x264 (.exe) с swscale поддержка. Я хотел бы использовать исполняемый файл для той же цели, как описано выше. В другом проекте Visual Studio я начну x264.exe как отдельный процесс и передают растровые данные в процесс x264 через его stdin и считывают закодированные данные из stdout процесса.

Задача

У меня возникли некоторые проблемы с компиляцией с поддержкой swscale. Мне нужна поддержка swscale как для исполняемого файла, так и для библиотека.

Статус

На данный момент я загрузил последний источник x264 с веб-сайта x264.

Я установил MINGW на своей машине, и когда я запускаю "configure" и "make", я получаю статическую библиотеку x264 - но без поддержки swscale.

Я не смог найти подробное пошаговое руководство по включению swscale в библиотеку x264. Ближе всего я подошел к описанию этого Обсуждение:

Http://forum.doom9.org/showthread.php?t=165350

Итак, я скачал libpack из:

Http://komisar.gin.by/mingw/index.html

И извлек его на мой жесткий диск:

Затем я выполнил "make" и "configure" (снова) в моем каталоге x264:

./configure --extra-cflags="-I/m/somePath/libpack/libpack/libpack/include" --extra-ldflags="-L/m/somePath/libpack/libpack/libpack/lib"

У меня есть следующее в каталоге lib и include:

каталог lib

ВКЛ каталог

Когда я выполняю вышеупомянутую 'configure', я получаю:

platform:      X86
system:        WINDOWS
cli:           yes
libx264:       internal
shared:        no
static:        no
asm:           yes
interlaced:    yes
avs:           avisynth
lavf:          no
ffms:          no
mp4:           lsmash
gpl:           yes
thread:        win32
opencl:        yes
filters:       crop select_every
debug:         no
gprof:         no
strip:         no
PIC:           no
bit depth:     8
chroma format: all

You can run 'make' or 'make fprofiled' now.
bash.exe"-3.1$

Когда Я execute 'make' я заканчиваю с этой ошибкой:

gcc.exe: error: unrecognized command line option '-fomit-frame-poin'
gcc.exe: fatal error: no input files
compilation terminated.
make: *** [.depend] Error 1
bash.exe"-3.1$

Вопрос Что я делаю не так??

2 2

2 ответа:

Несколько вещей, на которые я хотел бы указать:

  • MinGW иногда может вызывать проблемы с компиляцией (из-за требований совместимости на основе Windows - я не говорю, что MinGW не хорош). Я стараюсь компилировать на родной системе UNIX, когда это возможно.
  • ffmpeg имеет встроенную поддержку swscale. Если вы не можете найти способ решить вашу проблему, вы можете рассмотреть возможность использования ffmpeg с поддержкой x264. как скомпилировать здесь или использовать статическую сборку.
  • ffmpeg источник libswscale можно получить Здесь . Вы можете скачать его и скомпилировать x264 с конфигурацией, указывающей на него.
  • вы всегда можете проверить ./configure --справка для получения дополнительной информации

1) Вы не можете построить "статическую библиотеку x264 (.lib) с поддержкой swscale", потому что они являются отдельными библиотеками и должны использоваться вместе в проекте, а не путем построения одной в другой. Кроме того, вы не можете построить статическую библиотеку libx264, используемую MSVS, если вы не строите с ICL, потому что у вас будет много проблем при попытке смешать библиотеки сборки MinGW (.а) в проекты MSVS. Я буду рекомендовать использовать общую библиотеку (.dll) в случае, если вы хотите использовать libx264 в проекте MSVS. Вы можете найти, как строить .либ для libx264.dll с помощью Google.

2) чтобы построить исполняемый файл x264 с поддержкой swscale, вам нужно предоставить x264 configure с путем к библиотеке swscale и заголовками, которые являются частью проекта ffmpeg / libav, и построить с ними.

В качестве проблемы при строительстве с корневой системы после установки Комисар по. Ваша командная строка configure выглядит правильно, но она все еще не настроила ее с помощью swscale (resize filter отсутствует в выводе configure). Чтобы узнать причину, вам нужно заглянуть в config.файл журнала, который является созданные настроить, но скорее всего swscale устарела (и не имеют некоторых значений API, используемый для x264) в корневой системы после установки вы использовали.

Что касается gcc.exe: error: unrecognized command line option '-fomit-frame-poin', я не знаю, откуда вы получаете этот неправильный вариант, потому что он должен быть -fomit-frame-pointer, но вы не опубликовали полную командную строку gcc, что привело к ошибке. Может быть, вы указали это как-то сами (окружение CFLAGS) или это какое-то усечение командной строки (слишком длинная командная строка).