X264: в том, как компилировать с помощью x264 с поддержкой swscale?
Цель
Я пытаюсь построить:
-
Статическая библиотека x264 (.lib) с поддержкой swscale. Я хотел бы использовать эту библиотеку в проекте Visual Studio, где 24-битные растровые изображения RGB являются:
- преобразовано из RGB в YUV2
- преобразованное изображение передается кодеру x264
- и выходные данные кодера передаются на удаленную 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:
Когда я выполняю вышеупомянутую '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 ответа:
Несколько вещей, на которые я хотел бы указать:
- 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) или это какое-то усечение командной строки (слишком длинная командная строка).