Qualcuno mi ha chiesto di togliere il suono da una registrazione di una lezione di 40 minuti in modo che potesse andare al telefono per il tragitto giornaliero. Ho fatto prima l'ovvio, che è stato convertirlo in mp3, e ci sono voluti un paio di minuti e prodotto un file leggermente più grande dell'audio che era già all'interno del video. Poi ho fatto la cosa che avrei dovuto fare prima e copiato invece la traccia. Ci è voluto meno di un secondo, il file era più piccolo e l'audio era un po' identico a quello che il registratore ha catturato. Il secondo metodo non è un trucco o una scorciatoia. È ciò per cui è stato progettato il formato di file e quasi tutti i convertitori che rispondono a questa domanda lo ignorano.
tl; dr: Un MP4 o MOV di solito trasporta l'audio AAC e un M4A è lo stesso AAC in un contenitore solo audio della stessa famiglia, quindi la traccia può essere copiata direttamente senza decodifica e nessuna perdita. Misurato su una clip di prova di 60 secondi qui: la copia è terminata in 0,04 secondi e il flusso audio estratto aveva lo stesso MD5 del flusso all'interno del video. La codifica dello stesso audio su MP3 a 192 kbps ha richiesto 0,36 secondi, ha prodotto un file del 48% più grande e ha subito un secondo round di compressione con perdita di cui non aveva bisogno. Scegli M4A a meno che qualcosa a valle non lo rifiuti, scegli WAV quando un editor o un trascrittore vuole PCM e scegli MP3 solo per un dispositivo che non legge nient'altro. la estrattore audio Fa tutti e tre nella scheda del browser, quindi una riunione registrata non lascia mai la macchina.
Cosa c'è all'interno di un brano audio di un MP4?
Un MP4 è un contenitore, il che significa che è un sistema di archiviazione piuttosto che un formato. Al suo interno ci sono flussi separati: una con immagini compresse, una con un suono compresso, a volte tracce di sottotitoli e marker di capitoli accanto a loro. Il contenitore descrive dove inizia ciascuno, quanto tempo funziona e quale codec è stato utilizzato, ed è quasi tutto ciò che fa.
Il flusso audio in un MP4 è quasi sempre AAC. Questo è ciò che produce un iPhone, ciò che produce una registrazione su schermo Mac, ciò che produce un'esportazione QuickTime, ciò che produce un drone e ciò che ogni fotocamera che scrive MP4 o MOV ha prodotto per circa quindici anni. Ci sono eccezioni, per lo più file più vecchi con audio MP3 all'interno di un wrapper MP4 e formati professionali che trasportano PCM non compresso, ma AAC è l'impostazione predefinita schiacciante.
Questo è controllabile su qualsiasi file che hai. ffprobe Ti dirà in una riga, così come l'ispettore di file nella maggior parte dei lettori video. Nella clip di prova che ho creato per questa guida, il flusso audio riporta come aac, 44100 Hz, stereo, 128158 bit/s, che è una normale registrazione di qualità della fotocamera.
La conseguenza utile è quella nella prossima sezione. Una volta che sai che lo stream è AAC, sai che un M4A può tenerlo senza toccarlo.
Perché l'audio può uscire senza essere convertito?
Perché M4A è lo stesso contenitore con la parte video esclusa.
Sia MP4 che M4A sono profili del formato file multimediale di base ISO, la struttura standardizzata come ISO/IEC 14496-12 e condivisa da MP4, M4A, M4V, MOV e una manciata di altri. È cresciuto dal formato QuickTime di Apple, di cui Il layout della casella è ancora documentato per intero e si legge come una descrizione di MP4 perché è quasi uno. Le caselle sono disposte allo stesso modo, le tabelle di esempio funzionano allo stesso modo e una traccia AAC scritta in un'unica è un byte per byte la stessa traccia scritta nell'altra. L'estensione è diversa in modo che un sistema operativo sappia se aprire una finestra di giocatore, e questo è la maggior parte dell'estensione.
Quindi estrarre l'audio da un MP4 in un M4A non è una conversione. È un remux: i campioni audio vengono letti da un contenitore e scritti in un altro, e nessun decoder o encoder è coinvolto in nessun momento. Nulla viene interpretato, quindi nulla può essere degradato.
Questa è la stessa distinzione che provoca il più ampio malinteso lato video, coperto la guida al formato video: La modifica di un wrapper è quasi libera, cambiando la compressione al suo interno non lo è. L'estrazione audio è il caso in cui l'opzione gratuita è anche quella corretta, che è più rara di quanto dovrebbe essere.
In termini FFmpeg l'intera operazione è di quattro argomenti:
ffmpeg -i recording.mp4 -vn -acodec copy recording.m4a
-vn Rilascia il flusso video. Lascialo fuori e FFmpeg cerca di portare l'immagine in un contenitore che non ha un posto dove metterlo, che produce un M4A il tuo lettore musicale si rifiuta di aprire. -acodec copy è la parte che lo rende senza perdita: dice a FFmpeg di passare i campioni piuttosto che consegnarli a un codificatore.
Come fai a sapere che la copia ha davvero perso nulla?
Perché puoi eseguire l'hash del flusso prima e dopo e i due hash corrispondono.
Ho costruito un file di prova di 60 secondi, video 1280x720 h.264 con una traccia AAC stereo da 128 kbps, 19 MB in totale. Quindi ho eseguito l'hashing del flusso audio all'interno del video, ho copiato l'audio e l'ho nuovamente eseguito con hash:
$ ffmpeg -i src.mp4 -vn -c:a copy -f md5 -
MD5=650032f86f01780991c64c30bd02f71b
$ ffmpeg -i src.mp4 -vn -acodec copy out.m4a
real 0.04
$ ffmpeg -i out.m4a -c:a copy -f md5 -
MD5=650032f86f01780991c64c30bd02f71b
Stesso digest, quindi i dati audio compressi nell'M4A sono i dati audio compressi del video, con non un bit alterato. Il file estratto era di 950 KB e l'intera operazione ha richiesto 0,04 secondi, che è all'incirca il tempo necessario per leggere 19 MB da un SSD.
Vale la pena eseguire quel test sul tuo file piuttosto che assumere fiducia, perché è l'unico modo per distinguere una copia reale da una conversione che afferma di essere una. Se i due hash differiscono, qualcosa ha ricodificato il tuo audio mentre ti diceva che non era così.
Quanto ti costa scegliere MP3?
Una seconda generazione di compressione con perdita, oltre a un file più grande.
AAC e MP3 funzionano entrambi scartando ciò che un modello psicoacustico prevede che non si possa sentire e non sono d'accordo su cosa sia. Dividono il segnale in diversi numeri di bande, modellano in modo diverso e gestiscono i transienti improvvisi in modo diverso. Quindi, quando un encoder MP3 viene consegnato all'output decodificato di un file AAC, non può dire quali parti provenissero dal microfono e quale il primo encoder ha lasciato. Spende dei pezzi preservando entrambi e butta via parte di ciò che è sopravvissuto al primo passaggio.
Ecco la stessa clip di 60 secondi attraverso ogni percorso:
| uscita | Come è stato fatto | Dimensione | orario | ulteriore perdita |
|---|---|---|---|---|
| m4a | Flusso AAC copiato | 972.706 byte | 0,04 s | Nessuno, hash-identico |
| mp3 192 kbps | Decodificato, ricodificato con zoppo | 1.441.479 byte | 0,36 s | Sì, seconda generazione |
| sventolare | Decodificato a PCM a 16 bit | 10.584.142 byte | 0,05 s | Nessuno aggiunto, nessuno annullato |
L'MP3 è più grande del 48% rispetto all'M4A mentre contiene l'audio che ha subito un altro encoder con perdita. Non esiste alcuna impostazione che lo eviti, perché la perdita è nella decodifica e ricodifica se stessa piuttosto che nel bitrate.
Nessuno dei quali rende MP3 sbagliato. Un'autoradio del 2009, un registratore vocale economico, un tapis roulant da palestra con una porta USB e una quantità sorprendente di software di trasmissione leggeranno MP3 e nient'altro. Quando questa è la destinazione, la perdita di generazione è il prezzo del file in riproduzione, ed è un piccolo prezzo per la parola. Il punto è pagarlo consapevolmente piuttosto che perché uno strumento ha scelto mp3 per te.
Un bitrate MP3 più alto migliora l'estrazione?
Rende l'MP3 una copia più fedele dell'audio danneggiato, che non è la stessa cosa di meglio.
L'ho testato con una fonte a banda larga, perché i toni puri sono facili per un codec e non ti dicono nulla. La clip di prova era di 30 secondi di rumore rosa mescolato con un seno basso, codificato a 128 kbps AAC, che è all'incirca quanto sia dura la vera musica su un encoder. Quindi ho decodificato che AAC in PCM per utilizzare come riferimento, codificato in MP3 a due bitrate e misurato il rapporto segnale/distorsione di ciascuno rispetto al riferimento:
| bitrate mp3 | Dimensioni per 30 s | SDR contro la fonte AAC |
|---|---|---|
| 192 kbps | 705 kb | 26,7 dB |
| 320 kbps | 1,1 MB | 42,3 dB |
Il file a 320 kbps è una riproduzione molto più stretta dell'audio AAC, di circa 15 dB. Ciò che non è è una riproduzione più stretta della registrazione originale, perché l'AAC già lo scartato e nessun encoder può rimetterlo a posto. I 400 KB in più hanno acquistato una copia più fedele dell'output del primo codificatore, manufatti inclusi.
Quindi la regola da La guida del convertitore audio tiene, con una ragione più netta dietro. Abbinare o leggermente sottoquotare il bitrate di origine è l'intervallo sensibile. Andando ben al di sopra di spendere lo spazio di archiviazione per preservare i dettagli che non sono nella registrazione, e andare ben al di sotto butta via una seconda porzione di ciò che è.
Se la fedeltà all'originale è ciò che ti interessa, la risposta non è un bitrate. È la copia M4A, che non ha alcuna decisione di bitrate da prendere.
Quando è WAV la risposta giusta?
Quando qualcosa a valle vuole PCM, che è più spesso di quanto la gente si aspetti.
Gli editor audio lo preferiscono perché non ha bisogno di decodifica e possono essere modificati campione per campione. I servizi di trascrizione e i modelli vocali lo richiedono frequentemente e quelli che accettano l'audio compresso di solito lo decodificano comunque internamente in PCM. Strumenti di allineamento forzato, software di analisi acustica e qualsiasi elaborazione del segnale partono tutti dal PCM.
WAV non aggiunge ulteriori perdite, sebbene non possa annullare ciò che la fonte ha già scartato. Un WAV realizzato da una traccia AAC da 128 kbps ha ancora tutti i dettagli mancanti che mancava all'AAC. È un contenitore fedele per l'audio danneggiato, che è esattamente quello che vuoi quando il passaggio successivo è l'analisi piuttosto che l'ascolto.
Il risultato misurato è rassicurante su questo punto. Il wav che ho estratto era bit per bit identico a una decodifica diretta dell'audio sorgente, lo stesso MD5, quindi l'estrazione non ha aggiunto nulla di proprio. Il costo è la dimensione, che copre la sezione successiva.
Lo stereo a 16 bit a 44,1 kHz è l'impostazione predefinita sensibile e ciò che l'estrattore scrive. È una specifica del CD, è universalmente leggibile e nulla si ottiene scrivendo PCM a 24 bit da una fonte che all'inizio era persa.
Quanto sarà grande il file?
Com'era prevedibile, che è la parte utile.
La dimensione dell'audio è la durata del bitrate, senza alcuna dipendenza dal contenuto, quindi a differenza del video può essere detto prima che inizi il lavoro piuttosto che indovinato in seguito.
| formato | al minuto, stereo | un'ora |
|---|---|---|
| M4A copiato da una sorgente da 128 kbps | 0,95 MB | 57 MB |
| mp3 192 kbps | 1,4 MB | 84 MB |
| MP3 128 kbps | 0,96 MB | 58 MB |
| WAV 16 bit 44,1 kHz | 10,1 MB | 606 MB |
La fila wav è quella che sorprende le persone. 10,1 MB al minuto è una cifra misurata dal test sopra, e segue direttamente dall'aritmetica: 44.100 campioni al secondo, due byte per campione, due canali. Un'ora di lezione audio in WAV è un file da 600 MB, che è più grande di molti dei video da cui è uscito e più grande di quanto alcuni servizi accetteranno come caricamento.
Questo è anche il motivo per cui l'estrattore mostra una stima prima di essere eseguita. Una registrazione di un'ora estratta in WAV è una cosa ragionevole da desiderare e una cosa irragionevole da cui essere sorpresi.
Perché un WebM si rifiuta di copiare il suo audio in un M4A?
Poiché il codec al suo interno è uno che il contenitore MPEG-4 non porterà e lo strumento è onesto al riguardo piuttosto che ricodificare silenziosamente.
Un WebM contiene Opus o Vorbis Audio, non AAC. Nessuno dei due appartiene a un M4A per quanto riguarda i muxer standard, quindi il percorso di copia non è disponibile. ffmpeg dice così chiaramente:
[ipod @ 0x75bd019180] Could not find tag for codec opus in stream #0,
codec not currently supported in container
[out#0/ipod] Could not write header (incorrect codec parameters ?)
esiste una specifica pubblicata per Opus incapsulante in un contenitore per supporti di base ISO, quindi questa è una realtà di strumenti e riproduzione piuttosto che un'impossibilità teorica. In pratica niente daresti il file per riprodurre un M4A pieno di opus, quindi la risposta utile è ricodificare. Sullo stesso contenuto di test che ha richiesto 0,32 secondi per 20 secondi di audio e ha prodotto un file da 473 kb, che è una generazione di perdita e l'unica opzione disponibile.
La stessa logica decide ogni altra fonte. MP4, MOV, M4V e M4A possono avere la loro AAC copiata. WebM, MKV con opus o Vorbis e qualsiasi cosa che trasporta un codec dall'esterno della famiglia MPEG-4 non può, e l'estrattore dice in quale caso ti trovi prima che inizi piuttosto che dopo.
Perché le durate non corrispondono esattamente?
Poiché AAC e MP3 associano entrambi la loro uscita, ei due contenitori gestiscono quell'imbottitura in modo diverso. È il dettaglio che interrompe la riproduzione senza interruzioni e si presenta chiaramente nei numeri di prova.
L'audio della sorgente era esattamente di 60 secondi, 2.646.000 campioni a 44,1 kHz. L'M4A estratto riporta una durata di esattamente 60.000000 secondi. I WAV e gli MP3 estratti riportano entrambi 60.000363 secondi, ovvero 16 campioni più lunghi.
Quei 16 campioni sono ritardo dell'encoder. AAC funziona in 1024 frame di esempio, quindi una registrazione di 60 secondi non si divide uniformemente e l'encoder esegue la fine. L'M4A lo nasconde usando un elenco di modifiche, una piccola tabella nel contenitore che dice quale parte dell'output decodificato è la registrazione reale. Decodifica l'M4A e ottieni indietro i 2.646.016 campioni imbottiti, da cui proviene i 0,36 millisecondi extra del WAV.
MP3 non ha una lista di modifiche, perché il formato precede l'idea. Quello che ha invece è il tag informativo zoppo, un blocco fornitore nel primo frame che registra quanti campioni scartare a ciascuna estremità. la Il layout del campo è documentato byte per bytee il ritardo dell'encoder e l'imbottitura finale condividono i byte da 0xb1 a 0xb3 come due valori a 12 bit. Decodificato, l'MP3 è tornato a 2.646.016 campioni, abbinando esattamente il wav, quindi il tag ha fatto il suo lavoro qui. Un giocatore che lo ignora, o un codificatore che non riesce a scriverlo, è da dove proviene il clic udibile tra le tracce di un album continuo.
Niente di tutto ciò ha importanza per una lezione o un podcast. Importa molto per un album dal vivo o un mix di DJ, ed è il motivo per cui vale la pena preferire il percorso di copia quando è disponibile: non c'è alcun codificatore coinvolto, quindi non c'è nuovo riempimento di cui tenere conto.
M4A riproduce ovunque riproduzioni MP3?
Vicino ad esso, con un breve elenco di eccezioni che vale la pena conoscere prima di impegnarsi.
Tutto ciò che ha realizzato in questo decennio riproduce M4A. IOS e Android fanno entrambi nativamente, ogni sistema operativo desktop lo fa, ogni browser lo fa, Spotify e VLC e Plex e l'app stock musicale su qualsiasi telefono tu possieda. Il formato ha vent'anni ed è stato l'output predefinito del telefono più popolare sulla Terra per la maggior parte di essi.
Le eccezioni si raggruppano in due posizioni. Il primo è quello di autoradio più vecchie e hardware autonomo, in particolare unità di testa di prima del 2012 circa, dove una chiavetta USB piena di file M4A viene visualizzata come vuota. Il secondo è un software che accetta caricamenti audio e convalida per estensione piuttosto che per contenuto, che rifiuta un M4A su un elenco scritto anni fa e mai rivisitato. I servizi di trascrizione erano un delinquente comune qui, ed è così che il giornalista La guida del convertitore audio Finito con quattro ore di file il suo servizio non avrebbe richiesto.
Un approccio ragionevole: prima estrai a M4A, perché è istantaneo e senza perdita, e mantienilo come master. Se la destinazione lo rifiuta, converti quella M4A in MP3 una volta. Hai quindi pagato per una generazione di perdita invece di fare la copia con perdita di dati l'unica tua copia.
Quanto tempo impiega un'estrazione e cosa lo decide?
Leggendo il file, per lo più, e quindi se è coinvolto un encoder.
Il percorso di copia è limitato dalla velocità del disco e della memoria anziché dall'elaborazione. 0,04 secondi per un file da 19 MB non è l'audio su cui si sta lavorando, è il file in lettura e un nuovo contenitore in fase di scrittura. Ridimensionandolo, una registrazione di 40 minuti di lezione di un paio di centinaia di megabyte esce in un secondo o due, e quasi tutto questo è il browser che legge il file nella scheda.
I percorsi di codifica sono limitati dall'encoder. Lame ha impiegato 0,36 secondi per 60 secondi di audio stereo su questa macchina, che è circa 165 volte più veloce del tempo reale, quindi un'ora di audio è di circa 20 secondi di lavoro. Ricodifica AAC da un WebM misurato in modo simile. Questi sono abbastanza veloci che la barra di avanzamento è principalmente lì per onestà piuttosto che per necessità.
Una cosa domina tutto il resto e non è l'audio. Il caricamento del video di origine nella pagina è il passo lento per un file di grandi dimensioni, perché l'intero file va nella memoria a schede. Questo è il motivo del limite da 500 MB: oltre a ciò, una scheda inizia a fallire in modi più difficili da spiegare rispetto a un limite dichiarato. Se stai lavorando con un file più grande di quello, tagliandolo prima con il videosaccolo di solito è più veloce che combattere il limite, e La guida di rifinitura copre perché anche quel taglio è quasi gratuito.
Cosa succede quando un video ha più di una traccia audio?
Una traccia esce, scelta per te, e le altre vengono eliminate senza commenti. Vale la pena sapere perché è un fallimento tranquillo piuttosto che rumoroso.
L'ho testato con un file che trasportava due flussi audio, una traccia stereo a 128 kbps e una mono da 64 kbps, che ha all'incirca la forma di una registrazione con un microfono con fotocamera e un microfono a risvolto separato. L'estrazione ha prodotto un singolo flusso, lo stereo da 128 kbps, 950 KB, senza alcuna menzione che fosse esistita una seconda traccia.
La selezione non è casuale. Regole di selezione del flusso documentate Scegli lo streaming che giudica meglio, che per l'audio significa il numero di canali più alto, in modo da ottenere quello che volevi. Ma se la traccia mono silenziosa era l'audio dell'intervista e quella stereo era il rumore della stanza dalla fotocamera, si sbaglia e niente te lo dice.
I file multitraccia sono rari al di fuori dei flussi di lavoro professionali e quasi nulla da un telefono o da uno schermo ha più di un flusso audio. Se stai lavorando con filmati da uno shooting reale, controlla l'elenco dei flussi prima di estrarlo e aspettati di utilizzare FFmpeg direttamente con un esplicito -map 0:a:1 Quando hai bisogno della seconda traccia.
Dovresti estrarre l'audio o convertire l'intero video?
Estrai, se quello che vuoi è il suono. Le due operazioni non sono alternative e le persone raggiungono regolarmente quella sbagliata.
La conversione di un video in MP3 è una frase che appare in milioni di ricerche al mese e descrive un'operazione che nessuno vuole. Implica la decodifica e lo scarto dell'immagine, la decodifica dell'audio e la ricodifica, che è un grande lavoro per arrivare a una versione peggiore di qualcosa che era già lì. la convertitore di video Esiste nel caso in cui si voglia un video alla fine, in un formato verrà riprodotto qualcosa. Quando vuoi l'audio, l'estrazione è l'operazione e il percorso di copia significa che è anche quello economico.
La tabella delle decisioni è breve:
| Quello che vuoi | maneggiare | prezzo |
|---|---|---|
| la colonna sonora come file | Estratto a m4a | Niente, copiato in streaming |
| la colonna sonora di un editore o trascrittore | Estrai in Wav | Solo taglia |
| la colonna sonora sul vecchio hardware | Estrai in mp3 | Una generazione |
| un video più piccolo, immagine inclusa | compressore video | dipende da crf, vedi La guida alla compressione |
| lo stesso video in un formato che viene riprodotto | convertitore di video | Spesso un remux, quindi niente |
Il modello su tutte e cinque le righe è quello che vale la pena portare via: chiedere se l'operazione richiede la ricodifica e preferire quella che non lo fa.
Cosa cambia l'esecuzione nel browser?
Dove va la registrazione, che per l'audio è solitamente l'intera domanda.
L'estrattore esegue FFmpeg compilato in WebAssembly all'interno della pagina. Il video viene letto dal tuo disco nella memoria a schede, il flusso audio viene estratto là fuori e il risultato viene restituito come download. Nessuna richiesta porta il file, nulla viene messo in coda su un server e nessuna copia esiste da nessuna parte che nessuno possa dimenticare di eliminare.
L'estratto delle persone audio è principalmente del tipo che rende questo argomento. Incontri registrati, conferenze, interviste, consulenze, chiamate con un avvocato o un medico, memo vocali con cose in esse che non pubblicheresti. L'alternativa convenzionale è caricare la registrazione su un sito di cui non si conosce, in cambio di un'operazione che sul percorso di copia è un contenitore che riscrive la propria macchina termina in meno di un secondo.
Il trade è il limite da 500 MB e il flusso di lavoro in un file alla volta, perché una scheda del browser ha meno memoria di un server e nessuna coda. Per una singola registrazione, che è a questo che serve quasi sempre, questo è un limite che non raggiungerai e una garanzia sulla privacy che non puoi ottenere in nessun altro modo.



