MP3 파일에서 글리치를 감지하고 가능한 경우 수정하는 도구가 있습니까? [닫은]


31

내 컬렉션에는 다음과 같은 결함이있는 MP3가 포함되어 있습니다.

  • 로딩시 잘못된 지속 시간 표시
  • 사소한 점프
  • 지속 시간이 1 분 남았음에도 불구하고 갑자기 종료 됨
  • 소음

가능한 한 많은 글리치를 감지하고 고정 할 수있는 것을 고칠 수있는 도구를 찾고 있습니다 (예를 들어 대부분의 경우 소음을 간단히 제거 할 수는 없습니다).


그것들은 플레이어 문제처럼 들립니다. MP3 파일에 의한 것입니까?
digitxp

@digitxp 갑작스러운 결말은 파일의 일부가 누락되었을 수 있지만 VLC에 의해 잘못 표시되는 시간이 원인 일 수 있습니다. 하지만 여전히 수단은이 뭔가 다른 파일이 올바른 시간을 표시하기 때문에 파일 문제. 소음 점프 인해 CD 읽기 나쁜에있을 수 있습니다, 나는 두 번 검사를하지 않고 내 컬렉션을 디지털화 : - /
토비아스 Kienzler

음, 잘못된 지속 시간은 VBR 대 CBR에서 비롯 될 수 있습니다 ... 나머지 문제는 불완전 성과 CD 읽기 오류입니다.
Tobias Kienzler

답변:


35

명령 행 도구 mp3val을 사용하면 mp3 파일의 구조적 결함을 신속하게 스캔하고 선택적으로 복구 할 수 있습니다. 나는 "다치게 할 수 없다"는 원칙에 따라 내 컬렉션의 거의 모든 파일을 실행하려고 시도합니다. 그것은 결과적으로 중요하지 않은 것부터 심각한 것까지 결함이있는 놀라운 수의 파일을 식별합니다.

mp3val은 VBR 파일에 VBR 헤더 부족 (가장 잘못된 지속 시간 및 탐색 문제의 원인)과 같은 헤더 부족을 인식하고 수정하는 데 특히 좋습니다. 그러나 또한 가비지 / 손상된 오디오 프레임 데이터, 일부 플레이어가 파일에 남아있는 경우 일부 플레이어가 우아하게 처리 할 수없는 부패를 제거합니다.

mp3의 전체 디렉토리를 실행하고, 문제가있는 파일 만 복구하고, 백업을 유지하거나 (선택적으로), 타임 스탬프를 유지하고 (선택적으로), 텍스트 파일에 세션을 로깅 (선택적으로)하도록 할 수도 있습니다.

그리고 무료이며 오픈 소스입니다! (링크는 sourceforge 프로젝트로 연결됩니다.)

편집 : 마지막으로 언급 한 것을 잊어 버렸습니다. "하지만 mp3val은 2009 년 이후로 업데이트되지 않았습니다 !!" 그건 사실 이야! 이 됐어요 잘 작동 2009 및 업데이 트를 필요로하지 않았다. (결국 지난 2 년 동안 MP3 파일 형식이 변경된 것과는 다릅니다!)


또한 당신이 편집하기 위해 두 번째로 +1 :-) 유효한 버그가 여전히 열려 있는 것처럼 보이지만 ...
Tobias Kienzler

1
예, mp3val은 Windows 7에서 약간의 난해한 파일 이름으로 인해 실제로 문제가있는 것 같습니다. 운이 없었어. (현대 컴퓨팅의 첫 번째 규칙 : 충분히 큰 MP3 모음에는 지정된 형식의 난해한 파일 이름이 포함 된 파일이 포함됩니다.) 누구나 Windows 프로그래머가 만든 파일을 사용할 수 있습니다! [OffTopic : mp3val svn을 살펴보면서 가장 최근의 패치가 ME에서 나왔음을 알았습니다. 특히 내가 완전히 잊어 버린 이후로! ;-)]
FeRD

1
불행히도 mp3val가 내 파일들 중 일부를 고치지 못했습니다 :(.하지만 MP3Diags그것들을 고칠 수 없었습니다 (VBR 파일의 Xing 헤더로 인해 잘못된 지속 시간이 표시됨)
scai

@Marecky 매우 이상합니다. 방금 mp3valFedora 28을 사용해 보았지만 여전히 잘 작동합니다. 가장 난해한 라이브러리 종속성은 libm.so.6또는 중 하나 libstdc++.so.6이므로 호환되지 않는 ABI 손상과 같지 않습니다. 기본 모드 : 그냥하지만, 확인 mp3val 되지 않습니다 모든 파일을 만지지 그것이 실행 않다면, 그것은 단지 수정을 할 수 있습니다 -f- 스캔 모드는 기록 어디에서도 다음, 파일 만 플래그 WARNING:또는 ERROR:수정 될 것이다. 수정 가능한 문제를 발견하지 못하면 파일을 그대로 둡니다.
FeRD

1
@FeRD-당신은 옳습니다. 현재 어떤 프로그램인지 (Audacious, Gnome MPV 또는 Rhythmbox Music Player) 기억하지 않습니다. 마지막으로 CD를 리핑 한 후 새 파일을 이러한 프로그램 중 하나의 재생 목록에 넣고 잘못 보았습니다. 추적 시간-그래서 mp3의 색인 (또는 내부에있는 것)이 잘못되었다고 생각 mp3val했지만 파일이 정확했습니다. 그래서 mp3val경고가 표시되지 않고 파일을 수정하지 않았습니다. 플레이어가 왜 트랙 시간을 잘못 표시했는지 모르겠습니다. 이전 댓글을 삭제하겠습니다.
Marecky

10

나는 당신이 이미 Google에서 첫 번째 옵션을 시도했다고 가정합니다 ...? 또한 펄 스크립트 mp3checker 가 유용 할 것입니다.

편집하다:

트랙을 복구하는 데 MP3 Diags (생명 해커 기사 링크)가 표시 될 수 있습니다.


감사합니다. checkmate는 문제 파일을 식별 할 수있는 유용한 도구입니다 (가능한 경우 문제를 해결하는 작업은 여전히 ​​남아 있음)
Tobias Kienzler

1
MP3 Diags의 경우 엄지 손가락입니다. mp3 플레이어가 지속 시간을 올바르게보고하지 못하는 문제가있었습니다. MP3 Diags가 문제를 발견하고 수정했습니다.
David L

4

mpck 는 Windows 및 GNU / Linux에서 작동합니다.

홈페이지 : http://checkmate.gissen.nl/

잘못된 프레임을 감지하고 선택적 보고서를 생성합니다.
Windows 용 GUI 프론트 엔드도 있습니다.

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

최신 정보:

이 프로그램은 utf-8 파일 이름을 완전히 처리 할 수있는 것처럼 보이지만 일본어, 중국어 또는 더 이국적인 글리프를 시도하지는 않았습니다.

젠투 (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

UTF-8 로켈이있는 Cygwin (Windows의 일본어 로케일)
기본 Windows 바이너리는 cygwin을 인식하지 못하므로 출력을 변환해야했습니다.

$ 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            

감사합니다, 이미 언급 된 그의 생각 이 대답
토비아스 Kienzler

mpck! = mp3check. 내가 잘못?
Ярослав Рахматуллин

아니요, 'Google의 첫 번째 옵션'이라는 링크입니다. 그럼에도 불구하고 +1은 기능에 대해 조금 자세히 설명했기 때문에
Tobias Kienzler

아 맞다 나는 그것을 무시했다. 나는 mp3val을 조사 할 것이지만, 지금까지 mpck는 mp3 검사기에서 필요한 모든 것을 할 수있었습니다.
Ярослав Рахматуллин

2
Linux에서는 mp3val에 대한 해결 방법을 적용 할 필요가 없습니다. AFAICT 참조 된 버그는 Windows 전용 문제입니다. (명령 줄을 구문 분석하거나 파일 이름을 처리하는 데 사용하는 기능은 유니 코드로 안전하지 않아야합니다.) Linux에서는 다음과 같이 이름이 바뀐 mp3 파일 ( Tësting 1.mp3 Testíng ®eally hµrd.mp3 ☭They don't get much weirder☭.mp3ghex 로 임의의 블록을 0으로 지음)으로 인해 손상되었습니다. ... mp3val에는 제대로 처리하지 못했습니다.
FeRD

0

더 간단한 방법은 ffmpeg를 사용하여 ID3 태그의 지속 시간이 잘못된 파일에서 파일을 복사하는 것입니다. 이로 인해 올바른 정보가 작성됩니다.

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

복사를 사용하기 때문에 원래 인코딩에 소요되는 시간의 일부가 걸립니다. 이것은 노래로는 거의 눈에 띄지 않지만 7 시간 오디오 북으로 정말 감사합니다. 다시 인코딩 한 후 ID3 태그에 올바른 정보가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.