A kézenfekvő megoldás ez lenne:
mplayer -dumpaudio cuc.mp4
Igen ám, csakhogy ez egy "raw" AAC fájlt eredményez, ami elveszti a keretezési információt, így VLC-n kívül kb semmi nem képes lejátszani. Az Audacious mp4 plugin például keményre fagy tőle. Dekódolni lehet faad-vel, de ha ezt akarnám, akkor mplayerrel is megtehettem volna. A sokszor amúgy sem fényes minőségű, alacsony bitrátával tömörített hanganyagnál csak az hiányozna még, hogy utána még újra is kelljen tömöríteni...
Több helyen az mp4creator nevezetű tool-t emlegetik, ezért utánanéztem. Csomag Arch linux alá nincsen, sőt AUR-ban sincs PKGBUILD hozzá (ez utóbbi mondjuk meglepett), márpedig a kézzel fordított /usr/local alá installált és ezáltal praktikusan karbantarthatatlan telepítésekről szeretnék végérvényesen leszokni. Gondoltam csinálok hozzá egy PKGBUILD-et, ám a forrásfát jobban megnézve elment a kedvem tőle. A forrás copyright notice-okból világossá vált, hogy az mp4creator valójában nem más, mint a régi, már nem karbantartott MPEG4IP, más néven és más által továbbvitt forkja. A forrásfa gyakorlatilag az összes library forrását is tartalmazza egyben (inkluzíve olyan alap dolgokat is, mint getopt), ezt nyilván alaposan szét kéne szedni, hogy ne írja felül a rendszeren meglévő könyvtárakat. Ennek a feladatnak most nem igazán akartam nekifutni. A libmp4v2 például már eleve külön csomagban megvan és tartalmazza is a parancssori utility-k egy részét. De persze az mp4creator binárist nem, pedig pont az kellene. Nem kerültem sokkal közelebb, de legalább már értem, hogy miért nincs mp4creator csomag AUR-ban.
Szóba került még az MP4Box is, ami GPAC project néven található. Ez igéretesebb darab. Van is belőle csomag, sőt valami dependency miatt már alapból fenn is volt. A helpjéből kicsit nehéz kibányászni, hogy pontosan mit tud és hogyan kell használni, de szerencsére ennek van man oldala is (ellentétben libmp4v2-ben található obskurus utility-kkel).
Az első kisérletem ez volt:
MP4Box -raw 1 cuc.mp4 -out mak.aac
Itt arra számítottam, hogy ugyanazt a nyers AAC-t fogom kapni, mint az mplayer-es kisérletnél, de meglepő módon ez lejátszható volt! Viszont seekelni nem lehet benne, és nincs semmi metaadat tehát azért nem tökéletes.
Kicsit továbbolvasva itt az jó megoldás: több streames MP4 hordozófájlból egy stream átfejtése egy másik MP4 fájlba:
MP4Box -single 1 cuc.mp4 -out mak.mp4
És ez az mp4 már mindennel lejátszható, az Audacious simán megy vele, seekelni lehet benne.
A végére még egy esetleg fontos megjegyzés: honnan is tudom én azt, hogy az 1-es stream-et kell átfejteni? Eddig még minden fájlban az 1-es volt a hangsáv, de nem tudom, hogy kötelezően így van-e. Sőt akár több hangsáv is lehet. Az MP4Box -add segítségével adhatunk hozzá extra stream-eket egy meglévő mp4-hez. A már emlegetett libmp4v2 csomagban egy tool, amivel megnézhető, hogy melyik stream micsoda:
mp4info cuc.mp4
mp4info version 1.6
cuc.mp4:
Track Type Info
1 audio MPEG-4 AAC LC, 53.661 secs, 129 kbps, 44100 Hz
2 video H264 Baseline@1.1, 53.666 secs, 177 kbps, 320x234 @ 6.000075 fps
- XMI blogja
- A hozzászóláshoz be kell jelentkezni
- 1613 megtekintés
Hozzászólások
Van néhány észrevételem, az egyszerűség érdekében megszámoztam:
1: azért gondolom a raw aac dumpot az mplayer is vissza tudja játszani. :)
2: ma hár mplayer, akkor miért nem mencoderrel "szeded ki" a hangsávot? Én valahogy úgy csinálnám, hogy mencoder video.mp4 -oac copy -of lavf -lavfopts format=mp4 -o output.mp4 (Persze semmi nem garantálja, hogy ez így jó.) Sőt, vlc is át tudná kódolni aac-be, ha csak épp az volna kéznél.
3: mplayer és vlc is megmondja, hogy melyik stream mit tartalmaz.
- A hozzászóláshoz be kell jelentkezni
1. azért gondolom a raw aac dumpot az mplayer is vissza tudja játszani.
Próbáld csak ki! :) Hint: ha -dumpaudio-val mented ki, akkor nincs ADTS header, anélkül pedig elvileg semmi nem tudná lejátszani. Az, hogy a VLC és a faad mégis tudja, az valami obskurus paraméter megtippelős heurisztikának köszönhető.
2. ma hár mplayer, akkor miért nem mencoderrel "szeded ki" a hangsávot?
Mert akkor valaki beírná kommentbe, hogy mennyivel egyszerűbb, ha az MP4Box-szal csinálom. :) N+1 féle variáció van, én ezt találtam meg.
3. mplayer és vlc is megmondja, hogy melyik stream mit tartalmaz.
Aha...
mplayer:
[lavf] Audio stream found, -aid 0
[lavf] Video stream found, -vid 1
mp4info:
Track Type Info
1 audio MPEG-4 AAC LC, 225.071 secs, 125 kbps, 44100 Hz
2 video H264 Baseline@1.1, 224.555 secs, 196 kbps, 320x240 @ 24.996103 f
(ugyanarról a fájlról van szó)
A gyanútlan user meg szépen kitépi a haját, mire rájön, hogy mi is a probléma.
---
Internet Memetikai Tanszék
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
KAMI | 神
--
Támogatás | OxygenOffice | Fordításaim és SeaMonkey
- A hozzászóláshoz be kell jelentkezni
Kicsit talán ágyúval verébre, de nekem bevált: avconvert script, minden sz@rt tud konvertálni.
ffmpeg-gel is megoldható, ha az átkódolás nem gond:
ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3
Értelemszerűen a kimeneti codec az amit akarsz a támogatottak közül. Egyes lame és ffmpeg verzióknál lehet gond, "lame: output buffer too small" hibával elszáll, ffmpeg frissítés vagy lame downgrade megoldja. Ja, és -acodec copy
elvben kiszedi az aac streamet neked, nem teszteltem, hogy jó-e, csak hogy kiteszi-e, meg mplayer lejátssza-e -> lejátssza.
Nekem működik ez is, ha aac-t kell dumpolni (amarok, mplayer lejátsza, mással nem néztem):
faad -a output.aac infile.mp4
- A hozzászóláshoz be kell jelentkezni
Utube. http://gtk-apps.org/content/show.php/UTube+Ripper?content=77198
Ubuntun használtam anno, lementette a youtube videót, lementette csak a hangot, és utána át is tudta kódolni.
És aur-ban ott van.
---------------------------------------------------------------------------------
A Linux nem ingyenes. Meg kell fizetni a tanulópénzt.
Az emberek 66 százaléka nem tud számolni! Gondoljatok bele, ez majdnem a fele!!
- A hozzászóláshoz be kell jelentkezni
Ha firefoxot használsz akkor van egy plugin ami minden youtube videó leírásához beilleszt egy linket amivel letölthető mp3 formátumban a hang.
firefox addonok között a "youtube mp3" -ra ha rákeresel akkor megleled :)
- A hozzászóláshoz be kell jelentkezni
ffmpeg -i akármi.mp4 -acodec copy akármi.aac
Ez nyers aac fájlt készít, amit nálam az Amarok és az MPlayer is lejátszik.
mp4creator -create akármi.aac akármi.m4a
Én Opensusét használok, ahhoz van rpm (Packman). Nem tudom, az ArchLinuxhoz miért nincs bináris.
- A hozzászóláshoz be kell jelentkezni