Làm thế nào tôi có thể sửa thời lượng mp3 không chính xác?


22

Tôi có một số bài hát trong thư viện Âm nhạc của mình hiển thị các giá trị thời lượng không chính xác và do đó chỉ phát một phần trong Clementine. Trong Banshee và một số người chơi khác, họ hiển thị các giá trị thời lượng khác nhau và đôi khi phát toàn bộ bài hát.

Có cách nào để khắc phục điều này mà không phải "mã hóa lại" bài hát không?

Câu trả lời:


24

MP3 Diass có thể sửa thời lượng không chính xác (và các lỗi khác). Nó là nguồn mở và trong các kho lưu trữ. Nó là một công cụ GUI.

Cài đặt

sudo apt-get install mp3diags mp3diags-doc

Một tùy chọn khác là MP3val , có thể được sử dụng thông qua dòng lệnh hoặc qua GUI:

Cài đặt

sudo apt-get install mp3val

Ví dụ sử dụng

mp3val damaged.mp3 -f -t

-f: sửa lỗi , -t: giữ dấu thời gian gốc


Điều này làm việc cho tôi. Tôi sử dụng catđể kết hợp các bộ phận audiobook thành một tệp ( cat 1.mp3 2.mp3 > out.mp3) và nó hoạt động rất tốt để phát lại nhưng hầu như mọi người chơi đều cảm thấy khó chịu với dấu thời gian và thậm chí mediainfohiển thị thời lượng từ tệp đầu tiên thay vì kết hợp.
blockloop

catít hơn lý tưởng cho các tác vụ như kết hợp mp3. Cách tốt hơn: http://superuser.com/questions/314239/how-to-join-merge-many-mp3-files
phoibos

Tại sao bạn nghĩ rằng? Các tệp MP3 không nhiều hơn các luồng thô và chúng gần như là ứng cử viên hoàn hảo để cattránh các tác dụng phụ tầm thường được giải quyết bằng cách đánh giá lại dữ liệu tiêu đề Xing đơn giản. Ngay cả khi không có mp3val, các tệp vẫn phát trong mọi trình phát tôi đã gửi chúng qua. catcực kỳ hiệu quả và NHIỀU nhanh hơn so với mã hóa lại với ffmpeg. Ngay cả với lệnh mp3val được thêm vào.
blockloop

ffmpegvới concat-acodec copykhông không tái mã hóa - nó chỉ sao chép suối (do đó, nó nhanh), nhưng tạo ra một tập tin thích hợp ở nơi đầu tiên (không có vô dụng tiêu đề & thẻ dữ liệu xuất hiện nhiều lần trong các tập tin kết quả).
phoibos

10

Nếu bạn không muốn cài đặt bất cứ thứ gì mới, hãy thử với ffmpeg :

ffmpeg -i file_orig.mp3 -acodec copy file_fixed.mp3

Giải pháp hoàn hảo, cũng hoạt động nếu tệp mp3 sai đã được tạo bởi chính ffmpeg!
Pierpaolo Cira

Điều này thực sự hiệu quả với tôi, khi mp3valmp3checkcác giải pháp thì không. (Chỉ để chắc chắn, nó không mã hóa lại, phải không?)
Noldorin

Với bản sao -acodec, nó không mã hóa lại. Nếu bạn muốn xác minh, hãy thử có và không có nó và kiểm tra xem nó diễn ra nhanh như thế nào.
Alcaro

1

Ngoài các tiêu đề VBR không khớp với âm thanh thực tế (mà bạn sẽ sử dụng mp3valđể sửa, như đã đề cập trong câu trả lời khác), một lý do khác có thể xảy ra là do tệp MP3 có thẻ ID3 có giá trị không chính xác cho TLENthẻ. Bạn có thể khắc phục điều này bằng cách sử dụng mid3v2công cụ từ mutagengói để xóa thẻ (rõ ràng là tùy chọn của nó):

$ mid3v2 --delete-frames=TLEN filename.mp3

Trình phát nhạc Quodlibet cũng có plugin "Fix MP3 Thời gian" tiện lợi mà bạn có thể sử dụng để thực hiện việc này.

(Lấy từ Câu hỏi thường gặp về Quodlibet: http://quodlibet.readthedocs.org/en/latest/guide/faq.html )


1

mp3check hoạt động hoàn hảo đối với tôi cũng với các ký tự đại diện.

sudo apt-get install mp3check

mp3check {filename or wildcard} --cut-junk-start --cut-junk-end --fix-headers

đã giúp khi trình phát phương tiện Windows hiển thị thời lượng tệp mp3 sai
Mantas D

CẢNH BÁO Nếu bạn có thẻ id3v2, ảnh bìa, v.v., hãy hết sức chú ý đến các vấn đề này (tôi đã học theo cách khó khăn) bug.launchpad.net/ubfox/+source/mp3check/+bug/592775 bug.launchpad.net/ub Ubuntu / + nguồn / mp3check / + bug / 1348223
digitaltoast
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.