FlasCC (Alchemy 2) отлично компилирует ffmpeg - для тех, кто пытается, в основном вам нужно скачать исходный код ffmpeg. Перейдите в каталог ffmpeg, выполните
PATH=/cygdrive/c/PATH_TO_FLASCC/sdk/usr/bin:$PATH ./configure --prefix=/cygdrive/c/PATH_TO_FLASCC/sdk/usr
Теперь хорошо, если вы запустите configure с некоторыми ограничениями, чтобы он не включал в себя все кодеки или фильтры, которые есть (требуется много времени). Дополнительные параметры конфигурации из моего варианта использования:
--disable-ffserver --disable-everything --enable-filter=scale --enable-demuxer=flv --enable-muxer=ogg --enable-protocol=file --disable-network --disable-debug --disable-yasm --disable-asm --disable-stripping --enable-memalign-hack --disable-shared --enable-decoder=flashsv --enable-encoder=mpeg1video --enable-encoder=libtheora --enable-encoder=libvorbis --enable-libtheora --enable-libvorbis
Важно, чтобы --disable-everything
, а затем включить только то, что вам нужно.
Затем запустите ./make
и ./make
install (с PATH перед этими командами), он должен произвести и установить библиотеки ffmpeg.
Когда я создавал тестовый SWF, все, казалось, работало. Я использовал их (модифицированный) образец, где они кодируют 25 фиктивных кадров MPEG. По крайней мере, я отслеживаю процесс кодирования и вижу, как кодируются кадры.
SWC - проблема, хотя, если вы хотите использовать это. Я получаю странные ошибки - сначала он не может найти кодек (получил NULL при использовании функции поиска кодека), когда я указал его по имени, он не может выделить контекст кодека (также получил NULL). Затем я скомпилировал его в чистом Flex, и он справился с этим, но не смог открыть кодек (в основном все это функции библиотеки av_ что-то). Я действительно не понимаю, почему SWC не работает с ними, так как с emit-swf все работает отлично.
Может быть, кто-то может осветить различия SWC / SWF.