M4a साउंड फ़ाइल को MP3 में कैसे बदलें?


64

मैंने निम्नलिखित कमांड के साथ एक .m4aफाइल को एक .mp3फाइल में बदलने की कोशिश की ffmpeg:

$ ffmpeg -i music.m4a music.mp3

दुर्भाग्य से, मुझे आउटपुट के रूप में एक शून्य बाइट-आकार की फ़ाइल मिली। कमांड का आउटपुट निम्नानुसार है:

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

मैं एक .m4aध्वनि फ़ाइल को .mp3फ़ाइल प्रारूप में कैसे बदल सकता हूं ?


1
Avconv स्थापित करें और इस स्क्रिप्ट का उपयोग करें: gist.github.com/bradenbest/cfba10c9df4b4c0daaab । आप उन ऑडियो प्रारूपों को बदलने के लिए fformatऔर tformatसंस्करण भी कॉन्फ़िगर कर सकते हैं जिनके बीच आप परिवर्तित कर रहे हैं।
ब्रैडेन बेस्ट

जवाबों:


51

इसने मेरे लिए Ubuntu 14.04 पर काम किया:

avconv -i input.m4a ouptut.mp3

avconvकमांड प्राप्त करने के लिए , libav-tools स्थापित करें लिबाव-उपकरण स्थापित करें:

sudo apt-get install libav-tools

16
एफएफएमपीजी को पदावनत नहीं किया जाता है। AvConv एक कांटा था जिसने उस संदेश को डालने का फैसला किया जब किसी ने इसे FFMPEG निष्पादन योग्य नाम से बुलाया
डेविड डेविस-जोन्स

2
FYI करें। 18.04 तक, लिबाव-टूल्स और एवोकॉन अब रिपोज में शामिल नहीं हैं।
केविन बोवेन

1
ffmpegसीधे उपयोग में , जैसा कि प्रश्न में निर्दिष्ट है, मेरे लिए ffmpeg 4.1.3 के साथ macOS 10.14.4 पर ठीक काम करता है।
रेडॉन रोसबोरो

44

यह करने का सरल तरीका है:

ffmpeg -v 5 -y -i input.m4a -acodec libmp3lame -ac 2 -ab 192k output.mp3

यदि आप एक स्क्रिप्ट को लपेटना चाहते हैं, तो aac2mp3 आज़माएं , जो आपके लिए काम करना चाहिए। (उस अंतिम कथन का वाक्य-विन्यास वहाँ से खींचा गया था।) इनलाइन कोड नीचे दिया गया है:

#!/bin/bash
#
# $Id: aac2mp3,v 1.2  03/30/2008 10:00 Daniel Tavares (dantavares@gmail.com) - 
# 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

1
मिला (पाठ की कई पंक्तियों के बाद) Unknown encoder 'libmp3lame' Error! Exiting:। साथ apt-get मैं देख सकता हूँ libmp3lame0और libmp3lame-dev। मैंने libmp3lame0 स्थापित करने की कोशिश की, लेकिन कुछ भी नहीं बदला।
टॉम ब्रिटो

1
ffmpegइसे avconvनए उबंटू / डेबियन रिलीज में बदल दिया गया है। Askubuntu.com/questions/432542/… देखें और इंस्टॉल करेंlibav-tools
डेनिलसन सिया

यह काम नहीं करता है क्योंकि ffmpeg उबंटू रिपोज में नहीं है ... और ना ही एवोकॉन या लिबाव-टूल्स हैं। जो कोई भी ऑडियो सॉफ़्टवेयर का प्रभारी है, कृपया उसके चारों ओर पैर रखना बंद करें और कुछ स्थिर करें?
पीटर फ्लिन

प्रश्न के अनुसार 'EXT = "mp4" को' EXT = "m4a" में बदलने की आवश्यकता है। समझ को सरल बनाने के लिए मैं निम्नलिखित व्याख्यात्मक पाठ जोड़ूंगा: '# EXAMPLE: वर्तमान निर्देशिका में सभी फाइलों को एक्सटेंशन के साथ "m4a" में "mp3" # bash SCRIPT_NAME -b 256 -v'
एडुआर्डो लुसियो

15.04 के रूप में, ffmpeg रिपोज में वापस है: webupd8.org/2014/11/ffmpeg-returns-to-official-ubuntu.html 18.04 के अनुसार, libav-tools और avconv अब उपलब्ध नहीं हैं।
केविन बोवेन

40

SoundConverter कमांड लाइन पर गड़बड़ करने के बिना ऐसा कर सकता है, और यह उबंटू सॉफ्टवेयर सेंटर में उपलब्ध है:

सॉफ्टवेयर केंद्र के माध्यम से स्थापित करें

soundcoverter मुख्य विंडो और Prefs

रूपांतरण inprogress


यदि आपके पास MusicBrainz
HDave

3
एक बैसाखी पर मसीह, क्या गड़बड़ है। साउंडकंट्रैक्टर विफल हो गया क्योंकि पायथन कुछ पैकेजों को याद कर रहा था, फिर उसने 20 से अधिक पैकेजों के लिए एक इंस्टॉलर विंडो को पॉपअप किया, जिसमें से कोई भी इसे स्थापित नहीं कर सका, निश्चित रूप से, क्योंकि यह रूट के रूप में नहीं चल रहा था। किसी को इंस्टॉलर और निर्भरता को फिर से लिखना होगा।
पीटर फ्लिन

कार्यक्रम Ubuntu 14.04 लोड नहीं करता है

वर्तमान में m4a से संबंधित साउंडकनेक्टर्स में एक बग है: Bugs.launchpad.net/soundconverter/+bug/1512007
krumpelstiltskin

5
मैं गुई के साथ खिलवाड़ से बचने की कोशिश कर रहा हूं: मैं इसे स्वचालित करना चाहता हूं।
सीटीटीएल-अल्ट-डेलोर

16

मुझे एक वैकल्पिक समाधान की आवश्यकता थी क्योंकि - मेरी फाइलें पुनरावर्ती उपनिर्देशिकाओं में बैठी थीं - मेरे पास पथ में स्थान थे।

इसलिए मैं आखिरकार इसके लिए तैयार हो गया:

 find . -type f -name '*.m4a' -exec bash -c 'avconv -i "$0" "${0/%m4a/mp3}"' '{}' \;

फिर मूल फ़ाइलों को हटा दिया गया:

find . -type f -name '*.m4a' -exec bash -c 'rm "$0"' '{}' \;

3
मेरे लिए, यह शीर्ष उत्तर है। एक छोटी सी बात - विलोपन को अधिक स्पष्ट रूप से व्यक्त किया जा सकता है:find . -type f -name '*.m4a' -delete
मार्क स्लेटर

2
मैंने -y और -b जोड़कर कमांड को संशोधित किया: 256k यह सुनिश्चित करने के लिए कि प्रोग्राम को मौजूदा एमपी-फाइलों को अधिलेखित करने की अनुमति देने के लिए रुकना नहीं है, और एक बेहतर गुणवत्ता के लिए (हालांकि मैंने मानक आउटपुट के बीच अंतर को नहीं पहचाना। 128kbit / s (जो मेरे मूल m4a का केवल आधा बिटरेट था) है: खोजें। -Type f -name '* * .m4a' -exec bash -c 'avconv -i "$ 0" -y -b: a 256k " $ {0 /% m4a / mp3} "'{{}' \;
बेन

1
इस कमांड का प्रयोग 'एवोकन' के लिए 'ffmpeg' को प्रतिस्थापित करके सफलतापूर्वक किया जा सकता है।
केविन बोवेन

9

मैंने ऐसा करने के लिए एक स्क्रिप्ट बनाई।

मेरी आवश्यकताएं थीं:

  • अधिक से अधिक टैग बनाए रखना चाहिए
  • मौजूद होने पर एल्बम कलाकृति को बनाए रखना चाहिए
  • 320K mp3 होना चाहिए

एक निर्देशिका में सभी m4a फाइलों पर काम करता है, और नए चमकदार Mp3s को एक फोल्डर में आउटपुट करता है जिसे स्क्रिप्ट Mp3 कहती है। चेतावनी; यह स्क्रिप्ट आउटपुट फ़ोल्डर में मौजूदा Mp3s को अधिलेखित कर देती है यदि उनका समान नाम है। साथ ही अस्थायी फ़ाइलों के रूप में 'मेटाडेटा.टेक्स्ट' और 'मेटाडेटा। 2 टेक्स्ट' का उपयोग करता है।

अगर यह पहले से मौजूद नहीं है तो आपको एवोकॉन इंस्टॉल करना होगा।

मैं यह पता नहीं लगा सका कि ID3v1 टैग में 'ईयर' टैग को कैसे जारी रखा जाए, इसलिए मैंने उस विकल्प को सक्षम नहीं किया।

#!/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

इसे 'Convert.b' के रूप में सहेजें, और फिर टाइप करके स्क्रिप्ट चलाएँ:

% bash convert.b

यह वही है जो मैं देख रहा हूँ।
रोमि .98

हत्यारा स्क्रिप्ट, बदलने avconvके लिए ffmpegऔर कहा कि काम किया है। कृपया विभिन्न कमांड के लिए स्पष्टीकरण शामिल करने के लिए उत्तर को अपडेट करें!
जॉर्ज उदेन

5

कभी-कभी avconv और ffmpeg इतनी सफाई से काम नहीं करते हैं, इसलिए:

sudo apt-get install faad lame
faad myfile.m4a -w | lame - myfile.mp3

हमेशा मेरे लिए काम करता है।


1

आपको संभवतः मध्यस्थता भंडार में अप्रतिबंधित लिबाव पैकेजों की आवश्यकता है। व्यक्तिगत रूप से मैं सभी कोडेक के साथ नवीनतम ffmpeg को संकलित करूँगा, जैसा कि 123 http://ubuntuforums.org/showthread.php?t=786095


1
यदि आप ffmpeg को संकलित नहीं करना चाहते हैं: sudo apt-get install libavcodec-extra-53
z7sg

1

मेरे एल-उबंटू पर, libav-toolsउपलब्ध नहीं था। मैंने स्थापित किया winff:

sudo apt-get install winff

जो ऑडियो और वीडियो फ़ाइलों को कई अलग-अलग प्रारूपों में बदलने के लिए एक ग्राफिकल टूल प्रदान करता है।

बस की कोशिश की: इसके लिए ठीक काम करता है .m4aके लिए .mp3:-)

अन्यथा vlcएक बढ़िया काम करने वाली .m4aफ़ाइल भी है:

sudo apt-get install vlc


0

नॉटिलस स्क्रिप्ट

इस नॉटिलस स्क्रिप्ट उपयोगकर्ता चयनित फ़ाइल (रों) की तरह कन्वर्ट करने के लिए अनुमति देता है m4a के लिए किसी भी एमपी 3 या गैर ऑडियो files-- --skipping फ़ाइलें एमपी 3 एक ही स्थान में प्रारूप का उपयोग ffmpeg । नई एमपी 3 फ़ाइलों में सबसे अधिक परिवर्तनीय बिटरेट होगा और वर्ष को छोड़कर, अधिकांश टैग संरक्षित करेगा

#!/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

0

मुझे पता है कि यह सवाल थोड़ा पुराना है, लेकिन मुझे लगता है कि लोग अभी भी इस प्रश्न को देखते हैं (मेरे जैसे), इसलिए मैं वह साझा करता हूं जो मैंने पाया है कि मेरे लिए काम किया है और एक अच्छा यूआई है : फ्री : एसी ( https: //www.freac) .org / )। Ubuntu में उपयोग करने के लिए बस ubuntu, decompress के लिए बाइनरी डाउनलोड करें और फ़ाइल बछड़ा चलाएँ, बस freac। का आनंद लें!


0

पुराना प्रश्न है, लेकिन मुझे एक बहुत ही सरल समाधान नहीं दिखाई देता है: VLC का उपयोग करें

VLC में आप एक .m4a फ़ाइल लोड कर सकते हैं और इसे .MP3 में बहुत आसान कर सकते हैं।

  1. VLC खोलें (कोई फ़ाइल लोड करने की आवश्यकता नहीं)

  2. मीडिया पर क्लिक करें या CTRL + R दबाएँ

  3. Conver / Save पर क्लिक करें

  4. प्रोफ़ाइल पर MP3 का चयन करें

  5. गंतव्य का चयन करें

  6. प्रारंभ पर क्लिक करें और प्रतीक्षा करें। यह जानने के लिए कि यह कुछ कर रहा है या नहीं, टाइम बार देखें।

मुझे उम्मीद है कि यह किसी के लिए उपयोगी होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.