Запомняне

» Здравейте
[ Вход :: Регистриране ]
 » Начало » Li Форуми » Li Статии » Предложения » компилиране на mplayer и ffmpeg с поддръжка ма amr
  • Страница 1 от 1 Skip to Page:
  • 1
Тема: компилиране на mplayer и ffmpeg с поддръжка ма amr, за debian базирани дистрибуции - това е
Мнение #1
Написано на: Октомври 04 2006, 11:30
mcwolf
 

No avatar chosen




Група: Li gurus
Мнения: 1489
Регистриран: Април 2005

Оценка: 5

Offline
Преди няколко дена се сблъсках с един много глупав проблем – с как да се гледат 3gp клипчета под linux (въсщност имам и едни записи на телефонни разговори които са мнооооого “ценни” – ма те па се извъдиха в amr формат и се бях примирил че ще ги слушам само на телефон) – с две думи – нямам думи

Тъй като любимият ми плеър е mplayer реших да си играя с него. Пъевото нещо което забелязах при пускане на 3gp клип беше едно дразнещо съобщение за липсата на някакъв аудио кодек.
Код: 

==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
Cannot find codec 'amr_nb' in libavcodec...
ADecoder init failed :(
ADecoder init failed :(
Cannot find codec for audio format 0x726D6173.
Read DOCS/HTML/en/codecs.html!
==========================================================================

Както се вижда липсва amr_nb в пакетът ffmpeg. Първата ми работа беше да прекомпилирам него със съответната поддръжка (макар че за mplayer това се указа излишно).
Сега по същество – първо създаваме някаква работна директория и влизаме в нея.
Код: 

mkdir work
cd work/

след това трябва да се докопаме до кодовете на пакетът които ползваме в моментът (за да не загубиме поддръжката на нещо – нали целта е просто да добавиме amr_nb) – за целта ще ползваме apt (имайте предвид че това го пиша за ubuntu не би трябвало да има съществени разлики при нито една debian базирана дистринуция но имената на пакетите ще са различни) – също така трябва да свалими и dev пакетите от които се нуждае ffmpeg за да бъде компилиран безпроблемно
Код: 

apt-get source ffmpeg
sudo apt-get build-dep ffmpeg

влизаме в директорията в която се намират изходните кодове на пакетът (при мен е ffmpeg-0.cvs20050918) и проверяваме какви опций може да ползваме при компилирането на пакетът с amr_nb
Код: 

cd ffmpeg-0.cvs20050918/
./configure --help | grep amr
 --enable-amr_nb          enable amr_nb float audio codec
 --enable-amr_nb-fixed    use fixed point for amr-nb codec
 --enable-amr_wb          enable amr_wb float audio codec

Опцийте които ни трябват са очевидни само дето тука се получава големият проблем – изходният код за компилирането с тези опций липсва в пакетът и трябва да се свали отделно и да се добави към изходният код на ffmpeg за да може да компилираме с необходимата поддръжка

Връщаме се в работната директория и се захващаме да сваляме необходимите пакети
Код: 
cd ..

ще ги сваля в отделни директорий защото те ще са ни необходими и при компилирането на mplayer.

Първо създаваме директория amr влизаме в нея, сваляме архивът с изходните кодове и го разархивираме.
Код: 

mkdir amr
cd amr
wget http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26073-530.zip
unzip 26073-530.zip
unzip 26073-530_ANSI_C_source_code.zip

след това влизаме в директорията в която се намират самите изходни кодове
Код: 
cd c-code/

и редактираме файлът makefile (дефакто той  оправлява самият процес на компилиране) като коментираме редът (поставя се диес в началото му)
Код: 
CFLAGS = -Wall -pedantic-errors -I. $(CFLAGS_$(MODE)) -D$(VAD)

и след него добавяме
Код: 
CFLAGS = -Wall -I. $(CFLAGS_$(MODE)) -D$(VAD) -DMMS_IO

записваме промените и пробваме дали ще се компилира без проблеми – ако всичко мине както трябва се връщаме в работната директория
Код: 

make
cd ../../

след това повтаряме почти същата операция за другите два модула които са ни необходими (без да редактираме нищо тоя път)
Код: 

mkdir amr_float
cd amr_float/
wget http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26104-540.zip
unzip 26104-540.zip
unzip 26104-540_ANSI_C_source_code.zip
cd c-code/
make -f makefile.gcc
cd ../../

mkdir amrwb_float
cd amrwb_float/
wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip
unzip 26204-510.zip
unzip 26204-510_ANSI-C_source_code.zip
make -f makefile.gcc
cd ../


ако всичко е минало както трябва остава да добавиме трите модула към изходният код на ffmpeg и да го компилираме със желаната поддръжка. Добавянето на модулиите ще го направиме с обикновенни линкове (те трябва да се добавят в директория libavcodec)
Код: 

cd ffmpeg-0.cvs20050918/
cd libavcodec/
ln -s ../../amr/c-code/ amr
ln -s ../../amr_float/c-code/ amr_float
ln -s ../../amrwb_float/ amrwb_float
cd ..

остава само да редактираме файлът debian/rules за да добавиме новите опций – трябва да добавиме редът
Код: 
confflags += --enable-amr_nb --enable-amr_nb-fixed --enable-amr_wb

точно преди
Код: 
confflags += --enable-gpl --enable-pp


остава само да компилираме пакетът – ще се ползва fakeroot така че ако не сте си го инсталирали още сега е моментът 
Код: 

fakeroot debian/rules clean
fakeroot debian/rules binary
cd ../

това е – тук се намира готовият deb пакет които чака само да бъде инсталиран. Сега пиеме по една бира и се захващаме с mplayer. Процедурата е същата. Сваляме кодовете, добавяме трите модула в директория libavcodec, редактираме rules файлът и компилираме
Код: 

sudo apt-get build-dep mplayer
apt-get source mplayer
cd mplayer-0.99+1.0pre7try2+cvs20060117/
cd libavcodec/
ln -s ../../amr_float/c-code/ amr_float
ln -s ../../amr/c-code/ amr
ln -s ../../amrwb_float/ amrwb_float
cd ../


редактираме файлът debian/rules като добавяме новите опций в краят на редът
Код: 

CONFIGURE_AUDIO_CODECS := --disable-external-faad --enable-vorbis --disable-internal-tremor --enable-mad --enable-liba52 --enable-libdts --enable-musepack --enable-faac --enable-speex


демек трябва да изглежда така
Код: 

CONFIGURE_AUDIO_CODECS := --disable-external-faad --enable-vorbis --disable-internal-tremor --enable-mad --enable-liba52 --enable-libdts --enable-musepack --enable-faac --enable-speex --enable-amr_nb --enable-amr_nb-fixed --enable-amr_wb


след това компилираме
Код: 

fakeroot debian/rules clean
fakeroot debian/rules binary
cd ../


отново се намираме в работната директория – тук се намират готовите deb пакети и на mplayer (достатъно е да бъде инсталиран само пакетът с плеърът за да имате всичко – но ако прецените си инатлирайте всичко ;)

за тея дето ги помръзва да се занимават съм качил готовите файлове http://galiry.linux-index.org/mplayer/

айде успех на мераклиите


Редактирано от mcwolf на Октомври 04 2006, 11:32
Контакти:  mcwolf

  • AOL  AOL:
  • ICQ  ICQ:
  • MSN  MSN:
  • YIM  Yahoo IM:
WEB  
Общо 0 отговор(а) от Октомври 04 2006, 11:30 до сега
  • Страница 1 от 1 Skip to Page:
  • 1
 » Начало » Li Форуми » Li Статии » Предложения » компилиране на mplayer и ffmpeg с поддръжка ма amr

© 2014 Linux Index Project
Powered by iF 1.0.0 © 2006 ikonForums