J'ai essayé de convertir un fichier .m4a
en un fichier .mp3
en utilisant ffmpeg
à l'aide de la commande suivante:
$ ffmpeg -i music.m4a music.mp3
Malheureusement, un fichier de zéro octet a été renvoyé en sortie. La sortie de la commande est la suivante:
FFmpeg version 0.6-4:0.6-2ubuntu6.2, Copyright (c) 2000-2010 the FFmpeg developers
built on Sep 16 2011 17:11:24 with gcc 4.4.5
configuration: --extra-version=4:0.6-2ubuntu6.2 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-vaapi --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-x11grab --enable-libdc1394 --enable-shared --disable-static
WARNING: library configuration mismatch
libavutil configuration: --extra-version=4:0.6-2ubuntu6.2 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-vaapi --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
libavcodec configuration: --extra-version=4:0.6-2ubuntu6.2 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-vaapi --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
libavformat configuration: --extra-version=4:0.6-2ubuntu6.2 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-vaapi --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
libavdevice configuration: --extra-version=4:0.6-2ubuntu6.2 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-vaapi --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
libavfilter configuration: --extra-version=4:0.6-2ubuntu6.2 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-vaapi --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
libswscale configuration: --extra-version=4:0.6-2ubuntu6.2 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-vaapi --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
libpostproc configuration: --extra-version=4:0.6-2ubuntu6.2 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-vaapi --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
libavutil 50.15. 1 / 50.15. 1
libavcodec 52.72. 2 / 52.72. 2
libavformat 52.64. 2 / 52.64. 2
libavdevice 52. 2. 0 / 52. 2. 0
libavfilter 1.19. 0 / 1.19. 0
libswscale 0.11. 0 / 0.11. 0
libpostproc 51. 2. 0 / 51. 2. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'music.m4a':
Metadata:
major_brand : M4A
minor_version : 0
compatible_brands: M4A mp42isom
Duration: 00:00:03.41, start: 0.000000, bitrate: 66 kb/s
Stream #0.0(und): Audio: aac, 44100 Hz, mono, s16, 63 kb/s
Output #0, mp3, to 'music.mp3':
Stream #0.0(und): Audio: 0x0000, 44100 Hz, mono, s16, 64 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Encoder (codec id 86017) not found for output stream #0.0
Comment convertir un fichier son .m4a
en un format de fichier .mp3
?
Cela a fonctionné pour moi sur Ubuntu 14.04:
avconv -i input.m4a ouptut.mp3
Pour obtenir la commande avconv
, installez libav-tools :
Sudo apt-get install libav-tools
Le moyen simple de le faire est:
ffmpeg -v 5 -y -i input.m4a -acodec libmp3lame -ac 2 -ab 192k output.mp3
Si vous voulez qu'un script enveloppe cela, essayez aac2mp , ce qui devrait fonctionner pour vous. (La syntaxe de cette dernière instruction a été extraite de là.) Code en ligne inclus ci-dessous:
#!/bin/bash
#
# $Id: aac2mp3,v 1.2 03/30/2008 10:00 Daniel Tavares ([email protected]) -
# Based on Script - rali Exp $
#
#
# Convert one or more AAC/M4A files to MP3. Based on a script example
# I found at: http://gimpel.gi.funpic.de/Howtos/convert_aac/index.html
#
ME=`basename ${0}`
FFMPEG="/usr/bin/ffmpeg"
EXT="mp4"
BITRATE="128"
do_usage() { # explanatory text
echo "usage: ${ME} [-b nnn] [-e ext] [-f] [-c] [-r] [-v] [-h] [file list]"
echo " Convert music from AAC format to MP3"
echo " -m /path/app Specify the location of ffmpeg(1)"
echo " -b nnn bitrate for mp3 encoder to use"
echo " -e ext Use .ext rather than .m4a extension"
echo " -f Force overwrite of existing file"
echo " -c Delete original AAC|M4A file(s)"
echo " -v Verbose output"
echo " -h This information"
echo ""
echo "For recursive directory, use: find -name '*.${EXT}' -exec ${ME} "{}" [args] \;"
exit 0
}
do_error() {
echo "$*"
exit 1
}
file_overwrite_check() {
if [ "$FORCE" != "yes" ]
then
test -f "${1}" && do_error "${1} already exists."
else
test -f "${1}" && echo " ${1} is being overwritten."
fi
}
create_mp3() { # use ffmpeg(1) to convert from AAC to MP3
file_overwrite_check "${2}"
test $VERBOSE && echo -n "Converting file: ${1}"
${FFMPEG} -v 5 -y -i "${1}" -acodec libmp3lame -ac 2 -ab ${BITRATE}k "${2}";
if [ $? -ne 0 ]
then
echo ""
echo "Error!"
do_cleanup
do_error "Exiting"
fi
test $VERBOSE && echo ". OK"
}
do_cleanup() { # Delete intermediate and (optionally) original file(s)
test ${RMM4A} && rm -f "${1}"
test $VERBOSE && echo ". OK"
}
do_set_bitrate() {
test $VERBOSE && echo -n "Setting bitrate to: $1 kbps"
BITRATE=$1
test $VERBOSE && echo ". OK"
}
GETOPT=`getopt -o l:m:b:e:cfhrv -n ${ME} -- "$@"`
if [ $? -ne 0 ]
then
do_usage
fi
eval set -- "$GETOPT"
while true
do
case "$1" in
-m) FFMPEG=$2 ; shift ; shift ;;
-b) do_set_bitrate $2 ; shift ; shift ;;
-e) EXT=$2 ; shift ; shift ;;
-f) FORCE="yes" ; shift ;;
-c) RMM4A="yes" ; shift ;;
-v) VERBOSE="yes" ; shift ;;
-h) do_usage ;;
--) shift ; break ;;
*) do_usage ;;
esac
done
test -f $FFMPEG || do_error "$FFMPEG not found. Use \"-m\" switch."
if [ $# -eq 0 ]
then # Convert all files in current directory
for IFILE in *.${EXT}
do
if [ "${IFILE}" == "*.${EXT}" ]
then
do_error "Not found ${EXT} in this folder."
fi
OUT=`echo "${IFILE}" | sed -e "s/\.${EXT}//g"`
create_mp3 "${IFILE}" "${OUT}.mp3"
do_cleanup "${IFILE}"
done
else # Convert listed files
for IFILE in "$*"
do
test -f "${IFILE}" || do_error "${IFILE} not found."
OUT=`echo "${IFILE}" | sed -e "s/\.${EXT}//g"`
create_mp3 "${IFILE}" "${OUT}.mp3"
do_cleanup "${IFILE}"
done
fi
exit 0
SoundConverter peut le faire sans perdre son temps en ligne de commande, et il est disponible dans le Centre logiciel Ubuntu:
J'avais besoin d'une solution alternative car - mes fichiers se trouvaient dans des sous-répertoires récursifs - j'avais des espaces dans les chemins.
Alors je me suis finalement installé pour:
find . -type f -name '*.m4a' -exec bash -c 'avconv -i "$0" "${0/%m4a/mp3}"' '{}' \;
Puis supprimé les fichiers d'origine:
find . -type f -name '*.m4a' -exec bash -c 'rm "$0"' '{}' \;
J'ai créé un script pour le faire.
Mes exigences étaient:
Fonctionne sur tous les fichiers m4a d'un répertoire et génère les nouveaux fichiers Mp3 brillants dans un dossier créé par le script, appelé Mp3. Attention; ce script remplace les fichiers MP3 existants dans le dossier de sortie s'ils portent le même nom. Utilise également les fichiers 'metadata.txt' et 'metadata2.txt' en tant que fichiers temporaires.
Vous devrez installer avconv s'il n'existe pas déjà.
Je n'arrivais pas à comprendre comment conserver la balise 'Year' dans les balises ID3v1. Je n'ai donc pas activé cette option.
#!/bin/bash
files=*.m4a
#create output folder if it doesnt exist
if [ ! -d Mp3 ]; then
mkdir Mp3
fi
for file in $files; do
mp3File=${file/%m4a/mp3}
avconv -y -i "${file}" -f ffmetadata metadata.txt
sed -e 's/^date=\(.*\)$/TYER=\1/' -e 's/^major_brand=.*$//' -e 's/^minor_version=.*$//' -e 's/^creation.*$//' -e 's/^compatible.*$//' -e 's/^encoder=.*$//' <metadata.txt >metadata2.txt
avconv -y -i "${file}" -i metadata2.txt -ab 320k -map_metadata 1 -id3v2_version 3 "Mp3/${mp3File}"
done
Enregistrez-le sous 'convert.b', puis exécutez le script en tapant:
% bash convert.b
Parfois, avconv et ffmpeg ne fonctionnent pas aussi proprement, alors:
Sudo apt-get install faad lame
faad myfile.m4a -w | lame - myfile.mp3
travaille toujours pour moi.
Vous avez probablement besoin des paquets libav sans restriction dans le référentiel medibuntu. Personnellement, je voudrais compiler le dernier ffmpeg avec tous les codecs, aussi simple que 123 http://ubuntuforums.org/showthread.php?t=786095
Sur mon L-Ubuntu, libav-tools
n'était pas disponible. J'ai installé winff
:
Sudo apt-get install winff
qui fournit un outil graphique pour convertir des fichiers audio et vidéo à partir de et dans de nombreux formats différents.
Juste essayé: cela fonctionne bien pour .m4a
à .mp3
:-)
Sinon, vlc
fait également un excellent travail en lisant les fichiers .m4a
:
Sudo apt-get install vlc
Ancienne question, mais je ne vois pas de solution très simple: utilisez VLC
Dans VLC, vous pouvez charger un fichier . M4a et le convertir en . MP very easyllie.
Ouvrez VLC (pas besoin de charger aucun fichier)
Cliquez sur Media ou appuyez sur CTRL + R
Cliquez sur Conver/Save
Sur Profil sélectionnez MP
Sélectionner la destination
Cliquez sur Démarrer et attendez. Pour savoir si cela fait quelque chose ou pas, regardez la barre de temps.
J'espère que cela sera utile pour quelqu'un.
Je sais que cette question est un peu ancienne, mais je pense que les gens la voient encore (comme moi), je partage donc ce que j’ai trouvé qui a fonctionné pour moi et possède une interface utilisateur agréable: fre: ac ( https://www.freac.org/ ). Pour utiliser dans Ubuntu, il suffit de télécharger le fichier binaire pour Ubuntu, de décompresser et d’exécuter le fichier calle freac
name__, le tour est joué. Prendre plaisir!
Ce Nautilus Script permet à l’utilisateur de convertir les fichiers sélectionnés tels que m4a fichiers - en sauvegardant tous les fichiers mp3 ou non audio-- en mp formater au même endroit en utilisant ffmpeg. Les nouveaux fichiers mp3 auront le plus haut débit variable et seront préservés la plupart des tags, sauf l'année.
#!/bin/sh
#Nautilus Script to convert selected file(s) - excluding any non-audio and MP3 file(s) - to MP3 format at highest quality with VBR (Variable Bit Rate)
OLDIFS=$IFS
IFS="
"
for filename in $@; do
filetype="$(file -bi "$filename" | awk -F "; " '{print $1}' | awk -F "/" '{print $1}')"
if [ "$filetype" != audio ]; then
echo "Skip non-audio file"
else
filesubtype="$(file -bi "$filename" | awk -F "; " '{print $1}' | awk -F "/" '{print $2}')"
if [ "$filesubtype" != mpeg ]; then
file_name_in=$(basename "$filename")
file_name_out="$(basename "$filename" | sed 's/\.[^.]*$//').mp3"
ffmpeg -loglevel quiet -y -i "$file_name_in" -acodec libmp3lame -aq 0 "$file_name_out"
fi
fi
done
IFS=$OLDIFS
/usr/bin/canberra-gtk-play --id="dialog-information" &
notify-send "Selected file(s) converted to MP3 format, excluding any non-audio and MP3 file(s)" -i gtk-dialog-info -t 5 -u normal