Pertanyaan Menggabungkan beberapa file .mp3 menjadi satu .mp3


Seperti yang disarankan sini saya menggunakan cat perintah untuk menggabungkan beberapa file .mp3 ke dalam satu file .mp3.

Bayangkan, saya telah mengikuti file .mp3 di folder saat ini:

001001.mp3 001002.mp3 001003.mp3 001004.mp3 001005.mp3

atau, seperti ini:

096001.mp3 096002.mp3 096003.mp3 096004.mp3

Saya harus menggabungkan file-file ini .mp3 di sana urutan menaik, yaitu 001001.mp3+001002.mp3+001003.mp3+etc.

Untuk bergabung dengan file-file ini .mp3 menjadi satu saya mengeksekusi perintah berikut di folder saat ini:

cat *.mp3 > final.mp3

Saya menguji file .mp3 akhir dan ini adalah apa yang saya harapkan, tetapi saya harus yakin bahwa perintah di atas mengambil file di sana urutan menaik.

Dapatkah saya yakin bahwa perintah di atas selalu menggabungkan file dalam urutan menaik?

Terima kasih Tuan!


31
2018-01-07 19:04


asal




Jawaban:


cat bukan alat yang tepat untuk pekerjaan ini. Format MP3 memiliki segala macam sampah yang dapat mengintai di bagian depan dan akhir file dan ini perlu dihapus. mp3wrap adalah apa yang kamu inginkan. Ini akan mengecualikan metadata apa pun dalam file dan menempel audio bersama-sama.

sudo apt-get install mp3wrap
mp3wrap output.mp3 *.mp3

Sebelum Anda melakukan itu, jalankan ls *.mp3 untuk memastikan bahwa mereka dalam urutan yang benar. Ketika saya awalnya menulis jawaban ini (lebih dari enam tahun yang lalu!) Globs wildcard rupanya tidak berperilaku baik tapi saya pikir mereka lakukan sekarang.

Anda mungkin perlu mengganti nama file jika misalnya, mereka diberi nomor tetapi tidak memiliki bantalan-nol, {1-11}.mp3 akan diurutkan berdasarkan 1 10 11 2 3 4 5 6 7 8 9. Ini bisa diperbaiki dengan mudah.


35
2018-01-07 19:36



Kanan - kucing akan mangle format file mp3 dengan "menciptakan sebuah array" (seolah-olah) dari file mp3 dalam satu file mp3. Tetapi tampaknya bekerja jika perangkat lunak pemain cukup pintar.
Ini bekerja lebih baik untuk saya, karena menangani MP3 dengan spasi dalam nama file: find . -maxdepth 1 -iname '*.mp3' -print0 | sort -z | xargs -0 mp3wrap output.mp3 - bmaupin
@bmaupin Sebuah poin yang adil tetapi saya tidak yakin mengapa saya tidak menggunakan ekspansi wildcard Bash. *.mp3 harus cukup (dan berfungsi dengan spasi). - Oli♦
Tersedia untuk mac dari buatan manajer paket! $ brew install mp3wrap. - Rubens
Di bash, *.mp3 dijamin untuk menjaga urutan abjad. Jika file Anda diberi nama 09.mp3, 10.mp3, 11.mp3, mungkin itu yang kamu inginkan. Jika file Anda diberi nama 9.mp3, 10.mp3, 11.mp3, itu mungkin bukan yang Anda inginkan, tetapi Anda bisa melakukannya `ls *.mp3 | sort -n`. - Jo Liss


mp3wrap tampaknya menjadi solusi yang cukup layak, tetapi ketika saya memutar file yang dihasilkan, stempel waktu tidak benar. Sepertinya mp3wrap paling baik digunakan ketika Anda bergabung dengan MP3 ke dalam sebuah file yang Anda tahu akan Anda pisahkan nanti.

Saya hanya ingin secara permanen menggabungkan beberapa MP3 bersama-sama. Saya akhirnya menggunakan ffmpeg untuk menggabungkan file:

  1. Pertama, instal ffmpeg

    • Ubuntu 15.04+

      sudo apt install ffmpeg
      
    • Ubuntu 14.10 dan di bawah
      Pergi ke http://ffmpeg.org/download.html, unduh salah satu build statis, bongkar, dan salin ke / usr / local / bin

  2. ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy output.mp3

Info lebih lanjut: https://trac.ffmpeg.org/wiki/Concatenate#protocol
https://superuser.com/a/314245


16
2017-07-31 01:55



ffmpeg hilang, tapi avconv menggantikannya: askubuntu.com/questions/432542/… - muru
Ya, saya menggunakan avconv untuk sementara waktu, tetapi kemudian saya membutuhkan beberapa fitur yang dimiliki ffmpeg dan avconv tidak, dan saya belum menggunakannya sejak itu. Hari-hari ini rasanya seperti membuang-buang waktu memeriksa untuk melihat apakah avconv memiliki fitur yang saya butuhkan ketika saya sudah tahu ffmpeg. - bmaupin
Harap diundang untuk bergabung ini diskusi laporan bug. - orschiro
Saya sudah mencoba ini dan itu tidak bekerja dengan baik; coba jalankan output.mp3 melalui mp3val dan Anda akan melihat semua jenis kesalahan yang akan membuat masalah pemutaran di Chrome64 + (lihat bugs.chromium.org/p/chromium/issues/detail?id=794782 dan bugs.chromium.org/p/chromium/issues/detail?id=806601#c10) - Nino Škopac


Seperti yang disarankan sebelumnya, mp3wrap adalah solusi yang bagus. Ini mungkin tidak berfungsi sepanjang waktu. Sejauh yang aku tahu, mp3wrap mengasumsikan bahwa semua file input memiliki karakteristik yang sama seperti VBR vs CBR, bitrate, dan sebagainya. Jika asumsi ini tidak dipenuhi, kemungkinan akan gagal. Dalam hal ini, satu-satunya solusi adalah untuk memecahkan kode semua file mp3 ke format mentah seperti .wav, gabungkan mereka dengan program seperti sox dan selesaikan dengan re-encoding semua ke mp3.


7
2018-01-08 11:41





Itu semacam abjad berdasarkan karakter tunggal. Itu berarti "01" datang sebelum "1", karena nol memiliki nilai lebih rendah dari satu.

Inilah contohnya. Saya punya direktori dengan file bernama 1, 2, 3, 04, 05, dan 06. Mereka adalah file teks yang berisi nama file mereka sendiri:

test$ cat *
04
05
06
1
2
3

Begitu, iya nih itu akan; tetapi Anda perlu memastikan bahwa semua file Anda 'tersusun' dengan benar.

Baris bash script yang bagus ini akan memungkinkan Anda membandingkan secara visual nama file, sehingga sangat mudah untuk menemukan kesalahan apa pun:

for f in $(ls); do printf "%05s\n" "$f"; done

Keluarannya akan terlihat seperti ini:

   04
   05
   06
    1
    2
    3

Jika tidak, Anda harus memasukkan nama file: Bash skrip untuk memasukkan nama file di StackOverflow menjelaskan cara melakukannya.


Edit. Beri suara untuk jawaban Oli, jauh lebih baik. : P
Saya akan meninggalkan milik saya karena itu menambahkan sesuatu, tetapi Anda harus menggunakan solusinya,

mp3wrap output.mp3 `ls -1 *.mp3 | sort`

Ingat itu sort masih akan menyortir hal-hal dengan cara yang saya jelaskan di atas, Anda masih perlu memasukkan nama file jika panjangnya tidak sama.


4
2018-01-07 19:33





Saya menemukan layanan online audio-joiner untuk bekerja dengan baik dan mempertahankan cap waktu yang benar (bertentangan dengan mp3wrap).


3
2018-01-21 07:54





Kebanyakan orang menyarankan mp3wrap, tetapi memiliki kelemahan: file yang dihasilkan tidak melaporkan panjang penuh pada beberapa pemain, dan kemudian Anda tidak dapat mencari melewati titik itu.

mp3cat melakukan pekerjaan dengan cepat dan baik, sejauh yang saya tahu. Ini dapat diunduh http://mulholland.xyz/dev/mp3cat/, dan digunakan sebagai berikut:

mp3cat file1.mp3 file2.mp3 file3.mp3

kemungkinan lain akan terjadi sox

sudo apt-get install sox libsox-fmt-mp3
sox file1.mp3 file2.mp3 target.mp3

tetapi tampaknya sangat lambat (mungkin itu menerjemahkan dan mengulang audio?)


2
2017-12-23 15:20





Anda mungkin ingin mencoba menggunakan program pengeditan audio khusus (seperti Keberanian)


0
2018-01-07 19:26





aku cinta komentar bmaupin, namun bisa menghasilkan semacam alami (versi) angka dengan menggunakan sort -V:

find . -maxdepth 1 -iname '*.mp3' -print0 | sort -Vz | xargs -0 mp3wrap ../tmp.mp3

dan Anda tidak perlu berurusan dengan karakter khusus seperti ' " () [] {} dalam nama file.


0
2018-02-19 13:38