Y a-t-il un moyen d'utiliser -acodec copy
avec -vn
pour:
- Extraire le flux audio d'un conteneur, tel que mp4
- Sans connaître le codec audio au préalable
- Et enregistrez-le dans un fichier audio avec l'extension appropriée
Y a-t-il un moyen d'utiliser -acodec copy
avec -vn
pour:
Réponses:
La raison pour laquelle ce n'est pas une option simple dans ffmpeg est parce que vous avez besoin d'un moyen de décider quel conteneur utiliser pour la sortie.
Si vous avez déterminé quelle extension de fichier utiliser pour chaque codec et si vous avez nommé le fichier avec cette extension, ffmpeg écrira le fichier de sortie dans le conteneur approprié pour vous. La façon (malheureusement) la plus simple de le faire, à laquelle je peux penser, est un script Python 2:
import re
import subprocess
import sys
EXTENSIONS_BY_CODEC = {'mp3': '.mp3', 'aac': '.m4a'}
# Add more codecs as desired
_, infile, outfile = sys.argv
_, detect_data = subprocess.Popen(('ffmpeg', '-i', infile),
stderr=subprocess.PIPE).communicate()
codec = re.search(r'Audio: ([^,]+),', detect_data).group(1)
if codec in EXTENSIONS_BY_CODEC:
sys.exit(subprocess.call(('ffmpeg', '-i', infile, '-acodec', 'copy', '-vn',
outfile + EXTENSIONS_BY_CODEC[codec])))
else:
print >>sys.stderr, 'Extension not found for codec:', codec
sys.exit(2)
jetez un oeil à handbrake, gui pour ffmpeg avec la sortie en ligne de commande (et commande) (si vous voulez le porter sur un script quelconque)