정확한 검색을 위해 "ffmpeg -ss" 지원 형식이 있습니까? mp3가 작동하지 않는 것 같습니다. .wav만 작동합니다.

정확한 검색을 위해 "ffmpeg -ss" 지원 형식이 있습니까? mp3가 작동하지 않는 것 같습니다. .wav만 작동합니다.

ffmpeg -ss 00:00:00 -i 'input.mp3' -to 00:25:00 -c 출력.mp3 복사

나는 이 특정 스크립트가 mp3 파일에서는 작동하지만 .wav 파일에서는 작동하지 않는다는 것을 스크립팅하는 동안 알아차렸습니다. 무슨 일이 일어나는지 (이상하게도) 25분짜리 .mp3 파일로 복사하지만 본질적으로 끝 부분의 오디오가 잘립니다. 어떤 이유에서인지 실제 오디오가 25분 경계를 넘어서 늘어나는 것 같아서 클리핑이 발생합니다. 하지만 .wav 파일에서는 이런 일이 발생하지 않습니다. 매뉴얼 페이지를 검색해 보니 아래와 같은 내용을 발견했습니다.

-ss 위치(입력/출력) 입력 옵션으로 사용되는 경우(-i 이전) 이 입력 파일에서 위치를 찾습니다.대부분의 형식에서는 정확하게 검색하는 것이 불가능하므로 ffmpeg는 위치 이전에 가장 가까운 검색 지점을 검색합니다.트랜스코딩 및 -accurate_seek가 활성화되면(기본값) 탐색 지점과 위치 사이의 이 추가 세그먼트가 디코딩되어 삭제됩니다. 스트림 복사를 수행하거나 -noaccurate_seek를 사용하면 보존됩니다.

내 질문은 첫째, .mp3가 정확하게 검색되는 지원 형식이 아닌 것으로 보이지만 발생한 상황을 고려하면 .wav 파일이 지원되는 것 같습니다. 이것이 오디오를 클리핑한 이유입니까? 둘째, 100% 정확한 -ss 시간을 갖는 지원 형식에 관한 문서가 있습니까? 매뉴얼 페이지에서는 찾을 수 없습니다. 어쩌면 문서가 존재할 수도 있지만 만약 그렇다면 해당 섹션에 나열되어 있어야 한다고 생각합니다. 이것은 ffmpeg에 대한 잘못된 문서이므로 업데이트해야 합니다! 도움이 안 되는 막연한 정보.

답변1

완벽하게 검색 가능한 유일한 형식은 압축되지 않은 형식입니다. 즉, wav와 pcm입니다. 모든 압축 형식은 "프레임"으로 인코딩됩니다(압축이 작동하는 방식이기 때문입니다). 코덱 복사를 사용하면 전체 프레임만 복사할 수 있습니다. 모든 코덱은 프레임당 샘플에 대해 서로 다른 숫자를 사용합니다.

관련 정보