FFmpeg ir libfdk_aac

L
  • 5 Sau '15

Sveiki, tiesiai sviesiai iskar sakau kad esu noobas and linux ir labai vargstu su siuo konverteriu. vnz jis pas mane instaliuotas, kaip ir veikia bet kai noriu konvertuoti video ne su mp3 o su acc kodeku man raso kad nera tokios funkcijs.

bandau daryti pagal sita gida:
http://wiki.vpsget.com/index.php/Ffmpeg_Centos_6
vnz kaip reikia enable sita libfdk_aac? ten kur Configuring ffmpeg pirma eilute viskas ok, siuncia ten ar daro kazka o ten kur antra eilu yra cd ffmpeg raso kad nera tokios direktorijos. ble aisku nera is kur ji bus...
pvz as noriu trecioj eilute prideti ta libfdk su tuoj ./configure bet man tiesiog ismeta ./configure: No such file or directory

googlinu jau 3 para bet kaip suprantu cia per daug noobiska klaida ir info apie ja konkreciai nera.

T
Techtronic
Mindaugas N.
  • 5 Sau '15

Kad pakeisti i tavo norima fdk-aac (The Fraunhofer FDK AAC codec library) turi pirma tureti tokia biblioteka. Kad ja gauti reikia ziureti ka siulo tavo naudojama distra. Mano naudojama distra Gentoo Linux, tokia biblioteka radau po media-libs/fdk-aac. Su rpm ar deb gali buti problema, tokios bibliotekos as bent neradau, todel greiciausiai teks ja kompiliuotis paciam.

Perspeju, tokiu biblioteku kompiliavimas nera paprastas, reikia begales source kodo, laiko ir nervu. Turi tureti pilna instala gnu-autotools, GCC/Clang kompiliatoriu ir media biblioteku headerius. Jeigu gauni klaida, ziurek ka tau ta klaida raso, jeigu nesupranti - klausk. Siame forume yra begales naujoku, bet ir jie tau gali padeti jeigu protingai paklausi.

Kompiliavimas ffmpeg + fdk-aac:

mkdir -p /opt/ffmpeg/src && cd /opt/ffmpeg/src
git clone https://github.com/mstorsjo/fdk-aac.git
git clone git://source.ffmpeg.org/ffmpeg.git
cd fdk-aac/
autoreconf -i
./configure --prefix=/opt/ffmpeg
make && make install
cd ../ffmpeg
./configure \
    --prefix=/opt/ffmpeg \
    --enable-rpath \
    --enable-gpl \
    --enable-version3 \
    --enable-nonfree \
    --enable-ffmpeg \
    --enable-ffplay \
    --enable-ffprobe \
    --enable-ffserver \
    --disable-doc \
    --disable-htmlpages \
    --disable-manpages \
    --disable-podpages \
    --disable-txtpages \
    --enable-avresample \
    --disable-vdpau \
    --enable-avisynth \
    --enable-fontconfig \
    --enable-ladspa \
    --enable-libaacplus \
    --enable-libass \
    --enable-libbluray \
    --enable-libfaac \
    --enable-libaacplus \
    --enable-libfaac \
    --enable-libfdk-aac \
    --enable-libfreetype \
    --enable-libfribidi \
    --enable-libmodplug \
    --enable-libmp3lame \
    --enable-librtmp \
    --enable-libssh \
    --enable-libvorbis \
    --enable-libx264 \
    --enable-x11grab \
    --enable-openssl \
    --enable-opengl \
    --disable-static \
    --enable-sdl \
    --enable-shared
make && make install

Kaip matai nurodau daug parametru, gali juos paziureti visus su komanda:

./configure --help

Arba tik tai ko tau reikia surasti gali naudodamas sia komanda:

./configure --help | grep -i aac

Atkreipk demesi i --extra-ldflags parametra, jame nurodysi linker parametrus.

--extra-ldflags="-L/opt/ffmpeg/lib"

Taip pat i CXXFLAGS parametrus, galesi nurodyti kompiliatoriaus parametrus (c++).

--extra-cxxflags="-I/opt/ffmpeg/include"

CFLAGS, CXXFLAGS ar LDFLAGS reikes nurodyti tam, kad surastu tavo sukompiliuota libfdk-aac biblioteka

Kad nekiltu problemu, ffmpeg kartu su fdk-aac rekomenduoju rasyti i /opt/ffmpeg nes greiciausiai turi ffmpeg ir po /usr kuri tau surase tavo naudojama distra. Tokiu budu galesi pasalinti ffmpeg kai tau jo nebereiks, paprasciausiai parases:

rm -R /opt/ffmpeg

Paleisti sukompiliuota ffmpeg gali su sia komanda:

/opt/ffmpeg/bin/ffmpeg

Paziureti visus palaikomus encoders ffmpeg gali su komanda:

ffmpeg -encoders

Patikrinti kas per media failas gali su puikia programele kuria gauni kartu su ffmpeg pavadinimu ffprobe. Ja naudoti gali tokiu budu:

ffprobe -i test.mp4

Kaip matom Input #0:
Stream #0:0 - Video: h264
Stream #0:1 - Audio: vorbis

Kad pakeisti tik #0:1 (audio) i FDK AAC naudokim sia komanda:

ffmpeg -i in.mp4 -c:v copy -c:a libfdk_aac out.mp4


Tokiu budu video (#0:0) bus nukopijuojamas, o audio #0:1 pakeistas i FDK AAC.

  • Perspeju, sitas "gidas" nera naujokams, bet koks sistemos keitimas gali privesti iki OS reinstall'o, pagalvok pries rasant komandas.

EDIT:

  • Fraunhofer FDK AAC Codec Library naudoja savo "FraunhoferFDK" license, tai yra viena is priezasciu kodel nerasi sios bibliotekos pas save, o ir mano supportas ties cia baigiasi.
L
  • 5 Sau '15

didelis dekui uz atsakyma, labai naudinga info
tik ant galo gavau erroru:

[root@423242 ffmpeg]# make && make install
Makefile:2: config.mak: No such file or directory
Makefile:59: /common.mak: No such file or directory
Makefile:100: /libavutil/Makefile: No such file or directory
Makefile:100: /library.mak: No such file or directory
Makefile:102: /doc/Makefile: No such file or directory
Makefile:185: /tests/Makefile: No such file or directory
make: *** No rule to make target `/tests/Makefile'.  Stop.

bet to kodeko vistiek nei kvapo..............

[root@423242 ffmpeg]# ./configure --help | grep -i aac
  --enable-libaacplus      enable AAC+ encoding via libaacplus [no]
  --enable-libfaac         enable AAC encoding via libfaac [no]
  --enable-libfdk-aac      enable AAC de/encoding via libfdk-aac [no]
  --enable-libvo-aacenc    enable AAC encoding via libvo-aacenc [no]

ir /opt/ffmpeg/bin/ffmpeg bin katalogas tuscias, nera ten jokio ffmpeg

G
  • 6 Sau '15

Siūlau pakeisti į --enable-libvo-aacenc. Jei tai Debian (turbūt ir Ubuntu tiktų) - reikiamas bibliotekas gali įsidiegti:

sudo apt-get install libvo-aacenc-dev

Visa kita - kaip rašė kolega.

Dėl tavo klaidos - tai nėra aišku, po kurio make && make install gauni klaidos pranešimą, diegdamas biblioteką ar patį ffmpeg?