Есть ли способ конвертировать аудио файлы в Mac OS X или командной строке без использования iTunes?

95

Теперь я знаю, что могу использовать iTunes для конвертации музыки. Но это довольно болезненно ... Все, что я спрашиваю: есть ли что-нибудь встроенное в OS X или UNIX для конвертации файлов? Прямо сейчас я просто хочу конвертировать .mp4 в .mp3 ..

Джеймс Литевски
источник
2
Считаете ли вы пакеты с открытым исходным кодом сторонними приложениями? Или вы хотите придерживаться продуктов Apple, которые поставляются только с ОС. Можете ли вы прояснить это в своем вопросе?
Сайрам
Я хотел бы сделать это с предварительно загруженным программным обеспечением.
Джеймс Литевский,
3
Комментарий к решению FFmpeg (без репутации). Контроль качества вывода для MP3 может быть сделан с помощью codec:a libmp3lameи qscale:a [0-9]параметров (см. Вики FFmpeg ). Например, чтобы получить VBR в диапазоне 140-185 кбит / с, используйте: ffmpeg out.mp3 -i in.mp4 -codec: libmp3lame -qscale: a 4 Это также можно использовать для уменьшения размера файлов MP3.
Трыбик

Ответы:

16

Apple, сценарии Дуга для iTunes

в том числе

Конвертировать и Экспортировать 2.0

это набор полезных скриптов, которые вы можете запустить из Finder или командной строки. Конечно, все они используют iTunes для обработки данных, но вам может показаться, что это удобнее, чем использовать графический интерфейс iTunes и команды мыши для преобразования файлов.


источник
Как вы запускаете этот скрипт? Я не вижу никаких инструкций на сайте.
CoolAJ86
Инструкции по установке и настройке от парня, предоставляющего сценарии, находятся здесь: dougscripts.com/itunes/itinfo/downloadfaq.php
7
Обратите внимание на тех, кто не знает: это не решение командной строки. Он помещает значок на панели инструментов iTunes. Вы должны выбрать коллекцию песен, затем выберите сценарий из выпадающего меню. По умолчанию это будет 256 Кбит / с для AAC. Это нигде не упоминается в документации (которую я смог найти), но вы можете увидеть это в скринкасте за последние 2 или 3 секунды.
CoolAJ86
159

Я установил ffmpegчерез MacPorts, хотя он также доступен через Homebrew ( brew install ffmpeg) или скачать бинарный файл .

Чтобы преобразовать что-то подобное (не беспокоясь о качестве звука, о котором я ничего не знаю), я просто использую:

ffmpeg -i input.mp4 output.mp3

Вот пример того, как вы могли бы конвертировать .wavфайл .mp3с их сайта :

ffmpeg -i input.wav -codec:a libmp3lame -qscale:a 2 output.mp3 

Вот пример того, как найти все .wavфайлы размером более 50 МБ, преобразовать их в mp3 и затем удалить оригинальный wav (иначе, пакетный режим - измените команду find, чтобы создать свой «пакет»)

find . -size +50M -iname *.wav -type f -exec ffmpeg -i {} -codec:a libmp3lame -qscale:a 2 {}.mp3 -y \; -exec /bin/rm {} \;
zpletan
источник
Спасибо за простой ответ. Как конвертировать список файлов? Также есть последовательные или параллельные опции?
Халед Аннажар
ffmpeg также работает, чтобы конвертировать OGG в mp3:ffmpeg -i beep.ogg beep.mp3
Rgkobashi
32

OS X не поставляется ни с одним MP3-кодером, кроме iTunes. Для преобразования в аудио mpeg4 вы можете использовать команду CLI afconvert (afconvert -h для доступных опций). Например:

afconvert track.aiff -o track.m4a -q 127 -b 128000 -f m4af -d aac

Справку по этому инструменту можно найти, запустив "afconvert --help", так как "man afconvert" не указывает на полезную страницу руководства.

Gerry
источник
1
+1, но мне бы очень хотелось, чтобы кто-нибудь добавил указатель на исчерпывающую документацию. Я заставил его работать методом проб, ошибок и догадок, но многие из опций, которые я, возможно, должен был использовать, очень и очень кратко задокументированы.
tripleee
3
Страница man рядом с бесполезной ... :-(
Greenonline
1
Я нашел этот учебник информативным. Допустимые аргументы для форматов данных и файлов можно увидеть с помощьюafconvert -hf
chb
5

afconvertне буду писать. mp3файлы. Даже если он указан в справке в формате:

MacBook-Pro:local user$ afconvert -hf
Audio file and data formats:
    '3gpp' = 3GP Audio (.3gp)
               data_formats: 'Qclp' 'aac ' 'aace' 'aacf' 'aach' 'aacl' 
                             'aacp' 'samr' 
    '3gp2' = 3GPP-2 Audio (.3g2)
               data_formats: 'Qclp' 'aac ' 'aace' 'aacf' 'aach' 'aacl' 
                             'aacp' 'samr' 
    'adts' = AAC ADTS (.aac, .adts)
               data_formats: 'aac ' 'aach' 'aacp' 
    'ac-3' = AC3 (.ac3)
               data_formats: 'ac-3' 
    'AIFC' = AIFC (.aifc, .aiff, .aif)
               data_formats: I8 BEI16 BEI24 BEI32 BEF32 BEF64 UI8 'ulaw' 
                             'alaw' 'MAC3' 'MAC6' 'ima4' 'QDMC' 'QDM2' 
                             'Qclp' 'agsm' 
    'AIFF' = AIFF (.aiff, .aif)
               data_formats: I8 BEI16 BEI24 BEI32 
    'amrf' = AMR (.amr)
               data_formats: 'samr' 
    'm4af' = Apple MPEG-4 Audio (.m4a, .m4r)
               data_formats: 'aac ' 'aace' 'aacf' 'aach' 'aacl' 'aacp' 
                             'alac' 'paac' 
    'm4bf' = Apple MPEG-4 AudioBooks (.m4b)
               data_formats: 'aac ' 'aace' 'aacf' 'aach' 'aacl' 'aacp' 
                             'paac' 
    'caff' = CAF (.caf)
               data_formats: '.mp1' '.mp2' '.mp3' 'QDM2' 'QDMC' 'Qclp' 
                             'Qclq' 'aac ' 'aace' 'aacf' 'aach' 'aacl' 
                             'aacp' 'alac' 'alaw' 'dvi8' 'ilbc' 'ima4' 
                             I8 BEI16 BEI24 BEI32 BEF32 BEF64 LEI16 LEI24 
                             LEI32 LEF32 LEF64 'ms\x00\x02' 'ms\x00\x11' 
                             'ms\x001' 'paac' 'samr' 'ulaw' 
    'MPG1' = MPEG Layer 1 (.mp1, .mpeg, .mpa)
               data_formats: '.mp1' 
    'MPG2' = MPEG Layer 2 (.mp2, .mpeg, .mpa)
               data_formats: '.mp2' 
    'MPG3' = MPEG Layer 3 (.mp3, .mpeg, .mpa)
               data_formats: '.mp3'

Если вы попытаетесь использовать его:

/usr/bin/afconvert -d '.mp3' -f MPG3 mysong.MP4 -o mysong.mp3

тогда возникает ошибка:

Error: ExtAudioFileSetProperty ('cfmt') failed ('fmt?')

Как объяснили на афконверте MPG3?

«Core Audio может читать, но не записывать файлы MP3 ...»

Я закончил с использованием zpletan «S ответа и установлена FFmpeg

brew install ffmpeg

и следующий скрипт, расположенный в том же каталоге, что и файлы .MP4, которые я хочу преобразовать. Это также работает для файлов с пробелами:

#!/bin/sh -x
for f in *.MP4; do
        /usr/local/Cellar/ffmpeg/2.5.4/bin/ffmpeg -i "$f" "$f.mp3"
#        /usr/bin/afconvert -d '.mp3' -f MPG3 "$f" -o "$f.mp3"
        echo "$f converted"
done
Greenonline
источник
Небольшое отклонение от приведенного выше, например, для исправления расширений: <code>for i in *.m4a; do echo "${i%.*}.mp3" ; ffmpeg -i "$i" "${i%.*}.mp3"; done
Махеш Нилаканта,
3

Есть также X Lossless Decoder - аудио декодер без потерь для Mac OS X, доступный как инструмент командной строки и приложение с графическим интерфейсом. Версия с графическим интерфейсом поддерживает MP3 в качестве выходного формата.

Ralf
источник
1

Я собрал libavиз источника, чтобы служить этой цели. Это тот же пакет, установленный по умолчанию в последних версиях Ubuntu Linux, поэтому учебные пособия для Ubuntu работают практически как на OS X с libav.

Вот что я делаю, чтобы конвертировать MP4 (AAC) в MP3 (используя LAME), используя командную строку и make-файл (для параллелизма):

for each in *.mp4; do mv "$each" "$(echo "$each" | sed "s/ /./g")"; done
cat << EOF > Makefile
MP4_FILES := $(wildcard *.mp4)
MP3_FILES := ${MP4_FILES:.mp4=.mp3}

all: $(MP3_FILES)

%.mp3: %.mp4
    avconv -i $< -c:a libmp3lame $@
EOF
make -j20

Отрегулировать число после -jот makeкоманды до 1.5x вашего ядра процессора числа. У моего сервера было 24 ядра, но у -j24меня возникли серьезные проблемы с вводом-выводом, он уменьшился, -j20и производительность довольно хорошо сбалансирована.

Макстон Чан
источник
1

Я не использовал его в течение десятилетия, но я люблю ecasoundдля преобразования звуковых файлов.

Если вы brewнастроили:

brew install ecasound

ecasound -i input.mp4 -o output.mp3

Я сам не пробовал .mp4с ней, но она должна работать .

Я только что наткнулся на этот вопрос, когда хотел преобразовать wavв flac.

guaka
источник
1

С помощью automator определите сервис (спасибо DIGITALHOBBIT'S MUSIC BLOG за идею): введите описание изображения здесь

И shell-скрипт выглядит следующим образом:

    # -----------------------------
    # DESCRIPTION
    #   Export iTunes Music to another destination to get only MP3 files
    #       - Copy MP3 to Destination
    #       - Convert M4A in MP3 in Destination
    #
    # -----------------------------
    # DATE      : 06-Apr-2017
    # AUTHOR    : JF LE MADEC
    # VERSION   : 1.0
    # -----------------------------

    # Local iTunes Directory
    ITUNDIR="$HOME/Music/iTunes/iTunes Media/Music"

    # binary to convert audio files
    AFCONVERT="afconvert"
    # conversion paramaters
    AFCPARAM="-f mp4f -d aac -b 128000"

    # Audio files suffixes
    # Source
    M4ASUF=".m4a"
    # Destination
    MP3SUF=".mp3"

    # for all directories given in arguments copy music
    for destination in "$@"
    do

        # Copy MP3 files
        find "$ITUNDIR" -name "*$MP3SUF" | while read myMp3File; do
            mp3dir=`dirname "$myMp3File"`
            targetDir="$destination${mp3dir#$ITUNDIR}"
            fileName=`basename "$mp3File"`
            [[ -d "$targetDir" ]] || mkdir -p "$targetDir"
            cp -R "$myMp3File" "$targetDir"
        done

        # Convert and copy M4A files (iTunes native)
        find "$ITUNDIR" -name "*$M4ASUF" | while read m4aFile; do
            #afconvert -f mp4f -d aac -b 128000 "./Vianney/Vianney/11 Le Galopin.m4a"  /Users/jflm/Desktop/output2.mp3
            # Get file info
            m4aDir=`dirname "$m4aFile"`
            targetDir="$destination${m4aDir#$ITUNDIR}"
            fileName=`basename -s $M4ASUF "$m4aFile"`
            # Create parent directories if not exist
            [[ -d "$targetDir" ]] || mkdir -p "$targetDir"

            # Convert audio file directly in destination directory
            $AFCONVERT $AFCPARAM "$m4aFile" "$targetDir/$fileName$MP3SUF"

        done
    done
JFLM
источник
Вы имели в виду aacили mp3в AFCPARAM="-f mp4f -d aac -b 128000"?
Джон Н
-1

В Linux я нахожу, что python-audio-tools делает именно то, что я хочу. К сожалению, я не смог заставить его кодировать в mp3 под OSX . Это может работать для вас, хотя. Он совсем не встроен в OSX, но он очень легкий и может конвертировать практически в любую пару форматов (или просто конвертировать в более сжатый файл с тем же форматом).

созерцаемое
источник