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.