Extraire le wav de MP4 tout en préservant la plus haute qualité possible

39

J'ai parcouru la documentation et je peux extraire un wavfichier d'un mp4fichier avec la commande:

ffmpeg -i my_video.mp4 output_audio.wav

Cependant, comment puis-je contrôler la qualité du wavfichier? (par exemple, je veux préserver autant que possible la qualité du son original)

Amelio Vazquez-Reina
la source

Réponses:

20

wavLes fichiers contiennent généralement de l'audio non compressé. C'est la valeur par défaut lors de la production d'un wavfichier avec ffmpeg. Ainsi, votre commande préservera déjà la qualité maximale, car il n'y a pas de compression avec perte (ni de compression d'aucune sorte) pour réduire la qualité.

En supposant que l'audio d'origine soit compressé, vous pouvez conserver la même qualité sans la taille de fichier importante nécessaire pour l'audio non compressé en copiant simplement l'audio d'origine (sans la vidéo) dans un nouveau mp4fichier:

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

Vous pouvez également le recoder ou le convertir en un codec audio différent, mais si ce codec utilise une compression avec perte, la qualité sera alors perdue.

mark4o
la source
Merci. Qu'en est-il du taux d'échantillonnage et du nombre d'octets par seconde? Comment ffmpeg les choisit-il automatiquement?
Amelio Vazquez-Reina
Le taux d'échantillonnage sera le même que celui de l'entrée. Comme il est décompressé, le débit du wavfichier est simplement le taux d' échantillonnage × la taille de l'échantillon × le nombre de canaux . Si vous souhaitez réduire la qualité, vous pouvez demander ffmpegà le rééchantillonner à un taux inférieur, réglez-le sur PCM 8 bits ou sous-mixage sur mono, mais cela ne se produit pas par défaut.
mark4o
1
BTW, vous pouvez également lui demander de ré-échantillonner à un taux plus élevé, mais cela ne ferait qu'augmenter la taille du fichier et non la qualité;
mark4o
1
Sur mon système avec Ubuntu 14.04, je devais utiliser -acodec copyau lieu de-c copy -map 0:a
Daniel Alder
Cela n'exporte pas en tant que fichier wave et ne répond pas à la question.
Andrew
22

Extraction d’audio sans perte / avec perte de vidéos ( flv / mp4 to wav / flac / mp3) Utilisation de la ffmpegversion 2.3.1 dans Ubuntu 14.04

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

Tout d'abord trouver les données de base de la source. Ouvrez la vidéo dans VLC Player. Aller à

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

Considérons un fichier d'entrée ( -i), tel que, input.mp4ou d'autres fichiers- flv, avi, ...). Pour supprimer la vidéo ( -vn) et extraire l'audio non compressé ( output.wav) à une fréquence d'échantillonnage de 44100 Hz ( -ar 44100) en code pulsé modulé avec des -acodec pcm_s16leéchantillons signés, 16 bits, little endian ( ) et 2 canaux (stéréo) ( -ac 2), utilisez la commande suivante.

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

Les autres -acodecoptions sont mp3 flac m4a.

-acode flacconvertit en fichier 24 bits. Pour l'échantillonnage 16 bits, il devrait être

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

Les fichiers wav et flac sont plus volumineux que le fichier mp4

ac3la conversion fonctionne avec -acodec 3F2R/LFE -ac 6mais crée 4 pistes fictives, comme vérifié dans Audacity.

Pour la conversion mp3, utilisez simplement

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

On pourrait obtenir plus d'options pour les entrées et les sorties en essayant à partir de la liste obtenue en ligne de commande sur le terminal.

$ ffmpeg -help
dr.murli
la source
1
Cela ne répond pas à la question. L'OP sait déjà comment extraire l'audio sous forme de fichier WAV. Ils demandent comment contrôler la qualité - ce qui bien sûr n'est pas vraiment possible, et aurait donc dû être la réponse (comme celle de mark4o). MP3 et FLAC sont également hors de portée ici.
Slhck
Je suis venu à ce lien pour une solution et quand je travaillais, j'ai eu plus que ce que j'ai mentionné. Le problème, tel que je le comprenais et sur lequel je travaillais aussi, est "comment puis-je contrôler la qualité du fichier wav? (Par exemple, disons que je veux préserver la qualité du son original autant que je peux)". Je ne suis pas un technicien, mais un amateur et un nouveau pour Ubuntu et ffmpeg. $ ffmpeg -i input.mp4 donne également toute la qualité de départ et les options peuvent être ajoutées en conséquence pour obtenir le maximum.
dr.murli
Unknown encoder 'pcm_s161e's'il vous plaît donner des conseils sur la façon de résoudre ce problème.
kRazzy R