Všeobecně Kontext

Tyto stránky jsou zaměřeny především na freeware případně velice levné programy pro mobilní zařízení. Ve většině případů se jedná o programy pro zařízení podporující J2ME, ale posléze se mohou objevit i programy pro jiné platformy. Také zde můžete najít další užitečné věci, týkající se mobilních telefonů.

Oddíl _novinky obsahuje přehled posledních událostí, které mají něco společného s tímto webem. V části _programy najdete programy, které jsem vytvořil včetně jejich popisu případně návodu a další věci, jež se jich týkají. Dále je zde sekce _články, kde najdete různé články, týkající se mobilní problematiky, příp. dalších zajímavých témat. No a nakonec _odkazy, kde jsou stránky, které z nějakého důvodu považuji za zajímavé.

Můžete mne kontaktovat těmito způsoby:

Mail:
nigol(at)seznam(dot)cz
Jabber: nigol@njs.netlab.cz
ICQ: 73435278
Preferuji kontakt přes Jabber nebo mail.



_novinky     _programy     _články     _odkazy

Převod videa do 3GP v Linuxu

Máte telefon, který podporuje přehráváni videa ve formátu 3GP? Máte na počítači Linux a nevíte, jak si můžete takové video připravit? Dozvíte se v tomto článku.

   Většina dnes vyráběných telefonů podporuje i přehrávání videa. V této oblasti je téměř standardem (a téměř všechny nové telefony jej podporují) formát videa 3GP. Formát 3GP je kontejnerový formát, přijatý iniciativou 3rd Generation Partnership Project (3GPP), který může obsahovat video stream MPEG-4 nebo H.263 a audio stream AMR-NB nebo AAC-LC. My si ukážeme konverzi do 3GP, které bude obsahovat video kódované kodekem H.263 a audio ve formátu AMR-NB.

Připravujeme potřebné nástroje

   Pro převod budeme potřebovat funkční MPlayer a jeho součást Mencoder. Instalaci zde popisovat nebudu, můžete využít standardních prostředků dostupných ve vaší distribuci. Jen připomenu, že potřebujete mít k dispozici taktéž kodeky videa pro formáty, které chcete do 3GP převádět.    Předpokládám, že Mplayer máme funkční a věnujme se tedy instalaci balíku ffmpeg, který zajistí právě finální převod do 3GP. Bohužel kvůli licenčním nejasnostem nemůžeme použít binární verze dostupné v distribucích, ale musíme si zkompilovat vlastní. Naštěstí to není velký problém. Nejdříve si vytvoříme v domovském adresáři dočasný adresář, který nazveme např. tmp. Poté přejdeme do tmp/ a stáhneme zdrojové kódy pomocí SVN příkazem:    
cd tmp/
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
Pokud vše proběhlo v pořádku, měli bychom teď mít podadresář ffmpeg, kde jsou uložny zdrojové kódy. Nyní musíme stáhnout AMR_NB kodek z adresy http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip a z něj soubor 26104-510_ANSI_C_source_code.zip rozbalit do adresáře ffmpeg/libavcodec/amr_float. Zkopírujeme soubor tmp/ffmpeg/libavcodec/amr_float/makefile.gcc na tmp/ffmpeg/libavcodec/amr_float/makefile a můžeme začít s kompilací. Přejdeme do adresáře tmp/ffmpeg a zadáme příkazy:
./configure --enable-amr_nb --prefix=$HOME/ffmpeg
make
make install
Jestliže nenastala chyba, máme ve svém domovském adresáři podadresář ffmpeg, kde je uložena zkompilovaná verze. Samozřejmě, pokud budete chtít program umístit jinam, změňte cestu u volby --prefix. Taktéž už můžeme smazat adresář tmp/ffmpeg, kde jsou zdrojové kódy.

Převádíme video

   Máme vše připraveno, takže se můžeme pustit do vlastního převodu. Kodek H.263 umožňuje pouze určitá rozlišení - pro nás budou asi nejzajímavější 128x96 a 176x144. Samozřejmě jsou možné i vyšší násobky, ovšem to na současných mobilních telefonech moc nevyužijeme. Nejprve si pomocí Mencoderu připravíme samotné video do požadovaného formátu
mencoder video.avi -nosound -ovc lavc -lavcopts vcodec=mpeg4 -vop scale=128:96 -o movie.avi -ofps 12
Pomocí volby scale určujeme výstupní rozlišení - v našem případě 128x96 a volba -ofps 12 nám říká, že se má použít 12 snímků za sekundu. Pro mobilní telefon dostatečná hodnota.    Dalším příkazem
mplayer -vo null -ao pcm -af resample=8000,volume=+4db:sc video.avi
si vyexportujeme zvukovou stopu, převedeme ji na frekvenci 8000Hz volbou resample=8000a trošku zesílíme pomocí volby volume=+4db.    A nakonec převedeme do formátu 3GP
~/ffmpeg/bin/ffmpeg -i movie.avi -i audiodump.wav -b 16 -ac 1 -ab 4 -map 0.0 -map 1.0 video.3gp
Tady jsou důležité volby -b 16, která určuje bitový tok pro video stream a -ab 4, která určuje bitový tok pro audio stream. Uvedené hodnoty jsou zřejmě nejnižší použitelné. Pokud chcete kvalitnější výstup, doporučuji hodnoty pro video okolo 30 a pro audio kolem 12.

Závěr

   Takže nyní bychom měli být schopni převádět videa, jež máme uložena v počítači, do formátu 3GP, který zvládne náš mobilní telefon. Můžeme si taktéž bez problémů napsat skript, který nám automaticky převede všechna videa apod. Pokud by máte nějaké dotazy nebo připomínky, klidně se ozvěte. Taktéž pokud by měl někdo problém s kompilací ffmpeg, jsem ochoten poskytnout funkční, zkompilovanou verzi, kterou stačí pouze rozbalit.


článek vyšel na serveru http://sweb.cz/nigol. Jakékoliv další publikování je bez souhlasu autora nepřípustné.