Extrair wav de mp4, preservando a mais alta qualidade possível

39

Examinei a documentação e posso extrair um wavarquivo de um mp4arquivo com o comando:

ffmpeg -i my_video.mp4 output_audio.wav

No entanto, como posso controlar a qualidade do wavarquivo? (por exemplo, diga que quero preservar a qualidade do áudio original o máximo possível)

Amelio Vazquez-Reina
fonte

Respostas:

20

wavarquivos normalmente contêm áudio não compactado, e esse é o padrão ao produzir um wavarquivo usandoffmpeg . Portanto, seu comando já preservará a qualidade máxima, pois não há compactação com perdas (ou compactação de qualquer tipo) para reduzir a qualidade.

Supondo que o áudio original seja compactado, você pode manter a mesma qualidade sem o tamanho de arquivo grande necessário para o áudio não compactado, copiando apenas o áudio original (sem o vídeo) para um novo mp4arquivo:

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

Você também pode recodificá-lo ou convertê-lo em um codec de áudio diferente, mas se esse codec usar compressão com perda, a qualidade será perdida.

mark4o
fonte
Obrigado. E a taxa de amostragem e o número de bytes por segundo? Como o ffmpeg os escolhe automaticamente?
Amelio Vazquez-Reina
A taxa de amostragem será a mesma da entrada. Porque é descompactado, a taxa de bits para o wavarquivo é simplesmente a taxa de amostragem × tamanho da amostra × número de canais . Se você deseja reduzir a qualidade, pode pedir ffmpegpara redimensioná-la para uma taxa mais baixa, altere para PCM de 8 bits ou downmix para mono, mas não o faz por padrão.
mark4o
1
BTW, você também pode pedir uma nova amostra a uma taxa mais alta, mas isso apenas aumentaria o tamanho do arquivo e não a qualidade, por isso não há muito sentido nisso, a menos que você precise de uma taxa de amostragem específica.
mark4o
1
No meu sistema com o Ubuntu 14.04 eu tive que usar em -acodec copyvez de-c copy -map 0:a
Daniel Alder
Isso não é exportado como um arquivo wave e não responde à pergunta.
Andrew
22

Extraindo áudio sem perdas / com perdas de vídeos ( flv / mp4 to wav / flac / mp3) Usando a ffmpegversão 2.3.1 no Ubuntu 14.04

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

Primeiro, encontre os dados básicos da fonte. Abra o vídeo no VLC Player. Vamos para

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

Considere um arquivo de entrada ( -i), como, input.mp4ou outros arquivos- flv, avi, ...). Para remover o vídeo ( -vn) e retirar o áudio sem compressão ( output.wav) a uma taxa de amostragem de 44100 Hz ( -ar 44100) no código de pulso modulado com -acodec pcm_s16leamostras assinadas de 16 bits, little endian ( ) e 2 canais (estéreo) ( -ac 2), use o seguinte comando.

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

Outras -acodecopções são mp3 flac m4a.

-acode flacconverte em arquivo de 24 bits. Para amostragem de 16 bits, deve ser

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

os arquivos wav e flac são maiores que o arquivo mp4

ac3a conversão funciona com, -acodec 3F2R/LFE -ac 6mas cria 4 faixas fictícias, conforme verificado no Audacity.

Para conversão de mp3, basta usar

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

Pode-se obter mais opções para entrada e saída tentando a partir da lista obtida na linha de comando no terminal

$ ffmpeg -help
dr.murli
fonte
1
Isso não responde à pergunta. O OP já sabe como extrair o áudio como um arquivo WAV. Eles estão perguntando como controlar a qualidade - o que obviamente não é realmente possível e, portanto, deveria ter sido a resposta (como a de mark4o). MP3 e FLAC também estão fora do escopo aqui.
slhck
Eu vim para este link para uma solução e, quando eu estava trabalhando, obtive um pouco mais, como mencionei. A questão que eu entendi e também estava trabalhando também é "como posso controlar a qualidade do arquivo wav?" (Por exemplo, digamos que quero preservar a qualidade do áudio original o máximo possível) ". Eu não sou um técnico, mas um hobby e novo no Ubuntu e ffmpeg. O $ ffmpeg -i input.mp4 também oferece toda a qualidade inicial e as opções podem ser adicionadas de acordo para obter o máximo.
dr.murli
Unknown encoder 'pcm_s161e'por favor, informe sobre como resolver isso.
Krazzy R