Bagaimana Anda bisa memotong file mp3 menggunakan `ffmpeg`?

10

Berikut adalah teka-teki MP3 audio Linux yang telah mengganggu saya untuk sementara waktu:

Bagaimana cara memotong awal beberapa detik dari file audio MP3? (Saya tidak bisa ffmpeg -ssbekerja dengan format 00:01 atau 1.000)

Sejauh ini, untuk melakukan apa yang saya inginkan, saya melakukan itu dengan cara GUI yang mungkin lebih lambat untuk satu file, dan pasti lebih lambat untuk beberapa file.

Mark Hudson
sumber
1
Sebuah pembaharuan. Kemudian, saya menemukan fakta bahwa ffmpeg sangat pilih-pilih tentang format waktu --ss, dan saya dapat dengan mudah memotong 9 detik pertama misalnya dengan menetapkan -ss 00:00:09 (perhatikan bahwa semua perlu 3 angka dalam format jj: mm: dd) Versi yang saya gunakan mungkin sudah lama ... Versi FFmpeg SVN-r18709, Hak cipta (c) 2000-2009 Fabrice Bellard, dkk.
Mark Hudson

Jawaban:

5

Untuk mengedit mp3 di linux, saya sarankan sox . Ini memiliki efek yang mudah digunakan trimyang akan melakukan apa yang Anda minta (lihat man soxdatails - cari (tekan /) untuk "trim start"). Contoh:

sox input.mp3 output.mp3 trim 1 5

Anda tidak menyebutkannya, tetapi jika tujuan Anda hanya untuk menghapus keheningan di awal file, Anda akan menemukan silenceefek yang jauh lebih berguna ( man sox, cari "periode-atas")

rozcietrzewiacz
sumber
Terima kasih, luar biasa: berhasil. Saya akhirnya menggunakan trimuntuk kesederhanaan. Satu-satunya downer adalah sox FAIL formats: can't open output file 'blah.mp3': SoX was compiled without MP3 encoding support- jadi, masukkan kembali ffmpeg: /
Mark Hudson
Sepertinya itu tidak biasa. Di komputer saya, ini berfungsi tanpa masalah dengan mp3. Ini adalah masalah konfigurasi build-time. Bagaimana Anda menginstalnya?
rozcietrzewiacz
@rozcietrzewiacz, jika Anda menginstal sox dari repositori distribusi, Anda kemungkinan besar akan mendapatkan sox tanpa dukungan MP3 (karena masalah lisensi). Misalnya pada Fedora 17:no handler for file extension mp3
maxschlepzig
4

Anda dapat mencoba menggunakan mp3splt , yang dapat membagi file MP3 dan Ogg dan memiliki keuntungan bahwa itu tidak menyandikan ulang file tersebut, sehingga menghindari kehilangan kualitas.


sumber
1
Saya suka itu; Terima kasih. Ini sederhana, namun memiliki banyak pilihan ... Sebagai contoh: di sini adalah perintah yang baru saja saya gunakan, yang menambahkan waktu split ke nama file: mp3splt "$file" 4.12 27.55.7... Ini memungkinkan pemformatan nama keluaran kustom dan beberapa titik perpecahan.
Peter.O
1

Pastikan spesifikasi waktu Anda mulai dengan jam.

Untuk mengutip halaman manual ffmpeg :

posisi bisa dalam detik atau dalam bentuk "jj: mm: dd [.xxx]"

Itu berarti bahwa ketika Anda memilih sintaks ke-2 hanya .xxxbagian yang opsional. Lain ffmpeg mungkin salah menguraikannya sebagai detik.

Sama berlaku untuk durasi:

durasinya bisa berupa angka dalam detik, atau dalam "jj: mm: dd [.xxx]"

Perangkap lain adalah urutan argumen ffmpeg (misalnya opsi -ss/ -tuntuk file input harus ada sebelum -iopsi).

Contoh

$ wget http://traffic.libsyn.com/twiv/TWiV179.mp3
$ ffmpeg -ss 1:05:59.3 -t 00:02:03.9 -i TWiV179.mp3 -acodec copy \
     what_is_a_hmm_twiv179.mp3

Dengan spesifikasi -ss 1:05:59.3 -t 2:03.9Anda akan mendapatkan hasil yang berbeda (yaitu bagian yang panjangnya 2 detik).

(Diuji pada Fedora 17 dengan ffmpeg versi 0.10.7.)

maxschlepzig
sumber