Unisci due canali audio (stereo) in uno (mono) su GSM6.10 usando FFMPEG


27

Vorrei sapere se è possibile unire l'audio stereo in mono su un file audio GSM6.10 usando FFMPEG. In tal caso, fornire il comando per raggiungere questo obiettivo.
Altrimenti, è possibile convertire GSM6.10 in WAV PCM con FFMPEG? Potrei quindi unire i canali sul PCM WAV.

Se esiste un altro strumento gratuito in grado di farlo, posso provarlo anche io.

Risposte:


42

Il modo di "mixdown" da stereo a mono in qualsiasi file supportato in ffmpeg è così:

ffmpeg -i file.ext -ac 1 file_mono.ext

Il bit "-ac 1" indica a ffmpeg di emettere solo 1 canale audio, ovvero mono. Per impostazione predefinita, questa operazione manterrà il formato del file ma ripristinerà il bitrate al valore predefinito di ffmpeg di 64 kbs. Se vuoi un bitrate più alto, puoi fare:

ffmpeg -i file.ext -ac 1 -ab 192k file_mono.ext

... sostituendo 192k con il tuo bitrate preferito.

Nota che l'installazione di ffmpeg deve supportare il tuo particolare codec GSM affinché funzioni correttamente. So che parte dell'audio con codifica GSM è supportato in ffmpeg tramite libgsm, ma non ho mai gestito i file GSM da solo. Tuttavia, ho convertito con successo altri tipi di file (MP3) in mono senza intoppi.


3
Si tratta davvero di mixare o semplicemente di abbandonare i canali?
Jonny,

Dalla documentazione del filtro 'pan': "Nota che ffmpeg integra un sistema down-mix predefinito (e up-mix) che dovrebbe essere preferito (vedi l'opzione" -ac ") a meno che tu non abbia esigenze molto specifiche."
Smetti di fare del male a Monica il

I file di input e output devono essere solo file audio. L'ingresso non può essere video.
Kevin,

1
Manipolazione dei canali audio "Mescola un singolo flusso stereo in un flusso mono. Entrambi i canali del flusso stereo verranno sottoposti a downmix nel flusso:"ffmpeg -i stereo.flac -ac 1 mono.flac
Joel Purra,

@Kevin - l'input può essere un file video, ho appena verificato, (con o senza -vn)
Berry Tsakala,

7

La risposta sopra funziona nel caso in cui si desideri ancora convertire tra formati, ma per file lunghi che possono richiedere molto tempo. O forse non vuoi convertire ancora una volta, degradando la qualità, e quindi potresti voler solo eseguire lo streaming della copia. L'uso di -codec: a e -ac 1 allo stesso tempo non funziona, ma in base alla documentazione del filtro pan di ffmpeg, se vengono soddisfatte determinate condizioni (come se non si regolassero i livelli dei canali o si mischiassero due canali in uno) , riconoscerà questo caso e segnalerà: "Rilevata mappatura dei canali puri" e eseguirà una copia dello stream, che è molto più veloce.

Ad esempio: per rendere un file stereo mono usando solo il canale sinistro e copiando semplicemente il flusso video, procedere come segue:

ffmpeg -i infile.ext -codec:v copy -af pan="mono: c0=FL" outfile.ext

0

So che è possibile con Sox .... Uso Sox per la manipolazione dei canali, kdenlive e audacia per il montaggio delicato e ffmpeg per il remuxing. solo per farti sapere cosa ha funzionato bene per me in passato.


0

Per preservare il video, ho usato una combinazione di due risposte sopra:

ffmpeg -i infile -codec:v copy -ac 1 -ab 192k outfile

Ciò ha prodotto una soluzione sufficiente per me.

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.