Apakah ada alat yang dapat mendeteksi (dan jika mungkin, memperbaiki) gangguan dalam file MP3? [Tutup]

31

Koleksi saya mengandung beberapa MP3 yang memiliki beberapa gangguan seperti:

  • menampilkan durasi yang salah saat memuat
  • lompatan kecil
  • tiba-tiba berakhir meskipun klaim durasi satu menit tersisa
  • kebisingan

Saya mencari alat yang dapat mendeteksi sebanyak mungkin gangguan ini dan memperbaikinya yang dapat diperbaiki (jelas misalnya kebisingan tidak dapat dihilangkan dalam banyak kasus).

Tobias Kienzler
sumber
Itu terdengar seperti masalah pemain. Apakah Anda yakin itu disebabkan oleh file MP3 Anda?
digitxp
@digitxp ending yang tiba-tiba mungkin disebabkan oleh bagian file yang hilang, tetapi waktu yang ditampilkan secara salah mungkin disebabkan oleh VLC. Tapi tetap saja itu berarti ada sesuatu yang salah dengan file tersebut karena file lain menunjukkan waktu yang tepat. Kebisingan dan lompatan mungkin karena pembacaan CD yang buruk, saya mendigitalkan koleksi saya tanpa melakukan pemeriksaan ulang: - /
Tobias Kienzler
hm, durasi yang salah bisa berasal dari VBR vs CBR ... sehingga masalah yang tersisa adalah ketidaklengkapan dan kesalahan pembacaan CD
Tobias Kienzler

Jawaban:

35

Alat baris perintah mp3val membuat pekerjaan pemindaian cepat, dan secara opsional memperbaiki, kerusakan struktural pada file mp3. Saya mencoba menjalankannya di hampir setiap file dalam koleksi saya, dengan prinsip "tidak ada salahnya". Ini mengidentifikasi jumlah file yang sangat bagus dengan cacat mulai dari tidak penting hingga parah.

mp3val sangat baik dalam mengenali dan memperbaiki kekurangan header, seperti kurangnya header VBR dalam file VBR (sumber durasi yang paling salah dan mencari masalah). Tapi itu juga akan menghapus data frame sampah / rusak audio, cruft tidak dapat digunakan bahwa beberapa pemain dapat menangani kurang dari elegan jika dibiarkan dalam file.

Bahkan dapat dikatakan untuk menjalankan seluruh direktori mp3, memperbaiki hanya file-file yang bermasalah, menjaga cadangan (atau opsional tidak), menjaga stempel waktu (opsional), dan masuk sesi ke file teks (opsional).

Dan ini gratis dan open source! (Tautannya ke proyek sourceforge-nya.)

EDIT: Satu hal terakhir yang saya lupa sebutkan. "Tapi mp3val belum diperbarui sejak 2009 !!", saya mendengar Anda menangis. Itu benar sekali ! Sudah berfungsi dengan baik sejak 2009, dan belum membutuhkan pembaruan. (Lagi pula, ini tidak seperti format file MP3 yang telah berubah dalam 2 tahun terakhir!)

FeRD
sumber
juga +1 kedua kalinya untuk Anda mengedit :-) meskipun tampaknya ada beberapa bug yang valid masih terbuka ...
Tobias Kienzler
1
Ya, sepertinya mp3val memiliki beberapa masalah nyata di bawah Windows 7 dengan beberapa nama file esoterik. Sangat disayangkan. (Aturan pertama komputasi modern: koleksi MP3 yang cukup besar akan berisi file dengan bentuk nama esoterik apa pun.) Itu bisa menggunakan beberapa luv dari programmer Windows, kalau ada yang mau! [OffTopic: Sungguh tak masuk akal melihat ke mp3val svn dan mengetahui bahwa tambalan terbaru datang dariKU - terutama karena aku benar-benar lupa melakukannya! ;-)]
FeRD
1
Sayangnya mp3val gagal untuk memperbaiki beberapa file saya :(. Tetapi MP3Diagsbisa memperbaikinya (tajuk Xing pada file VBR yang menyebabkan durasi yang salah ditampilkan).
scai
@ Marsecky Itu sangat aneh. Saya baru saja mencoba mp3valpada Fedora 28, dan masih berjalan dengan baik. Ketergantungan perpustakaan yang paling esoterik yang dimilikinya adalah salah satu libm.so.6atau libstdc++.so.6, jadi sepertinya bukan kerusakan ABI yang tidak kompatibel. Hanya untuk memeriksa, meskipun: dalam mode default mp3val tidak akan menyentuh file apa pun, itu hanya akan membuat modifikasi jika dijalankan dengan -fflag - dan bahkan kemudian, hanya file di mana mode pemindaian login WARNING:atau ERROR:akan dimodifikasi. Jika tidak mendeteksi masalah yang dapat diperbaiki, itu akan membuat file Anda tidak tersentuh.
FeRD
1
@FeRD - Anda benar, saya tidak ingat sekarang program mana itu (Audacious, Gnome MPV atau Rhythmbox Music Player) tetapi setelah menyalin cd dengan yang terakhir saya memasukkan file baru ke daftar putar salah satu program ini dan melihat salah melacak waktu - itu sebabnya saya berpikir bahwa mp3 memiliki indeks yang salah (atau apa pun yang ada di dalamnya) dan berjalan pada mereka mp3val- tetapi file-file itu benar - itulah sebabnya mp3valtidak pernah menampilkan peringatan dan tidak memperbaiki file. Saya tidak tahu mengapa pemain menunjukkan waktu lintasan yang salah, saya akan menghapus komentar saya sebelumnya.
Marecky
10

Saya berasumsi Anda sudah mencoba opsi pertama di google ...? Juga skrip perl, mp3checker , yang mungkin berguna.

Edit:

Sedangkan untuk memperbaiki trek Anda mungkin memberikan tampilan Diags MP3 (tautan ke artikel penyelidik).

John
sumber
terima kasih, skakmat adalah alat yang bagus untuk mengidentifikasi file masalah (yang masih meninggalkan tugas memperbaiki hal-hal jika mungkin)
Tobias Kienzler
1
Acungan jempol untuk MP3 Diags. Saya mengalami masalah dengan pemutar mp3 saya yang tidak melaporkan durasinya dengan benar. Diags MP3 menemukan dan memperbaiki masalahnya.
David L
4

mpck bekerja di Windows dan GNU / Linux.

Halaman depan: http://checkmate.gissen.nl/

Ini mendeteksi frame yang buruk dan menghasilkan laporan opsional.
Ada antarmuka GUI untuk windows juga.

mpck 0.19 - checks a MP3 file for errors

Usage: mpck [OPTION]... [FILE]...

Verbosity:
   -v, --verbose        print some extra info
   -q, --quiet          print only Ok or Bad per file
   -B, --badonly        only report bad files
Other options:
   -R, --recursive      check directories recursively
   -e, --extention=EXT  only check files ending on .EXT
   -r                   short for -R -e mp3
   -m, --maxname=NUM    report bad for filenames which exceed NUM characters
   -n, --namecheck      check for strange characters in the filename
   -x, --xmloutput      output results in XML
   -h, --help           print this help, then exit
   -V, --version        print version information

Memperbarui:

Program ini tampaknya sepenuhnya mampu menangani nama file utf-8, meskipun saya belum mencoba mesin terbang Jepang, Cina atau lebih eksotis.

Gentoo (UTF-8)

$ mpck -r 2000\ -\ Завтрак\ на\ траве\ \(USA\)/  | grep SUM
SUMMARY: 2000 - Завтрак на траве (USA)//04-ja-sbrasyvaju-kozhu.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//07-tak-vot-kakaja-ty-demo.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//09-evrej-i-goj.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//06-teplyj-dozhd'-demo.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//01-vse-napominaet-o-tebe.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//02-marsh-novoselov--sf-unplugged.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//05-rubaha.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//03-kalifornia-love.mp3

Cygwin dengan UTF-8 lokal (lokal jepang di windows)
Biner windows asli tidak mengetahui cygwin jadi saya harus mengubah output.

$ mpck.exe -r "2000 - Завтрак на траве (USA)" | grep 'SUM' | 
       iconv -f CP932 -t UTF-8
SUMMARY: 2000 - Завтрак на траве (USA)\04-ja-sbrasyvaju-kozhu.mp3          
SUMMARY: 2000 - Завтрак на траве (USA)\07-tak-vot-kakaja-ty-demo.mp3       
SUMMARY: 2000 - Завтрак на траве (USA)\09-evrej-i-goj.mp3                  
SUMMARY: 2000 - Завтрак на траве (USA)\06-teplyj-dozhd'-demo.mp3          
SUMMARY: 2000 - Завтрак на траве (USA)\01-vse-napominaet-o-tebe.mp3        
SUMMARY: 2000 - Завтрак на траве (USA)\02-marsh-novoselov--sf-unplugged.mp3
SUMMARY: 2000 - Завтрак на траве (USA)\05-rubaha.mp3                     
SUMMARY: 2000 - Завтрак на траве (USA)\03-kalifornia-love.mp3            
Ярослав Рахматуллин
sumber
Terima kasih, meskipun itu sudah disebutkan dalam jawaban ini
Tobias Kienzler
mpck! = mp3check. Apakah aku salah?
Ярослав Рахматуллин
Tidak, itu tautan yang berlabel "opsi pertama di google". Namun +1 tetap karena Anda sedikit menguraikan fungsi
Tobias Kienzler
Oh benar Saya mengabaikannya. Saya akan memeriksa mp3val, tetapi sejauh ini mpck telah dapat melakukan semua yang saya butuhkan dari pemeriksa mp3.
Ярослав Рахматуллин
2
Di Linux, saya tidak perlu menerapkan solusi apa pun untuk mp3val - AFAICT bug yang dirujuk adalah masalah khusus Windows. (Apa pun fungsi yang digunakan untuk mem-parsing baris perintah atau menangani nama file tidak boleh Unicode-aman.) Di Linux, saya hanya rusak tangan (dengan memusatkan blok acak dengan ghex) file mp3 diganti nama sebagai berikut: Tësting 1.mp3 Testíng ®eally hµrd.mp3 ☭They don't get much weirder☭.mp3... mp3val tidak punya masalah dengan benar memproses semuanya.
FeRD
0

Simpler adalah menggunakan ffmpeg untuk menyalin file dari yang dengan durasi salah dalam tag ID3-nya. Ini menyebabkannya menulis informasi yang benar.

ffmpeg -i "audio.mp3" -acodec copy "audio_fixed.mp3"

Karena menggunakan salinan, dibutuhkan sebagian kecil dari waktu pengkodean asli. Ini hampir tidak terlihat dengan lagu, tetapi Anda sangat menghargainya dengan buku audio 7 jam. Setelah pengkodean ulang, tag ID3 sekarang memiliki informasi yang benar.

Miriam Bahasa Inggris
sumber