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
'개발이야기' 카테고리의 다른 글
PIC32 MPLAB X 개발 후기 (0) | 2022.03.13 |
---|---|
MP3 현재 재생시간 계산하기 (플레이타임) (0) | 2022.01.24 |
펌웨어에서 FAT파일시스템의 확장자 구분 (0) | 2022.01.18 |
Helix MP3 Decoder 와 ID3 처리 (0) | 2022.01.18 |
동적 라이브러리 SO의 체크섬이 달라지는 이유 (0) | 2021.12.18 |