#!/bin/bash # Vérifier si le nombre d'arguments est correct if [ $# -ne 1 ]; then echo "Usage: $0 fichier.mkv" exit 1 fi # Nom du fichier MKV en entrée input_file="$1" # Vérifier si le fichier MKV existe if [ ! -f "$input_file" ]; then echo "Le fichier $input_file n'existe pas." exit 1 fi # Extraire le nombre de pistes audio dans le fichier MKV num_audio_tracks=$(ffprobe -i "$input_file" -select_streams a -show_entries stream=index -of csv=p=0 | wc -l) # Vérifier s'il y a au moins une piste audio if [ "$num_audio_tracks" -eq 0 ]; then echo "Le fichier MKV ne contient aucune piste audio." exit 1 fi # Créer un répertoire pour stocker les fichiers audio extraits output_dir="${input_file%.mkv}_audio_tracks" mkdir -p "$output_dir" # Boucler à travers chaque piste audio et les extraire dans leur format natif for ((i = 0; i < num_audio_tracks; i++)); do output_file="$output_dir/audio_track_$i.$(ffprobe -i "$input_file" -select_streams a -show_entries stream=codec_name -of csv=p=0 -v 0 | sed -n "$(($i+1))p")" ffmpeg -i "$input_file" -map "a:$i" "$output_file" echo "Piste audio $i extraite dans $output_file." done echo "Extraction terminée. Les fichiers audio sont stockés dans le répertoire $output_dir."