Quelle est la meilleure façon d'extraire l'audio d'un fichier vidéo?

19

Je suis un grand fan de HandBrake . C'est la quintessence du simple. Sélectionnez un fichier vidéo (ou DVD), sélectionnez un préréglage, sélectionnez un chemin de sortie, cliquez sur Démarrer. Un certain temps plus tard par rapport à la taille / qualité du contenu, et vous avez vous-même un fichier vidéo à peu près parfait adapté au support de votre choix.

Je cherchais des qualités similaires dans un convertisseur audio, et plus préférablement, un extracteur audio (à partir d'un fichier vidéo donné). J'aimerais pouvoir faire glisser un fichier vidéo dans une application, spécifier que je veux le fichier audio dans AAC à un débit donné, cliquer sur Démarrer et laisser l'application faire le reste.

Je ne suis pas opposé à l'utilisation de Handbrake pour suffire à l'aspect de conversion de cela, tant que l'extraction audio après coup est un processus simple. Il s'agit de prendre le moins de mesures possible.

Des conseils? Applications? Des idées?

Jason Salaz
la source
La fission est un bon utilitaire pour extraire des données audio à partir d'un fichier vidéo, et je m'apprêtais à le faire à l'ancienne, piste par piste, manuellement. Pas ma préférence. J'ai eu l'idée par la suite de l'appliquer, mais malheureusement, il semble que Fission ne dispose pas d'un dictionnaire AS.
Jason Salaz
@Jason a envisagé des scripts d'interface utilisateur pour parler à Fission?
Nathan Greenstein,
Est-ce généralement Applescript primitif lorsqu'une application donnée n'a pas de dictionnaire? Cliquez sur le menu nommé "Fichier". Cliquez sur l'élément de menu nommé "Enregistrer". Des trucs plus ou moins comme ça?
Jason Salaz
@Jason yep. Mais peut-être mieux que de le faire à la main, selon le nombre de ceux que vous prévoyez de traverser.
Nathan Greenstein
Je suis tombé sur une entrée sur la FAQ de I just want audio, not video. Can I do that? Not with HandBrake, no. You could just encode the video at a low resolution with a fast low quality encoder like ffmpeg, then extract the audio track. Or you could use Handbrake aujourd'hui: OSEx . Malheureusement, c'est uniquement PPC. Booooo!
Jason Salaz

Réponses:

22

J'ai finalement trouvé la combinaison exacte dont j'avais besoin et je l'ai trouvée dans ffmpeg .

Je vais développer un peu la question et préciser le fait que je travaillais déjà avec du mp4 contenant de la vidéo / audio, donc MP4 Video (.m4v) et AAC Audio (.m4a). Je voulais absolument une version en l'état de l'audio extrait de la vidéo.

Tout d'abord, il est assez facile d'installer des choses comme ffmpeg, mplayer, des choses construites à partir d'eux et des packages open source similaires de nos jours. Entre Rudix , Homebrew , MacPorts et Fink (est-ce que quelqu'un utilise encore Fink?), Un logiciel tiers est un jeu d'enfant à installer.

Donc, après avoir installé ffmpeg et l'avoir ffmpegaccessible sur la ligne de commande, j'ai exécuté une commande comme celle-ci:

ffmpeg -i videofile.mp4 -vn -acodec copy audiotrack.m4a

ffmpeg : La commande.

-i videofile.mp4 : le fichier vidéo source.

-vn : Ne pas enregistrer (ne pas considérer) les données vidéo.

-acodec copy : copiez la source audio telle quelle , voici où réside toute la magie. ffmpeg écrira les données audio sous forme de divers codecs pris en charge, mais la spécification de la copie entraîne une copie exacte bit par bit du flux. Couplé à la désactivation de la vidéo via -vn, vous disposez d'une piste audio isolée à l'intérieur d'un conteneur mp4.

audiotrack.m4a : le nom du fichier de sortie.

Je ne peux pas croire que quelque chose comme ça ait été si difficile et caché pendant si longtemps.

Comme j'ai toujours l'intention d'extraire les données audio aac d'un conteneur / vidéo mp4, j'ai écrit un petit script rapide pour le faire.

#!/bin/bash

INFILE="$1"
TMPOUTFILE="${INFILE%.*}"
OUTFILE="${TMPOUTFILE##*/}.m4a"

ffmpeg -i "${INFILE}" -vn -acodec copy "${OUTFILE}"

Maintenant, j'invoque simplement rip_m4a_from_mp4 somevideofile.mp4et je me retrouve avec une version audio uniquement avec le même nom de fichier, se terminant par m4a à la place.

Facile! Pour moi en tout cas. Pas d'interface graphique, rapide comme l'éclair, ce n'est qu'une de ces choses que la ligne de commande fait mieux.

Jason Salaz
la source
Il est possible de remplacer la m4aligne 5 par $2et de spécifier la nouvelle extension sur la ligne de commande. De cette façon, si vous travaillez avec autre chose et que vous savez ce qu'est l'audio, vous pouvez le spécifier. Je peux le faire moi-même et changer le nom du script en «rip_audio_from_video». Générique!
Jason Salaz
Pour commencer. ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"alors brew install ffmpeg. Suivez maintenant les instructions ci-dessus.
boyfarrell
La page d' accueil de homebrew est brew.sh . Après avoir suivi les instructions sur cette page (juste au cas où ils changent), brew install ffmpeg. Et puis oui, alors vous pouvez suivre mes étapes.
Jason Salaz
2
Si vous ne voulez ré-encoder l'audio dans un autre format, ffmpegpeut le faire dans la même commande. Par exemple: ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3( catswhocode.com/blog/19-ffmpeg-commands-for-all-needs )
alexw
1
@alexw assurez-vous de spécifier 192k, pas 192. Sinon, il reviendra à un encodage à 128kbit / s.
smets.kevin
12

Vous pouvez le faire directement dans le Finder, en commençant par Mac OS X 10.7 (Lion), comme décrit dans OSX Daily .

La réponse courte est, sélectionnez le ou les fichiers dans le Finder, puis ctrlcliquez sur et choisissez Services -> Encoder les fichiers vidéo sélectionnés .

Notez que vous devrez peut-être activer ce service dans le volet de préférences Clavier .

entrez la description de l'image ici

Craig S. Cottingham
la source
Hou la la! Très pratique! Une autre raison d'utiliser un Mac!
Javad Sadeqzadeh
Dans mon cas, la taille du m4afichier résultant par rapport à l'utilisation ffmpegétait plus de 3 fois supérieure. Cela pourrait être un problème, en particulier pour les fichiers plus volumineux.
Casimir
6

Je ferais glisser le film dans GarageBand. GarageBand divisera le fichier en audio et vidéo, auquel cas vous pouvez supprimer la piste vidéo (vous laissant juste la piste audio).

Vous pouvez ensuite cliquer sur l'option Envoyer la chanson vers iTunes dans le menu Partager (voir photo). Vous obtiendrez alors les différents formats vers lesquels vous souhaitez exporter.

entrez la description de l'image ici

Mieux encore, c'est gratuit :) car tous les Mac sont livrés avec GarageBand. De plus, il vous permet également de régler des aspects de l'audio tels que la vitesse et le volume.

Cela dit, si vous voulez une solution vraiment automatique et que vous êtes à l'aise dans la ligne de commande avec Terminal, faites-le moi savoir dans les commentaires et je proposerai un script pour vous permettre de le faire.

robzolkos
la source
Je n'ai pas l'intention de le faire pour une raison (sauf erreur, n'hésitez pas à me corriger): Recompression. Les fichiers vidéo ont déjà des données audio considérablement compressées, et je souhaite conserver autant que possible les données audio d'origine. La fonction de tueur de Fission est "l'édition et la réexportation sans perte". Sans parler du fait que GarageBand est vraiment très lent pour des tâches comme celle-ci: /. Cependant, c'est une merveilleuse solution pour une tâche qui remplit le sujet, je vous ai donc attribué +1 pour cet aspect.
Jason Salaz
4

Quicktime 7 fera le travail très facilement.

Ouvrez simplement la vidéo et allez dans Fichier > Exporter > Son vers AIFF / AU / Wave > sélectionnez votre chemin et vous avez terminé! :)

nuc
la source
On dirait que j'ai peut-être besoin de trouver mon disque Snow Leopard ...
Jason Salaz
@vxjasonxv vous n'avez pas à le faire. Vous pouvez télécharger via le lien fourni ..
nuc
Oh merci! Je ne pensais pas vraiment que le lien serait réellement substantiel de cette manière.
Jason Salaz
1
Le même écueil que j'ai ajouté à la réponse de Rob s'applique-t-il ici? Je peux "enregistrer une onde" de l'audio, mais il est déjà compressé, et en théorie, pour l'utiliser, je devrais le recompresser, ce que je préfère ne pas faire.
Jason Salaz
4

QuickTime Player 10 est également capable d'exporter de l'audio (sans ré-encodage).

Sélectionnez Fichier> Exporter> Audio uniquement…

Testé sur macOS 10.12 Sierra avec QuickTime Player 10.4.

Melebius
la source
1
Mais cela réencode-t-il l'audio?
Jason Salaz
1
@JasonSalaz Non, il suffit d'extraire. C'est à mon humble avis une meilleure option. Il est assez rapide et préserve la qualité. De plus, vous pouvez le ré-encoder à tout moment plus tard.
Melebius
1
Impressionnant. Ma réponse ffmpeg est également extraire uniquement, donc cela ne prend probablement que autant de temps que QuickTime. L'avantage de ffmpeg est qu'il n'a pas le poids de charge UI inhérent, il est donc sans aucun doute plus rapide à 1 fichier et exponentiellement plus rapide à de nombreux fichiers. Mais c'est une excellente réponse pour quelqu'un versé dans Automator / Applescripting, et peut-être pas aussi à l'aise en ligne de commande ou avec des scripts shell.
Jason Salaz
0

J'ouvre simplement le fichier vidéo avec audace, puis j'exporte l'audio. Je peux définir les paramètres du fichier audio exporté lors de l'exportation.

ttercek
la source
Définir les paramètres du fichier audio signifie ré-encoder l'audio. Audacity a-t-il une option d'intercommunication (extraction inchangée)?
Jason Salaz