Wednesday, December 3, 2008

mp4 audio video mobil

 Dintr-un motiv sau altul,bătrînul meu sony k700 nu recunoaşte formatul audio aac codat cu ffmpeg şi se încăpăţînează să redea formatul audio aac care este codat numai cu nero audio encoder!

 Asta înseamnă că toate videoclipurile mp4 făcute cu ffmpeg(video mpeg4,audio aac) sînt inutilizabile pe acest telefon! În windows problema s-ar rezolva foarte repede:dai o raită pe torent,iei ce-ţi trebuie şi gata! Numai că n-am chef să folosesc windows şi mă ambiţionez să rezolv problema utilizînd linux!După vreo 5 ore de căutat pe net,instalat programe şi probe repartizate în 2 zile rezultatul este mai mult decît mulţumitor şi în plus am şi senzaţia de mulţumire pe care cei care folosesc linux în mod curent o cunosc deja! :) Rezultatele cred că sînt valabile pentru orice telefon care recunoaşte video mpeg4 şi audio aac codat cu nero encoder-probabil cel mai bun program de transformare în format aac la ora actuală!

 Necesar:pachetul ffmpeg,nero aac audio encoder şi mp4box(gpac proiect)!Nu strică să mai ai tot ce are legătură cu mpeg,avi,mpg,wav!Eu le-am avut deja aproape pe toate-instalate prin apt sau compilate local- aşa că nu au apărut erori la executarea comenzilor!La tine,în caz că apar erori,urmăreşti logul vezi ce lipseşte şi instalezi!

 Soluţie:Se extrage numai partea video din fişierul iniţial avi şi se codează cu ffmpeg în format mpeg4,cu extensia mp4.Tot din acelaşi fişier iniţial se extrage numai partea audio şi se transformă într-un fişier audio în format wav.Acesta,la rîndul lui,se transformă cu nero aac encoder în fişier audio în format aac cu extensia mp4. Ultima parte:se combină cu ajutorul programului mp4box fişierul video mpeg4 şi fişierul audio aac rezultînd videoclipul final cu sonor codat de nero encoder(ceea ce este esenţial)!Calitatea video şi audio este foarte bună iar dimensiunea fişierului final este mult mai mică decît a unuia obţinut prin programe comerciale!

 Probleme:pachetul gpac care conţine şi programul mp4box nu s-a compilat şi instalat local pînă ce n-am dezactivat suportul pentru openGL. (--disable opengl).Problema asta m-a costat vreo 50 minute de încercări şi reîncercări pentru că pachetul nu este disponibil decît sub formă de surse!

 Comenzi şi capturi de ecran:

fisier iniţial:anggun.avi( vxid4 şi mp3)

fişier audio wav: anggun.wav

fişier audio aac:anggun-audio.mp4

fişier video mpeg4:anggun-video.mp4

fisier final:anggun-f.mp4

Extragerea pistei audio din fisierul iniţial şi transformarea lui în fişier wav:

ffmpeg -i anggun.avi -acodec pcm_s16le -ar 44100 -ac 2 anggun.wav





Extragerea pistei video din fişierul iniţial şi transformarea în fişier video mpeg4:

ffmpeg -i anggun.avi -vcodec mpeg4 -b 1200kb -an -mbd 2 -flags +4mv -trellis 2 -aic 2 -cmp 2 -subcmp 2 -s 128x96 -r 30000/1001 -title X -f mp4 anggun-video.mp4




De remarcat,dimensiunea:128x96,o dimensiune acceptabilă pentru telefonul meu!Pentru al tău caută pe net şi vezi ce dimensiuni sînt acceptate pentru fişiere video!

Codarea fişierului audio wav în fişier audio aac:

neroAacEnc -br 64000 -he -if /home/luc/anggun.wav -of /home/luc/anggun-audio.mp4






Unirea pistei audio aac cu pista video mpeg4 şi obţinerea fişierului final:

MP4Box -add /home/luc/anggun-video.mp4 -add /home/luc/anggun-audio.mp4 /home/luc/anggun-f.mp4





La executarea ultimei comenzi trebuie sa te afli în directorul executabilului mp4box,de aceea vei furniza calea completă a fişierelor!

Dacă te pricepi la programe bash şi faci vreun fişier care să cuprindă toate comenzile de mai sus şi eventual să fie capabil să proceseze fişierele video iniţiale dintr-un întreg director nu uita să mi-l trimiţi şi mie! :) Tks!

No comments:

Post a Comment