Làm thế nào bạn có thể cắt các tập tin mp3 bằng cách sử dụng `ffmpeg`?


10

Đây là một câu đố MP3 âm thanh Linux đã làm tôi khó chịu một lúc:

Làm cách nào để cắt bớt vài giây đầu khỏi tệp âm thanh MP3? (Tôi không thể ffmpeg -sslàm việc với định dạng 00:01 hoặc 1.000)

Cho đến nay, để làm những gì tôi muốn, tôi sử dụng nó theo cách GUI có thể chậm hơn đối với một tệp và chắc chắn chậm hơn đối với một loạt tệp.


1
Một bản cập nhật. Sau đó, tôi tình cờ phát hiện ra rằng ffmpeg rất kén chọn định dạng thời gian --ss và tôi có thể dễ dàng cắt bớt 9 giây đầu tiên bằng cách chỉ định -ss 00:00:09 (lưu ý rằng nó cần tất cả 3 số ở định dạng hh: mm: ss) Phiên bản tôi đang sử dụng có thể cũ ... Phiên bản FFmpeg SVN-r18709, Bản quyền (c) 2000-2009 Fabrice Bellard, et al.
Mark Hudson

Câu trả lời:


5

Để chỉnh sửa mp3 trong linux, tôi khuyên bạn nên sox . Nó có một trimhiệu ứng đơn giản để sử dụng sẽ làm những gì bạn yêu cầu (xem phần man soxdữ liệu - tìm kiếm (nhấn /) cho "trim start"). Thí dụ:

sox input.mp3 output.mp3 trim 1 5

Bạn đã không đề cập đến nó, nhưng nếu mục đích của bạn chỉ là loại bỏ sự im lặng ở phần đầu của tệp, bạn sẽ thấy silencehiệu quả hữu ích hơn nhiều ( man sox, tìm kiếm "giai đoạn trên")


Cảm ơn, tuyệt vời: nó đã làm việc. Tôi đã kết thúc bằng cách sử dụng trimcho đơn giản. Trình xuống duy nhất là sox FAIL formats: can't open output file 'blah.mp3': SoX was compiled without MP3 encoding support--so, nhập lại ffmpeg: /
Mark Hudson

Điều đó có vẻ bất thường. Trên máy tính của tôi, nó hoạt động mà không gặp vấn đề gì với mp3. Đây là một vấn đề của cấu hình thời gian xây dựng. Làm thế nào mà bạn cài đặt nó?
rozcietrzewiacz

@rozcietrzewiacz, nếu bạn cài đặt sox từ kho lưu trữ phân phối, rất có thể bạn sẽ nhận được sox mà không cần hỗ trợ MP3 (vì vấn đề giấy phép). Ví dụ: trên Fedora 17:no handler for file extension mp3
maxschlepzig

4

Bạn có thể thử sử dụng mp3splt , có thể phân tách các tệp MP3 và Ogg và có một ưu điểm là nó không mã hóa lại tệp, do đó tránh mất chất lượng.


1
Tôi thích nó; cảm ơn. Nó đơn giản và có nhiều tùy chọn ... Ví dụ: đây là lệnh tôi vừa sử dụng, thêm thời gian phân chia vào tên tệp: mp3splt "$file" 4.12 27.55.7... Nó cho phép định dạng tên đầu ra tùy chỉnh và nhiều điểm phân tách.
Peter.O

1

Hãy chắc chắn rằng thông số kỹ thuật thời gian của bạn bắt đầu với giờ.

Để trích dẫn trang man ffmpeg :

vị trí có thể ở dạng giây hoặc ở dạng "hh: mm: ss [.xxx]"

Điều đó có nghĩa là khi bạn chọn cú pháp thứ 2, chỉ có .xxxphần là tùy chọn. Khác ffmpeg có thể phân tích sai nó như giây.

Tương tự như vậy trong thời gian:

thời lượng có thể là một số tính bằng giây hoặc trong "hh: mm: ss [.xxx]"

Một cạm bẫy khác là thứ tự của các đối số ffmpeg (ví dụ: -ss/ -ttùy chọn cho một tệp đầu vào phải đến trước -itùy chọn).

Thí dụ

$ 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

Với đặc điểm kỹ thuật, -ss 1:05:59.3 -t 2:03.9bạn sẽ nhận được một kết quả khác (tức là một đoạn dài 2 giây).

(Đã thử nghiệm trên Fedora 17 với phiên bản ffmpeg 0.10.7.)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.