Een journalist stuurde me vier uur aan interviews als M4A-bestanden omdat haar transcriptiedienst ze afwees, en vroeg of converteren naar MP3 met 320 kbps de kwaliteit hoog zou houden. het zou niet. De opnames waren 64 kbps mono-spraakmemo's, en het opnieuw coderen ervan op 320 zou bestanden hebben geproduceerd die vijf keer groter zijn met exact dezelfde audio, plus een nieuwe laag schade van de tweede encoder. Wat ze nodig had, was WAV, omdat de transcriptieservice PCM wilde, en de bestandsgrootte deed er niet toe voor iets dat ze een keer uploadde en verwijderde. De conversie duurde een minuut. Het nuttige deel was uitzoeken welke richting het verlies uitloopt, en dat is het begrijpen waard voordat je iets converteert.
tl;dr: M4A en MP3 zijn beide lossy, dus het converteren ervan decodeert audio die al een detail ontbreekt en comprimeert het opnieuw met een ander model. Er is geen instelling die dit vermijdt. Twee regels houden het klein: kies nooit een bitsnelheid boven de bron, omdat de extra bits de artefacten van de eerste encoder beschrijven in plaats van de opname, en het origineel als je hoofdmanier in plaats van de geconverteerde kopie. Als de bestemming een editor, een transcriptieservice of een spraakmodel is, converteer dan in plaats daarvan naar WAV en sla de tweede generatie volledig over. de audio-omzetter Op Toolz.dev loopt FFmpeg door webassembly in uw eigen tabblad, dus een interview of een spraakmemo verlaat de machine nooit.
Wat zit er in een .m4a-bestand?
De extensie noemt de container, niet de audio, en die ene onderscheiding maakt de meeste verwarring rond dit formaat duidelijk.
M4A is een MPEG-4-container met een enkel audiospoor. Wat erin zit, is meestal AAC, wat een iPhone-spraakmemo, een Mac-schermopname, een QuickTime-export en de meeste Apple-downloads produceren. Maar dezelfde container, met dezelfde extensie, kan Apple Lossless in plaats daarvan vasthouden, en die twee bestanden gedragen zich niets hetzelfde: de ene heeft al details weggegooid, de andere niet. Een .M4A van iTunes Match is AAC. Een .M4A geript door Apple Music in Lossless-modus is ALAC en is ongeveer vijf keer zo groot, zo kun je ze uit elkaar houden zonder een tool.
Dit is van belang omdat de juiste conversie afhangt van de codec, niet van de extensie. Een AAC-bestand dat naar MP3 is geconverteerd, verliest een tweede generatie. Een ALAC-bestand dat naar MP3 is geconverteerd, verliest zijn eerste. Converteren naar WAV of FLAC verliest verder niets, hoewel geen van beide kan herstellen wat AAC al heeft weggegooid.
Dezelfde relatie tussen container en codec regelt video, waar het het veel grotere misverstand veroorzaakt dat wordt behandeld De Remux-gids: Het wijzigen van de wikkel is goedkoop, het wijzigen van de compressie is dat niet.
Waarom maakt het converteren van M4A naar MP3 het erger?
Omdat beide formaten werken door te negeren wat een psychoakoestisch model voorspelt dat je het niet zult horen, en de tweede encoder kan het verschil niet zien tussen de opname en de restovers van de eerste encoder.
AAC en MP3 bouwen verschillende modellen. Ze zijn het er niet over eens welke frequenties worden gemaskeerd door luidere buren, ze splitsen het signaal in verschillende aantallen banden en ze gaan anders om met plotselinge transiënten. Dus het detail dat AAC besloot te houden, is niet het detail dat mp3 zou hebben bewaard, en vice versa. Wanneer MP3 de gedecodeerde uitvoer van een AAC-bestand codeert, besteedt het bits aan het behoud van artefacten die nooit in het microfoonsignaal zaten, en gooit het een deel van wat de eerste doorgang overleefde weg.
De schade komt in een voorspelbare volgorde naar voren. Bekkens en hi-hats gaan eerst en veranderen in een soort besmeurd gesis. Applaus volgt, want een kamer vol handen is dicht bij lawaai en lawaai is het enige dat deze codecs niet kunnen modelleren. Dan sustaliteit, de "s" geluiden in spraak, die een warble ontwikkelen die moeilijk te horen is als je het eenmaal hebt opgemerkt.
Niets van dit alles is een argument tegen conversie. Het is een argument om een keer te converteren, van het origineel, wanneer iets stroomafwaarts echt een ander formaat nodig heeft. M4A is geen slechter bestand dan mp3. Op dezelfde bitrate klinkt AAC over het algemeen beter, wat betekent dat het gaan van M4A naar MP3 een compatibiliteitsstap is die je een beetje kwaliteit kost, niet een upgrade die je oplevert.
Welke bitrate moet je kiezen?
Match de bron of ga er iets onder, en nooit hoger.
De reden is de bovenstaande. Bits boven de bronsnelheid worden besteed aan het beschrijven van artefacten, dus een 128 kbps M4A opnieuw gecodeerd met 320 kbps mp3 is twee en een half keer zo groot als geen hoorbare winst. Goed onder de bron gaan doet het tegenovergestelde en gooit een tweede portie echte details weg. Als u de bronbittrate kent, gebruik deze dan. Als je dat niet doet, is 192 kbps een redelijke standaard voor muziek en alles op of boven 128 is prima voor spraak.
Het plafond is geen toolbeslissing. MPEG-1 Layer III komt uit op 320 kbps, die u kunt aflezen De bitrate-indextabel in de MPEG-audioframe-header, en geen enkele encoder kan het overschrijden, ongeacht wat een interface biedt.
Dit is wat elk doelwit per minuut stereo-audio kost.
| schietwedstrijd | per minuut | Verlies? | Waar het voor is |
|---|---|---|---|
| mp3 128 kbps | 0,96 MB | ja | Spraak, podcasts, alles wat naar een apparaat gaat dat alleen mp3 leest |
| mp3 192 kbps | 1,44 MB | ja | de standaard. muziek waar je naar luistert in plaats van meester |
| MP3 320 kbps | 2,40 MB | ja | Pas toen de bron minstens zo hoog was |
| M4A (AAC) | Hetzelfde als MP3 in hetzelfde tempo | ja | Apple-apparaten en beter klinken dan mp3-tarief voor tarief |
| OGG (Vorbis) | weer hetzelfde | ja | Games, webaudio, waar dan ook, octrooivrije zaken |
| flact | ongeveer 6 MB | heel weinig | Een verliesvrije bron archiveren |
| golvend | 10,1 MB | heel weinig | redacteuren, transcriptiediensten, spraakmodellen |
Het WAV-cijfer is geen schatting. Niet-gecomprimeerde stereo-PCM bij 44,1 kHz en 16 bits is 44.100 x 2 kanalen x 2 bytes per seconde, wat 176.400 bytes per seconde en 10,1 MB per minuut is, elke keer, wat de audio ook bevat. Stilte kost precies zoveel als een symfonie.
Wanneer moet je in plaats daarvan converteren naar WAV of FLAC?
Wanneer de bestemming een machine is in plaats van een paar oren.
Audio-editors, transcriptiediensten, tools voor geforceerde uitlijning en spraakmodellen willen allemaal PCM, en door ze een lossy-bestand te overhandigen, worden ze het toch eerst gedecodeerd. Zelf converteren naar WAV slaat een tweede generatie lossy volledig over: de decodering gebeurt één keer, het resultaat is exact en verder wordt niets weggegooid. Het bestand is groot en dat is prima voor iets dat je één keer uploadt.
FLAC is het archiefantwoord in plaats van het werkende. Het comprimeert verliesloos tot ongeveer 60% van PCM op typische muziek, dus de audio kan een beetje worden hersteld terwijl het bestand een derde kleiner is. het is nu Formeel gespecificeerd in RFC 9639, na twee decennia als de facto standaard, en het bevat een detail dat het waard is om te weten: de StreamInfo Block bevat een MD5-handtekening van de niet-gecodeerde audio, zodat een decoder kan bewijzen dat de output overeenkomt met het originele monster voor monster. Geen enkel verliesgevend formaat kan dat bieden, en geen lossy bron kan erin worden gered. Het converteren van een MP3 naar FLAC produceert een groter bestand met dezelfde beschadigde audio, wat een veel voorkomende en volledig zinloze bewerking is.
# what the conversions amount to, if you have ffmpeg installed
#
# M4A to MP3, matching a 192 kbps source:
ffmpeg -i memo.m4a -vn -acodec libmp3lame -b:a 192k memo.mp3
# M4A to WAV for a transcription service (16-bit PCM, 44.1 kHz):
ffmpeg -i memo.m4a -vn -acodec pcm_s16le -ar 44100 memo.wav
# size arithmetic, which needs no tool:
# lossy MB per minute = kbps x 60 / 8 / 1000
# WAV MB per minute = 44100 x 2 x 2 x 60 / 1024 / 1024 = 10.1
Waarom is er een gat aan het begin van mijn mp3?
Omdat MP3 geen willekeurig aantal samples kan vertegenwoordigen en de fix buiten de audiogegevens leeft.
Een MPEG-1 Layer III-frame bevat precies 1152 monsters. De lengte van een bestand rondt daarom af op een framegrens, en de encoder heeft ook een inleiding nodig voordat het geldige output kan produceren, dus elke mp3 draagt een kleine hoeveelheid stilte aan de voorkant en een beetje opvulling aan het einde die niet in de bron zaten. Bij 44,1 kHz is die front gap enkele tientallen milliseconden. Tussen nummers van een album dat als één continue uitvoering is opgenomen, is het het verschil tussen een live-opname en een diavoorstelling.
Het formaat heeft hiervoor geen veld. Wat spelers in plaats daarvan gebruiken, is een kop die de encoder in het eerste frame schrijft en de vertraging en de opvulling vastlegt, dus een speler die het leest, kan zowel trimmen als een speler die dat niet doet. AAC in een MP4-container heeft de lengte als onderdeel van de containerstructuur, daarom zijn M4A-bestanden standaard gaples en zijn MP3-bestanden alleen op conventie onbelemmerd.
Voor een enkele spraakmemo doet dit er allemaal niets toe. Voor het converteren van een album is dat de reden waarom het resultaat subtiel verkeerd klinkt, ook al is elke individuele track prima.
Waarom is mijn conversie mislukt op een bestand met albumhoezen?
Omdat het kunstwerk wordt opgeslagen als een videostream en een encoder vroeg om het in een formaat te schrijven dat nergens op kan te passen, geeft het op.
Een MP3 of M4A met ingebedde coverart heeft twee streams: de audio en een enkel stilstaand beeld dat de container beschrijft als video. Converteren zonder anders te zeggen, probeert FFmpeg dat beeld naar de uitvoer te brengen, en voor doelen zoals WAV heeft de bewerking geen betekenis en faalt met een fout die een videocodec vermeldt op wat duidelijk een audiobestand is.
De oplossing is één vlag, -vn, die videostreams volledig laat vallen. De converter geeft het hier bij elke conversie door, dus het kunstwerk wordt weggegooid en de audio converteert. Als je de coverart wilt behouden, converteer dan naar een formaat dat het draagt en bevestig het daarna opnieuw met een tag-editor, want geen enkele converter zal beide betrouwbaar doen.
Is Ogg het kiezen waard?
Voor de meeste mensen, nee. Voor twee specifieke gevallen, ja.
Vorbis in een Ogg-container is, in Xiph's eigen woorden, a "volledig open, niet-eigen, octrooi-en-royalty-free, universeel gecomprimeerd audioformaat". Dat is het hele argument ervoor, en het is een echte als je audio in een spel verzendt, een applicatie die je distribueert, of iets waar codec-licenties een vraag is die iemand uiteindelijk zal stellen.
Tegen het: hardwareondersteuning is fragmentarisch. Veel autoradio's, oudere telefoons en goedkope spelers lezen mp3 en niets anders, en dat is de reden waarom mp3 de veilige keuze blijft voor een bestand dat naar een persoon gaat in plaats van een programma. Browserondersteuning is goed en dat is al jaren.
Het geluid is een wasbeurt. Bij de bitrates die de meeste mensen gebruiken, zijn Vorbis en AAC beide beter dan MP3 en dicht bij elkaar, en dat overleeft toch geen tweede generatie.
Verlaat de audio mijn machine?
Nee, en voor deze categorie bestand is dat het punt.
De conversie loopt via FFMPEG gecompileerd naar WebAssembly binnen het tabblad Browser. Het bestand wordt van schijf in het paginageheugen gelezen, daar geconverteerd en teruggegeven als download. Open het netwerkpaneel in DevTools tijdens een conversie en niets draagt de audio.
Denk na over wat mensen converteren. spraakmemo's. Opgenomen interviews. therapie notities. Klantenoproepen. Lezingen die iemand met toestemming heeft opgenomen die zich niet uitstrekte tot een derde partij. De normale regeling voor een gratis online converter is dat je dat allemaal uploadt naar de server van een vreemdeling in ruil voor een downloadlink, en het bewaarbeleid is wat de voettekst ook zegt. Hier is geen exemplaar om te bewaren.
De limieten zijn de tabs in plaats van een plan: 300 MB bron, wat ongeveer vijf uur 128 kbps audio of een half uur WAV is. verleden dat een desktop-encoder de betere tool is, en dezelfde logica als de videocompressor is van toepassing, waarbij het geheugen van de browser in plaats van een betaalmuur het plafond bepaalt.
Wat als de audio in een video zit?
Dan is dit het verkeerde hulpmiddel, en het onderscheid is niet pedant.
De soundtrack uit een MP4 halen is een andere bewerking dan het opnieuw coderen van een audiobestand: wanneer de audiotrack van de video al AAC is en u een M4A wilt, kan de stream rechtstreeks worden gekopieerd zonder opnieuw te coderen en helemaal geen verlies. Dat is wat de audio-extractor doet, en daarom bestaat het als een apart hulpmiddel in plaats van als een modus van deze.
De volgorde die het minst verliest, als je een mp3 uit een video nodig hebt: eerst uitpakken, controleren welke codec is uitgekomen en alleen converteren als het resultaat een formaat is dat je bestemming weigert. Het in één stap converteren van de video naar MP3 werkt, maar het verbergt of een lossy-re-codering is gebeurd of niet.
Hoe zit het met de andere richting, mp3 naar m4a?
In één geval de moeite waard en in de rest zinloos.
Het geval waar het helpt: een Apple-apparaat of een app die alleen M4A leest, wat nog steeds gebeurt bij oudere auto-integraties, sommige audioboekspelers en alles wat een AAC-track in een MPEG-4-wrapper verwacht. Dan is het dezelfde compatibiliteitsstap als de andere kant op gaan, met dezelfde kosten.
Het geval waarin mensen ernaar grijpen en dat niet zouden moeten: hopen op een beter klinkend bestand. AAC is een betere codec dan MP3, maar dat voordeel is van toepassing wanneer het een originele opname codeert. Overhandigd een gedecodeerde MP3, codeert het de artefacten van mp3 getrouw, met een nieuwe bitrate, en het resultaat is een tweede generatie die heel iets slechter klinkt en ongeveer dezelfde ruimte in beslag neemt. Geen formaatupgrade kan details herstellen die niet meer in de samples zitten.
De eerlijke test is om te vragen waar het bestand voor is. Als iets weigert het te spelen, converteer dan. Als het goed speelt en je probeert het te verbeteren, is de enige echte verbetering om het origineel te vinden.
Kan ik een map met bestanden in één keer converteren?
Niet in de browser, en dat is de grens die het waard is om duidelijk over te zijn.
Elke conversie laadt het hele bestand in het tabblad en voert een enkele FFmpeg-pas uit, dus de tool verwerkt één bestand tegelijk door ontwerp. Voor drie spraakmemo's is dat sneller dan het installeren van iets. Voor een muziekbibliotheek is het de verkeerde tool volledig, en een shell-lus over een lokale ffmpeg zal worden voltooid terwijl een browser zich nog steeds in het tweede bestand bevindt.
# the batch version, once there are more than a handful
for f in *.m4a; do
ffmpeg -i "$f" -vn -acodec libmp3lame -b:a 192k "${f%.m4a}.mp3"
done
De scheidslijn in de praktijk zit ongeveer tien bestanden of een half uur audio. Daaronder wint de browser op de setup-tijd, daarboven wint een lokale encoder op alles. Dezelfde afweging regelt de videocompressor, waarbij tabgeheugen in plaats van een abonnementslaag het plafond bepaalt, en de video-omzetter voor de indelingszijde van hetzelfde probleem.



