Apakah ada cara untuk mengkonversi file audio di Mac OS X atau baris perintah tanpa menggunakan iTunes?

96

Sekarang, saya tahu saya bisa menggunakan iTunes untuk mengonversi musik. Tapi itu cukup menyebalkan .. Yang saya tanyakan adalah: Apakah ada sesuatu yang dibangun ke dalam OS X atau UNIX untuk mengkonversi file? Saat ini saya hanya ingin mengonversi .mp4 ke .mp3 ..

James Litewski
sumber
2
Apakah Anda menganggap paket sumber terbuka sebagai aplikasi pihak ketiga? Atau Anda ingin tetap menggunakan Produk Apple yang hanya dilengkapi dengan OS. Bisakah Anda menjelaskannya dalam pertanyaan Anda?
Sairam
Saya ingin melakukannya dengan perangkat lunak yang dimuat sebelumnya.
James Litewski
3
Sebuah komentar pada solusi FFmpeg (kurang reputasi). Kontrol kualitas output untuk MP3 dapat dilakukan melalui codec:a libmp3lamedan qscale:a [0-9]opsi (lihat FFmpeg wiki ). Misalnya, untuk mendapatkan VBR dalam kisaran 140-185 kbit / s gunakan: ffmpeg out.mp3 -i in.mp4 -codec: a libmp3lame -qscale: a 4 Ini juga dapat digunakan untuk mengurangi ukuran file MP3.
trybik

Jawaban:

16

Doug's AppleScripts untuk iTunes

termasuk

Konversi dan Ekspor 2.0

adalah kumpulan skrip berguna yang dapat Anda jalankan dari Finder atau baris perintah. Tentu saja mereka semua menggunakan iTunes untuk memproses data, tetapi Anda mungkin merasa lebih nyaman daripada harus menggunakan perintah GUI dan mouse iTunes untuk mengonversi file.


sumber
Bagaimana Anda menjalankan skrip ini? Saya tidak melihat instruksi di situs.
CoolAJ86
Petunjuk instalasi dan konfigurasi dari orang yang menyediakan skrip ada di sini: dougscripts.com/itunes/itinfo/downloadfaq.php
7
Catatan untuk mereka yang tidak tahu: ini bukan solusi commandline. Ini menempatkan ikon di bilah alat iTunes. Anda harus memilih koleksi lagu, lalu memilih skrip dari menu dropdown. Ini akan default ke 256Kbps untuk AAC. Tidak disebutkan di mana pun dalam dokumentasi (yang bisa saya temukan), tetapi Anda dapat melihatnya di screencast dalam 2 atau 3 detik terakhir.
CoolAJ86
161

Saya menginstal ffmpegmelalui MacPorts, meskipun itu juga tersedia melalui Homebrew ( brew install ffmpeg) atau mengunduh biner .

Untuk mengonversi sesuatu seperti itu, (tanpa khawatir tentang kualitas audio, yang tidak saya ketahui), saya hanya menggunakan:

ffmpeg -i input.mp4 output.mp3

Berikut adalah contoh bagaimana Anda akan mengkonversi .wavfile .mp3dari situs web mereka :

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

Berikut adalah contoh cara menemukan semua .wavfile yang lebih besar dari 50 juta, mengubahnya menjadi mp3 dan kemudian menghapus wav asli (alias, mode batch - ubah perintah find untuk membuat 'batch' Anda)

find . -size +50M -iname *.wav -type f -exec ffmpeg -i {} -codec:a libmp3lame -qscale:a 2 {}.mp3 -y \; -exec /bin/rm {} \;
zpletan
sumber
Terima kasih atas jawaban yang mudah. Bagaimana cara mengubah daftar file? Juga apakah ia memiliki opsi serial atau paralel?
Khaled Annajar
ffmpeg juga berfungsi untuk mengonversi ogg ke mp3:ffmpeg -i beep.ogg beep.mp3
rgkobashi
32

OS X tidak dikirimkan dengan enkoder MP3 apa pun selain yang ada di iTunes. Untuk mengkonversi ke audio mpeg4 Anda dapat menggunakan perintah CLI afconvert (afconvert -h untuk opsi yang tersedia). Sebagai contoh:

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

Bantuan untuk alat ini dapat ditemukan dengan menjalankan "afconvert --help" sebagai "man afconvert" tidak menunjuk ke halaman manual yang bermanfaat.

Gerry
sumber
1
+1 tetapi saya benar-benar berharap seseorang akan menambahkan pointer ke dokumentasi yang lengkap. Saya membuatnya bekerja melalui trial and error dan guesswork, tetapi banyak opsi yang seharusnya saya gunakan telah didokumentasikan dengan sangat singkat.
tripleee
3
The halaman manual di samping berguna ... :-(
Greenonline
1
Saya menemukan tutorial ini informatif. Argumen yang valid untuk format data dan file dapat dilihat menggunakanafconvert -hf
chb
5

afconverttidak akan menulis. mp3file. Meskipun tercantum dalam bantuan sebagai format:

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'

Jika Anda mencoba menggunakannya:

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

maka kesalahan terjadi:

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

Seperti yang dijelaskan pada MPC3 afconvert?

'Core Audio dapat membaca, tetapi tidak menulis, file MP3 ...'

Saya akhirnya menggunakan zpletan 's jawaban dan diinstal ffmpeg

brew install ffmpeg

dan skrip berikut, ditempatkan di direktori yang sama dengan file .MP4 yang ingin saya konversi. Ini juga berfungsi untuk file dengan spasi:

#!/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
sumber
Variasi sedikit di atas misalnya untuk memperbaiki ekstensi: <code>for i in *.m4a; do echo "${i%.*}.mp3" ; ffmpeg -i "$i" "${i%.*}.mp3"; done
Mahesh Neelakanta
3

Ada juga X Lossless Decoder - decoder audio lossless untuk Mac OS X tersedia sebagai alat baris perintah dan aplikasi GUI. Versi GUI mendukung MP3 sebagai format output.

ralf
sumber
1

Saya dikompilasi libavdari sumber untuk melayani tujuan ini. Ini adalah paket yang sama yang diinstal secara default pada versi terbaru dari Linux Ubuntu sehingga tutorial untuk Ubuntu berfungsi hampir sama pada OS X dengan libav.

Berikut adalah sesuatu yang saya lakukan untuk mengkonversi MP4 (AAC) ke MP3 (menggunakan LAME) menggunakan baris perintah dan makefile (demi paralelisme):

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

Sesuaikan jumlah setelah -jdari makeperintah untuk sekitar 1.5x jumlah inti prosesor Anda. Server saya memiliki 24 core tetapi -j24memberi saya bottleneck IO yang serius, memperlambatnya kembali -j20dan kinerjanya cukup seimbang.

Maxthon Chan
sumber
1

Saya tidak menggunakannya selama satu dekade tetapi saya suka ecasounduntuk mengkonversi file suara.

Jika Anda sudah brewmengatur:

brew install ecasound

ecasound -i input.mp4 -o output.mp3

Saya belum mencobanya dengan .mp4s sendiri tetapi harus berhasil .

Saya baru saja menemukan pertanyaan ini ketika ingin mengubahnya wavmenjadi flac.

keuangan fifi
sumber
1

Dengan automator, tentukan layanan (Terima kasih BLOG MUSIK DIGITALHOBBIT untuk idenya): masukkan deskripsi gambar di sini

Dan skrip shell adalah sebagai berikut:

    # -----------------------------
    # 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
sumber
Apakah maksud Anda aacatau mp3dalam AFCPARAM="-f mp4f -d aac -b 128000"?
John N
-1

Di linux, saya menemukan python-audio-tools melakukan apa yang saya inginkan. Sayangnya, saya belum bisa membuatnya untuk disandikan ke mp3 di bawah OSX . Ini mungkin bekerja untuk Anda. Sama sekali tidak dibangun ke dalam OSX, tetapi sangat ringan dan dapat mengkonversi antara hampir semua pasangan format (atau hanya mengkonversi ke file yang lebih terkompresi dengan format yang sama).

intuisi
sumber