Jak mogę naprawić nieprawidłowy czas trwania mp3?


22

Mam wiele utworów w bibliotece muzyki, które wyświetlają niepoprawne wartości czasu trwania, dlatego odtwarzam tylko częściowo w Clementine. W Banshee i niektórych innych graczach pokazują różne wartości czasu trwania, a czasem odtwarzają pełną piosenkę.

Czy istnieje sposób, aby to naprawić bez konieczności „ponownego kodowania” utworu?

Odpowiedzi:


24

Pliki MP3 Diags mogą naprawić nieprawidłowe czasy trwania (i inne błędy). Jest to oprogramowanie typu open source oraz w repozytoriach. To narzędzie GUI.

Instalacja

sudo apt-get install mp3diags mp3diags-doc

Inną opcją jest MP3val , z którego można korzystać za pomocą wiersza polecenia lub GUI:

Instalacja

sudo apt-get install mp3val

Przykład użycia

mp3val damaged.mp3 -f -t

-f: napraw błędy, -tzachowaj oryginalny znacznik czasu


To zadziałało dla mnie. Używam catdo łączenia części audiobooka w jeden plik ( cat 1.mp3 2.mp3 > out.mp3) i to działa świetnie do odtwarzania, ale prawie każdy odtwarzacz robi się zwariowany ze znacznikami czasu, a nawet mediainfopokazuje czas trwania od pierwszego pliku, a nie razem.
blockloop

catjest mniej niż idealny do zadań takich jak łączenie plików mp3. Lepszy sposób: http://superuser.com/questions/314239/how-to-join-merge-many-mp3-files
phoibos

Dlaczego myślisz, że? Pliki MP3 nie są niczym więcej niż surowymi strumieniami i są prawie idealnym kandydatem do catbycia poza trywialnymi efektami ubocznymi rozwiązanymi przez prostą ponowną ocenę danych nagłówka Xing. Nawet bez mp3val pliki są odtwarzane w każdym odtwarzaczu, przez który je wysłałem. catjest niezwykle wydajny i DUŻO szybszy niż ponowne kodowanie za pomocą ffmpeg. Nawet z dodanym poleceniem mp3val.
blockloop

ffmpegz concati -acodec copyrobi nie ponownie zakodować - to tylko kopie strumienie (tak to szybko), ale tworzy odpowiedni plik w pierwszej kolejności (bez niepotrzebnych danych i nagłówka tag pojawia się wielokrotnie w otrzymanych plików).
phoibos,

10

Jeśli nie chcesz instalować niczego nowego, spróbuj z ffmpeg :

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

Idealne rozwiązanie, działa również, jeśli sam plik ffmpeg utworzył niewłaściwy plik mp3!
Pierpaolo Cira

To faktycznie działało dla mnie, kiedy mp3vali mp3checkrozwiązania nie. (Dla pewności, nie koduje się ponownie, prawda?)
Noldorin

W przypadku opcji -acodec copy nie jest ponownie kodowany. Jeśli chcesz to zweryfikować, spróbuj z i bez niego i sprawdź, jak szybko to idzie.
Alcaro

1

Oprócz nagłówków VBR, które nie pasują do rzeczywistego dźwięku (którego użyłbyś mp3valdo poprawienia, jak wspomniano w drugiej odpowiedzi), innym powodem może być plik MP3 z tagiem ID3, który ma niepoprawną wartość dla TLENtagu. Możesz to naprawić za pomocą mid3v2narzędzia z mutagenpakietu, aby usunąć tag (najwyraźniej jest to opcjonalne):

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

Odtwarzacz muzyki Quodlibet ma również wygodną wtyczkę „Fix MP3 Duration”, której można użyć do tego celu.

(Źródło Quodlibet FAQ: http://quodlibet.readthedocs.org/en/latest/guide/faq.html )


1

mp3check działał idealnie dla mnie również z symbolami wieloznacznymi.

sudo apt-get install mp3check

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

pomógł, gdy Windows Media Player pokazał nieprawidłowy czas trwania pliku mp3
Mantas D

OSTRZEŻENIE Jeśli masz tagi id3v2, okładkę itp., Bądź bardzo świadomy tych problemów (nauczyłem się na własnej skórze
digitaltoast
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.