Konversikan .flac ke .mp3 dengan ffmpeg, simpan semua metadata
89
Bagaimana cara mengonversi .flac ke .mp3 dengan ffmpeg, menyimpan semua metadata (yang mengubah komentar Vorbis dalam file .flac menjadi metadata ID3v2 dari .mp3)?
Harap diperhatikan bahwa lain kali Anda harus mengajukan ffmpegpertanyaan tentang penggunaan cli di Pengguna Super . Stack Overflow hanya untuk pertanyaan yang melibatkan pemrograman. Juga, FLAC secara resmi mendukung komentar Vorbis saja, jadi saya berasumsi Anda ingin mengonversi ke ID3v2 daripada "tetap".
llogan
Oke, pertanyaan saya sudah diperbaiki. Saya bertanya di sini karena saya melihat pertanyaan seperti ini di StackOverflow (misalnya ini atau ini ), dan berasumsi akan menarik untuk berbagi pengetahuan saya. Selain itu, saya melihat bahwa ada tag ffmpeg , jadi mengapa tidak membagikan solusi saya di sini? ffmpeg digunakan di banyak aplikasi oleh banyak pengembang.
Vito Gentile
4
The ffmpeg tag mengatakan, "Pertanyaan tentang penggunaan interaktif dari alat baris perintah FFmpeg harus diminta pada Super User.". Ini bukan masalah besar, tapi saya hanya ingin menunjukkannya karena ada terlalu banyak pertanyaan di luar topik menurut pendapat saya.
llogan
Jawaban:
156
Perintah berikut mempertahankan kualitas tinggi pada .mp3 (320 kbps), dan metadata dari file .flac diubah ke format ID3v2, yang dapat disertakan dalam file .mp3:
Perlu dicatat bahwa "ffmpeg" mungkin perlu diganti dengan "avconv".
shockburner
6
FWIW ffmpeg3.2 secara otomatis menyalin metadata ke ID3v2 dari FLAC tanpa perlu menentukan -map_metadata 0 -id3v2_version 3, meskipun tidak disalin ke tag ID3v1. Saya menggunakan alat terpisah untuk itu.
Dai
1
lirik masih tidak dapat disalin meskipun
user151496
1
Apakah ini membagi flac jika ada beberapa bagian?
Artyom
1
@Artyom Anda mungkin harus memiliki file isyarat bersama dengan flac Anda di mana titik pemisah ditandai. Jika demikian maka Anda dapat menggunakan shnsplit (konsol) atau flacon (GUI) untuk membagi file Anda dan mengubah bagian-bagiannya menjadi mp3. Jika Anda hanya memiliki satu flac Anda dapat menulis cui untuk itu atau menggunakan opsi -ss dan -t ffmpeg untuk memotong setiap lagu.
58
Jawaban sempurna di atas. Saya menggunakannya bersama dengan find untuk menambahkan semua file FLAC dalam subpohon ke iTunes dengan perintah ini
Anekdot: semua pengguna di perusahaan kami memiliki nama bintang, disingkat menjadi 3-5 karakter. Punyaku adalah "sirius", singkatnya pak;)
user2707001
'Nama' opsi tidak dikenal.
MonsterMMORPG
14
Jika Anda ingin menghemat sedikit ruang, coba rekomendasi hydrogenaud.io :
Kualitas yang sangat tinggi: HiFi, rumah, atau tenang mendengarkan, dengan ukuran file terbaik
-V0 (~245 kbps), -V1 (~225 kbps), -V2 (~190 kbps)atau -V3 (~175 kbps)direkomendasikan. Pengaturan VBR ini biasanya akan memberikan hasil transparan. Perbedaan suara antara preset ini mungkin ada, tetapi jarang terjadi.
Jika Anda ingin menggunakan opsi ini di ffmpeg, Anda harus menggunakan -q:a 0alias.
Kontrol kualitas dengan -qscale:a(atau alias -q:a). Nilai bersifat khusus pembuat enkode, jadi untuk libmp3lame kisarannya adalah 0-9 di mana nilai yang lebih rendah berarti kualitas yang lebih tinggi. 0-3 biasanya akan memberikan hasil transparan, 4 (default) harus mendekati transparansi persepsi, dan 6 menghasilkan kualitas yang "dapat diterima". Opsi -qscale:adipetakan ke -Vopsi dalam alat antarmuka baris perintah lumpuh mandiri.
Setelah beberapa penggalian, saya menemukan -c:v copyopsi, yang menentukan bahwa aliran video harus disalin, daripada ditranskode. Perintah lengkapnya adalah:
Ini akan membuat folder bernama "mp3" di dalam folder dengan file flac dan, di dalam folder mp3, itu akan menyimpan file mp3 relatif dengan bitrate 320kbps, tanpa menggunakan ekstensi file lama di namanya.
:rtampaknya merupakan zshpengubah, yang tidak berfungsi di bash. Di Bash Anda bisa mengganti "${file:r}.mp3"dengan "${file%.flac}.mp3".
mivk
untuk menampilkan hanya nama file dari file, dalam penggunaan bash${file%.*}
Evhz
2
Saya tahu bahwa ini tidak ditanyakan, tetapi mengingat salah satu alasan mengapa hal ini dilakukan (setidaknya itulah yang ingin saya lakukan) adalah agar musik dapat diimpor ke Apple iTunes yang tidak mendukung FLAC. Dalam kasus seperti itu, lebih masuk akal untuk mengubah FLAC ke format lossless milik Apple, m4a. Saya menggunakan perintah ini untuk mengonversi semua file di folder saat ini, sambil mempertahankan ukuran file yang serupa.
'Nama' opsi tidak dikenal. Kesalahan membagi daftar argumen: Opsi tidak ditemukan
MonsterMMORPG
@MonsterMMORPG Anda mungkin ketinggalan mengetik. setelah perintah find. Itu. memberitahu find untuk mencari di folder saat ini, dan -name memberitahu untuk mencari nama file yang cocok.
Dhiraj Gupta
2
Skrip flac2mp3.sh ini digunakan ffmpeguntuk mengubah pohon folder file FLAC menjadi pohon folder lain dari file MP3. Seni sampul disertakan, saat hadir. Anda dapat mengatur CORESvariabel untuk membuat pekerjaan latar belakang untuk mengonversi beberapa file sekaligus.
ffmpeg
pertanyaan tentang penggunaan cli di Pengguna Super . Stack Overflow hanya untuk pertanyaan yang melibatkan pemrograman. Juga, FLAC secara resmi mendukung komentar Vorbis saja, jadi saya berasumsi Anda ingin mengonversi ke ID3v2 daripada "tetap".Jawaban:
Perintah berikut mempertahankan kualitas tinggi pada .mp3 (320 kbps), dan metadata dari file .flac diubah ke format ID3v2, yang dapat disertakan dalam file .mp3:
sumber
ffmpeg
3.2 secara otomatis menyalin metadata ke ID3v2 dari FLAC tanpa perlu menentukan-map_metadata 0 -id3v2_version 3
, meskipun tidak disalin ke tag ID3v1. Saya menggunakan alat terpisah untuk itu.Jawaban sempurna di atas. Saya menggunakannya bersama dengan find untuk menambahkan semua file FLAC dalam subpohon ke iTunes dengan perintah ini
Untuk secara otomatis menambahkan file yang dihasilkan ke iTunes, dapatkan direktori impor iTunes dengan
hasil misalnya
Kemudian jalankan mis
Untuk secara otomatis menambahkan semua trek yang dikonversi ke iTunes.
sumber
Jika Anda ingin menghemat sedikit ruang, coba rekomendasi hydrogenaud.io :
Sumber: http://wiki.hydrogenaud.io/index.php?title=LAME
Jika Anda ingin menggunakan opsi ini di ffmpeg, Anda harus menggunakan
-q:a 0
alias.Sumber: https://trac.ffmpeg.org/wiki/Encode/MP3
Jika Anda ingin metatag ID3v1 juga, Anda harus menambahkan
-write_id3v1 1
parameter.Jadi perintah terakhir saya adalah:
sumber
Saya menguji perintah berikut untuk mengonversi
infile.flac
file menjadioutfile.mp3
:Pada Ubuntu 16.04, perintah di atas tampaknya menyalin (sebagian besar? Semua?) Metadata.
-q:a 0
memberitahuffmpeg
untuk menggunakan VBR kualitas tertinggi.Namun, melakukan
ffmpeg
transcoding seni album saya darijpeg
menjadipng
, yang meningkatkan ukuran seni sampul.(Saya kira jenis konversi di atas masuk akal mengingat cara
ffmpeg
kerjanya .)Setelah beberapa penggalian, saya menemukan
-c:v copy
opsi, yang menentukan bahwa aliran video harus disalin, daripada ditranskode. Perintah lengkapnya adalah:Perintah di atas menghasilkan:
sumber
Untuk mengonversi secara rekursif dalam mp3 semua file flac di folder bersarang, saya menggunakan perintah ini:
Ini akan membuat folder bernama "mp3" di dalam folder dengan file flac dan, di dalam folder mp3, itu akan menyimpan file mp3 relatif dengan bitrate 320kbps, tanpa menggunakan ekstensi file lama di namanya.
sumber
Satu baris untuk mengonversi semua
.flac
file ke.mp3
dalam satu direktori, menyimpan sebagian besar metadata:for file in *.flac; do ffmpeg -i $file -q:a 0 ${file:r}.mp3; done
(Catatan:
${file:r}
menghapus ekstensi dari jalur file yang diberikan)sumber
$file
seperti"$file"
.:r
tampaknya merupakanzsh
pengubah, yang tidak berfungsi dibash
. Di Bash Anda bisa mengganti"${file:r}.mp3"
dengan"${file%.flac}.mp3"
.${file%.*}
Saya tahu bahwa ini tidak ditanyakan, tetapi mengingat salah satu alasan mengapa hal ini dilakukan (setidaknya itulah yang ingin saya lakukan) adalah agar musik dapat diimpor ke Apple iTunes yang tidak mendukung FLAC. Dalam kasus seperti itu, lebih masuk akal untuk mengubah FLAC ke format lossless milik Apple, m4a. Saya menggunakan perintah ini untuk mengonversi semua file di folder saat ini, sambil mempertahankan ukuran file yang serupa.
find . -name "*.flac" -exec ffmpeg -i {} -map_metadata 0 -acodec alac {}.m4a \;
sumber
Skrip flac2mp3.sh ini digunakan
ffmpeg
untuk mengubah pohon folder file FLAC menjadi pohon folder lain dari file MP3. Seni sampul disertakan, saat hadir. Anda dapat mengaturCORES
variabel untuk membuat pekerjaan latar belakang untuk mengonversi beberapa file sekaligus.sumber