Come convertire WAV in MP3 senza aggiungere silenzio all'inizio


6

Ecco cosa devo fare: convertire un WAV di 30,0 secondi in un MP3 di 30,0.

Ho provato a farlo usando LAME, comunque, qualunque cosa io provi, LAME aggiunge sempre un breve momento di silenzio all'output mp3. Usando LAME il mio WAV da 30,0 secondi diventa un MP3 da 30,1 secondi. Che schifo.

Qualcuno conosce un modo per convertire WAV in MP3 utilizzando la riga di comando di Windows?

Ad esempio eseguendo "program.exe in.wav out.mp3" da CMD?

È fondamentale che NESSUN silenzio venga aggiunto al file MP3 risultante. Non posso sottolineare abbastanza.


tl; dr non è possibile a causa delle specifiche del formato MP3 stesso, che richiede l'uso di frame con una lunghezza costante e che richiede un preambolo di mezzo frame. Si può ciclo l'audio senza soluzione di continuità attraverso vari trucchi, ma semplicemente non si può produrre una, conforme agli standard MP3 valida dal fonte arbitraria, senza che il silenzio.
vaxquis,

Risposte:


2

Un flusso MP3 contiene informazioni per la generazione di un set di campioni in cui ogni campione corrisponde a un campione nei dati LPCM originali (come dal file WAV), ma un effetto collaterale della codifica è che c'è un "junk" aggiuntivo aggiunto a ciascuno fine, e un effetto collaterale della decodifica è che c'è ancora più spazzatura aggiunta all'inizio. Il decodificatore saprà quanto aggiunge e salterà quei campioni, ma la spazzatura aggiunta dall'encoder non è del tutto prevedibile (codificatori diversi aggiungono quantità diverse), quindi il decodificatore non può saltare quei campioni a meno che non sia in qualche modo informato di cosa Salta. Alcuni codificatori, come LAME, aggiungeranno tali informazioni "gapless playback" o "delay and padding" (in un formato specifico dell'encoder, perché non esiste uno standard) nelle informazioni VBR (VBRI) del file o nell'intestazione Xing, che è una specie di standard anche sui file CBR e che contiene altre informazioni che a volte sono utili per il lettore. Questa intestazione è in realtà un frame di silenzio (di solito 1152 campioni) con alcune informazioni appositamente formattate incorporate tra l'intestazione del frame e l'inizio dei suoi dati audio nulli. La maggior parte dei decodificatori / giocatori riconosce il frame come speciale e salta quei campioni, ma alcuni non lo fanno, quindi c'è un altro potenziale punto di errore. quindi vorrei cercare di assicurarmi di utilizzare un combo codificatore / decodificatore compatibile per ottenere file di lunghezza corretta e tagliati di junk come output. La maggior parte dei decodificatori / giocatori riconosce il frame come speciale e salta quei campioni, ma alcuni non lo fanno, quindi c'è un altro potenziale punto di errore. quindi vorrei cercare di assicurarmi di utilizzare un combo codificatore / decodificatore compatibile per ottenere file di lunghezza corretta e tagliati di junk come output. La maggior parte dei decodificatori / giocatori riconosce il frame come speciale e salta quei campioni, ma alcuni non lo fanno, quindi c'è un altro potenziale punto di errore. quindi vorrei cercare di assicurarmi di utilizzare un combo codificatore / decodificatore compatibile per ottenere file di lunghezza corretta e tagliati di junk come output.

La tua seconda domanda ... hai notato l'opzione "--decode" dell'app della riga di comando di LAME? :) Questo dovrebbe risolvere il tuo problema se stai usando LAME come codificatore. La lunghezza dell'uscita deve corrispondere all'input.


1

Voglio aggiungere questa discussione e un thread superutente alla discussione:


Grazie per la risposta, ma non aiuta. LAME conferma in quel file di testo che in effetti aggiungono silenzio all'audio. Ma ci deve essere un modo per aggirare il silenzio in MP3, ad esempio Adobe ha trovato un modo. Quando si aggiunge un WAV in Flash e lo si imposta su loop, non viene aggiunto alcun gap silenzioso nell'MP3 risultante al momento dell'esportazione. Quale magia ha trovato Adobe? Macromedia (il creatore di Flash) sono stati quelli che hanno fatto funzionare questa magia in Flash. Qualcuno sa come lo fanno?
Niklas


Ho provato a provarlo ma non viene fornito con il supporto MP3 dai binari precompilati disponibili e non sono abbastanza abile da compilarlo da solo. Ho notato che sox ha il supporto per le librerie "libmad" e "libtwolame" per creare MP3 (oltre a zoppo), quindi mi piacerebbe provarlo. Sai dove posso scaricare una versione sox con supporto MP3 precompilato?
Niklas

Mi dispiace, purtroppo no.
JohannesM,

0

Voglio fornire una risposta un po 'più concisa e più chiara.

Temo che non sia possibile creare file MP3 che vengano riprodotti in modo coerente senza lacune all'inizio e alla fine. Questo è noto come Riproduzione Gapless ed è un problema molto discusso.

Come dice almeno una delle altre risposte, esistono soluzioni alternative che funzionano con alcuni lettori musicali specifici.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.