본문 바로가기
개발이야기

MP3 총 재생 시간 계산하기

by 코저씨 2022. 1. 24.
728x90

MP3 파일의 총 재생 시간을 구하는 방법은 다음과 같다.

 

총 재생시간(초) 계산식 1
 = ( 파일 크기 - ID3를 제외한 첫 MP3 프레임 시작 offset)  *  8  /  비트레이트 

파일크기 : 파일 전체 크기

ID3를 제외한 첫 MP3 프레임 시작 offset : 첫 번째 MP3 Sync word 가 시작하는 파일 오프셋 

비트레이트 : 음원의 비트레이트 (192kbps 등)


예를 들어

파일 크기가 6013734byte 이고, 비트레이드가 192 kbps일때, 시작 offset이 138 이면

( 6013734 - 138 ) * ( 8  / 192000 ) = 250.56 이 나온다. 

 

분 단위로 변경 하면 250 / 60 = 4분, 250 % 60 = 10초 즉, 4분 10초 짜리 음원이 된다.

 

단 C언어 등의 프로그램으로 코딩하려면  저 위의 8 / 192000 구간은 최적화가 필요하다.

 

비트레이트는 bps 단위로 사용하면 192000 이라는 큰 단위가 사용되는데, 이를 kbps로 한다고 하면

8 / (192*1000)  가 되고, 192는 가변값이지만 8과 1000은 고정값임으로 미리 계산한다. 

 

즉, 1 / (192 * 125) 가 된다. 정리하면 아래 코드 처럼 된다.

총 재생시간(초) 계산식 2
 = ( 파일 크기 - ID3를 제외한 첫 MP3 프레임 시작 offset )  / ( 비트레이트(kbps) * 125) 

 

728x90