How do I programmatically convert mp3 to an itunes-playable aac/m4a file?

前端 未结 7 1583
无人及你
无人及你 2021-01-06 01:38

I\'ve been looking for a way to convert an mp3 to aac programmatically or via the command line with no luck. Ideally, I\'d have a snippet of code that I could call from my

相关标签:
7条回答
  • 2021-01-06 01:50

    in ffmpeg 0.5 or later use ffmpeg -i source.mp3 target.m4a

    for better results to transfer metadata and to override default bitrate ffmpeg applies

    ffmpeg -i "input.mp3" -ab 256k -map_meta_data input.mp3:output.m4a output.m4a

    best do not convert as ipod plays mp3 fine (I know there is such answer but my low standing does not allow voting)

    0 讨论(0)
  • 2021-01-06 01:51

    After installing the converting app on the linux/window machine you're running your Rails application on, use the "system()" command in Ruby to invoke the converting application on the system. system("command_here");

    0 讨论(0)
  • 2021-01-06 01:51

    Actually, syntax is ffmpeg -i input.mp3 -c:a aac -strict -2 -b:a 256k output.m4a; more correct if one is emulating "correct" bitrate. cf.:link for a compilation scheme. (rpmfusion package works fine too:

    configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --enable-bzlib --disable-crystalhd --enable-frei0r --enable-gnutls --enable-libass --enable-libcdio --enable-libcelt --enable-libdc1394 --disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopencv --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect

    0 讨论(0)
  • 2021-01-06 01:53

    FFmpeg provides AAC encoding facilities if you've compiled them in. If you are using Windows you can grab full binaries from here

    ffmpeg -i source.mp3 -acodec libfaac -ab 128k dest.aac
    

    I'm not sure how you would call this from ruby.

    Also, be sure to set the bitrate appropriately.

    0 讨论(0)
  • 2021-01-06 01:57

    I've had good luck using mplayer (which I believe uses ffmpeg...) and lame. To the point that I've wrapped it up in a script:

    #!/bin/sh
    
    TARGET=$1
    
    BASE=`basename "${TARGET}"`
    echo TARGET: "${TARGET}"
    echo BASE:   "${BASE}" .m4a
    
    # Warning! Race condition vulnerability here! Should use a mktemp
    # variant or something...
    mkfifo encode
    mplayer -quiet -ao pcm -aofile encode "${TARGET}" &
    lame --silent encode "${BASE}".mp3
    rm encode
    

    Sorry for the security issues, I banged this out on the train one day...

    My mplayer and lame come from fink

    0 讨论(0)
  • 2021-01-06 01:59

    I realize I'm late to this party, but I'm questioning the premise of this question. Why do you even want to convert an MP3 to an "itunes playable" format? iTunes already handles MP3s natively.

    It seems like you are doing an unnecessary conversion, and since you are converting from one lossy format to another, you are losing some quality in the process.

    0 讨论(0)
提交回复
热议问题