|
목록에서 글자 제한 23이였음 ?>
질문게시판 - 반드시 검색을 하신 후 원하는 답변을 찾을 수 없을 때, 질문을 올려주세요. |
| Posted by 박재성[날개달기] | 2004-09-26 23:58:23, Hit : 4022 | |
|
|
|
창조의 이진수읽어로 4바이트를 읽어들인후 읽어들인 이진수를 8자리 이진수로 바꾼다음에 합쳐서 32자리 이진수로 만드는 방법 있나요 ? |
|
|
박재성[날개달기] 2004-09-27 AM 12:09:47 |
|
|
|
ID3v1.1 태그 구조입니다.
v1 (http://www.id3.org/id3v1_blocks.gif) 과 달라진 점이라면,
comment 태그가 1바이트 줄어들고,
그 1바이트에 track number 를 쓸 수 있게 했다는 점입니다.
ID3v1 태그는 mp3 파일의 제일 끝에 위치해 있고, 그 크기는 128 바이트 고정입니다.
제일 처음에 'TAG' 라는 문자열로 ID3v1 태그가 시작됨을 알리구요. (3 bytes)
Title - 30 bytes
Artist - 30 bytes
Album - 30 bytes
Year - 4 bytes
Comment - 29 bytes
Track - 1 byte
genre - 1 byte
로 이루어져 있습니다.
ID3v2 태그는 mp3 파일 제일 처음에 위치합니다.
역시 ID3v1 태그처럼 'ID3' 라는 문자열로서 ID3v2 태그가 시작됨을 알립니다.
ID3v2 태그의 구조를 보면,
+-----------------------------+
| Header (10 bytes) |
+-----------------------------+
| Extended Header |
| (variable length, OPTIONAL) |
+-----------------------------+
| Frames (variable length) |
+-----------------------------+
| Padding |
| (variable length, OPTIONAL) |
+-----------------------------+
| Footer (10 bytes, OPTIONAL) |
+-----------------------------+
와 같이 이루어져 있습니다.
Header 부분을 보면,
ID3 - 3 bytes
version - 2 bytes
flags - 1 byte
size - 4 bytes
와 같이 되어있구요. 여기서 size 로부터 ID3v2 태그 전체의 사이즈를 구할 수 있습니다.
Extended Header, Padding, Footer 는 말그대로 option 인 고로 넘어갑니다.
사실은 뭔 소린지 읽어봐도 잘 모르겠습니다. ㅠ_ㅠ
중요한 건 Frames 입니다. 이곳에 ID3v1 태그에서의 title, artist, ... 와 같은 정보가
들어있죠.
하나의 frame 은
frame ID - 4 bytes
frame size - 4 bytes
frame flags - 2bytes
frame body - frame size 로 부터 구할 수 있는 프레임 사이즈 bytes
로 구성됩니다.
frame ID 는 해당 프레임의 종류를 나타내 주는 4 바이트 문자열입니다.
http://www.id3.org/id3v2.3.0.html#sec4 에 현 ID3v2 버전에서 지원되는 frame ID
종류가 나열되어 있습니다. (무쟈게 많죠-_-?)
이중에 우리가 가장 많이 쓰는 mp3 플레이어인 Winamp 에서 쓰이는 ID 는
아래 소스에 $frame_id 에 있는 것입니다.
그 외에 윈앰프에서 보면 Composer, Org.Artist, Copyright, URL,
Encoded By 등의 항목이 있지만 이 부분이 채워져 있는 mp3 를 한번도
본 적이 없는 관계로 제 소스에는 없습니다.
필요한 경우 위 ID 리스트에서 찾아서 추가해주시면 됩니다. ^^
결국, mp3 파일 하나의 구조를 전체적으로 보면 다음 그림과 같이 됩니다.
그림이 허접해도 이해를..^^;;
http://www.flyforu.com/temp/mp3.gif
아무쪼록 도움이 되길 바랍니다. ^^; |
|
|
박재성[날개달기] 2004-09-27 AM 12:10:50 |
|
|
|
mp3 정보를 읽어오는 php 예제인데요.
응용만 한다면 이미 ID3 테그 읽는 방법은
나와있으니까
헤더를 읽어서 분석하면 dll 파일 없이도.
비트 랑 기타 정보를 얻어올수 있지 않을까 생각중입니다 ^--^ |
|
|
지상현 2004-09-29 PM 3:24:05 |
|
|
|
제가 저번에 올린 창조압축기 예제를 보시면 그 안에 4 바이트 숫자 데이터를 파일이진읽어 명령어로 읽어서 숫자값으로 바꾸는 것이 있는데 참고해보시는 것도 좋을 것 같네요. |
|
|
지상현 2005-10-04 PM 6:58:42 |
|
|
|
손상진님께서 성공하셨습니다. |
|
|
박재성[날개달기] 2005-10-11 PM 6:28:39 |
|
|
|
지상현님 답변이 너무 늦은거같구요 -_-;
손상진님께서 만드셨지만 헤더구조에 대해서는
제가 약간 도움을 드렸습니다.. ㅡ ㅡ; |
|
|
지상현 2005-10-12 PM 2:34:09 |
|
|
|
음. 그냥 둘러보다가 눈에 뜨이길래 -_-;
Safeinteger 를 일반 정수로 바꾸는 것은 제가 도움 드렸었죠 -_-; |
|
|
지우개 Expert 3.0 제작자 : 천호성 님 [LINK] |
|
|
|
대박로또2005 제작자 : 최재일 님 [LINK] |
|
|
1 | 박종훈 님 | 15292 점 | |
2 | 지상현 님 | 8809 점 | |
3 | 손상진 님 | 7389 점 | |
4 | 권선중 님 | 6061 점 | |
5 | 이진백 님 | 5174 점 | |
|
|
|
가입일 | 닉네임 |
05/31 | 김동률 |
03/31 | 홍형기 |
09/01 | o00pp99oo |
12/27 | 이재민 |
11/20 | 이희철 |
|
|
|
|
. |
. |
. |
|