Estrarre wav da mp4 preservando la massima qualità possibile


39

Ho esaminato la documentazione e posso estrarre un wavfile da un mp4file con il comando:

ffmpeg -i my_video.mp4 output_audio.wav

Tuttavia, come posso controllare la qualità del wavfile? (es. dire che voglio preservare il più possibile la qualità dell'audio originale)

Risposte:


20

wavi file in genere contengono audio non compresso, e questo è il valore predefinito quando si produce un wavfile usando ffmpeg. Quindi il tuo comando manterrà già la massima qualità, poiché non vi è alcuna compressione con perdita (o compressione di alcun tipo) per ridurla.

Supponendo che l'audio originale sia compresso, è possibile mantenere la stessa qualità senza le grandi dimensioni del file necessarie per l'audio non compresso copiando semplicemente l'audio originale (senza il video) in un nuovo mp4file:

ffmpeg -i my_video.mp4 -c copy -map 0:a output_audio.mp4

Potresti anche ricodificarlo o convertirlo in un codec audio diverso, ma se quel codec utilizza una compressione con perdita, la qualità andrà persa.


Grazie. Che dire della frequenza di campionamento e del numero di byte al secondo? In che modo ffmpeg li sceglie automaticamente?
Amelio Vazquez-Reina,

La frequenza di campionamento sarà la stessa di quella dell'input. Perché è compresso, il bitrate per il wavfile è semplicemente la frequenza di campionamento × dimensione del campione × numero di canali . Se si desidera ridurre la qualità, è possibile richiedere ffmpegdi ricampionarlo a una velocità inferiore, modificarlo in PCM a 8 bit o downmix in mono, ma per impostazione predefinita non lo fa.
mark4o

1
A proposito, potresti anche chiedergli di ricampionare a una velocità superiore, ma ciò aumenterebbe solo la dimensione del file e non la qualità, quindi non ha molto senso a meno che non sia necessario un tasso di campionamento specifico.
mark4o

1
Sul mio sistema con Ubuntu 14.04 ho dovuto usare -acodec copyinvece di-c copy -map 0:a
Daniel Alder l'

Questo non viene esportato come file wave e non risponde alla domanda.
Andrew,

22

Estrarre Lossless / Lossy Audio dai video ( flv / mp4 to wav / flac / mp3) Utilizzando la ffmpegversione 2.3.1 in Ubuntu 14.04

Visita: http://howto-pages.org/ffmpeg/

Prima di tutto trova i dati di base dalla fonte. Apri il video in VLC Player. Vai a

> Tools > Codec Information 
> Stream 0 (Video/ Codec/ Resolution/ Frame rate) 
> Stream 1 (Audio/ Codec/ Channel/ Sample rate)

Considera un file di input ( -i), come, input.mp4o altri file- flv, avi, ...). Per rimuovere il video ( -vn) ed estrarre l'audio non compresso ( output.wav) a una frequenza di campionamento di 44100 Hz ( -ar 44100) in un codice a impulsi modulato con -acodec pcm_s16lecampioni firmati, a 16 bit, little endian ( ) e 2 canali (stereo) ( -ac 2) utilizzare il comando seguente.

ffmpeg -i input.mp4 -vn -acodec pcm_s16le -ar 44100 -ac 2 output.wav

Altre -acodecopzioni sono mp3 flac m4a.

-acode flacconverte in file a 24 bit. Per il campionamento a 16 bit dovrebbe essere

ffmpeg -i input.mp4 -acodec flac -bits_per_raw_sample 16 -ar 44100 output.flac

I file wav e flac sono più grandi del file mp4

ac3la conversione funziona -acodec 3F2R/LFE -ac 6ma crea 4 tracce fittizie, come verificato in Audacity.

Per la conversione mp3, basta usare

ffmpeg -i input.mp4 -vn -acodec mp3 -ab 320k -ar 44100 -ac 2 output.mp3

Si potrebbero ottenere più opzioni sia per l'input che per l'output provando dall'elenco ottenuto dalla riga di comando sul terminale

$ ffmpeg -help

1
Questo non risponde alla domanda. L'OP sa già come estrarre l'audio come file WAV. Stanno chiedendo come controllare la qualità, il che ovviamente non è proprio possibile, e quindi avrebbe dovuto essere la risposta (come quella di mark4o). Anche MP3 e FLAC non rientrano nell'ambito di applicazione qui.
slhck,

Sono arrivato a questo link per una soluzione e quando stavo lavorando, ne ho ottenuto un po 'di più, come ho già detto. Il problema, come ho capito e su cui stavo anche lavorando, è "come posso controllare la qualità del file wav? (Ad esempio, dire che voglio preservare il più possibile la qualità dell'audio originale)". Non sono un tecnico, ma un hobbista e nuovo di Ubuntu e ffmpeg. $ ffmpeg -i input.mp4 fornisce anche tutta la qualità iniziale e le opzioni possono essere aggiunte di conseguenza per ottenere il massimo.
dr.murli,

Unknown encoder 'pcm_s161e'si prega di avvisare su come affrontare questo.
kRazzy R,
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.