|
-
Sep 17th, 2002, 02:39 AM
#1
Thread Starter
Frenzied Member
Detecting valid mp3 or not
Does anyone know if there is a way to detect if an mp3 file is a genuine mp3 file instead of a .txt file or something renamed to .mp3? Thanks for any feedback
There are 3 types of people in this world.........those that can count, and those that can't.
Blobby
-
Sep 17th, 2002, 02:49 AM
#2
Lively Member
I doubt if there is a safe way. An MP3 file is just raw data wich doesn't really have a header or something. So it's going to get hard, i can tell you that much...
I found some info, but again, no real verification. As you can see, the header is just a bunch of bits. They can be any value. If it were "MP3" and then the rest of the bits it would've been easier.
VB Code:
Mpeg 1.0/2.0 LayersI, II and III header and trailer formats
-----------------------------------------------------------
* HEADER
bits name comments
--------------------------------------------------
11 sync 0xFFF
2 version 1=mpeg1.0, 0=mpeg2.0
2 lay 4-lay = layerI, II or III
1 error protection 0=yes, 1=no
4 bitrate_index see table below
2 sampling_freq see table below
1 padding
1 extension see table below
2 mode see table below
2 mode_ext used with "joint stereo" mode
1 copyright 0=no 1=yes
1 original 0=no 1=yes
2 emphasis see table below
--------------------------------------------------
- bitrate_index
. mpeg1.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14
layer1 32 64 96 128 160 192 224 256 288 320 352 384 416 448
layer2 32 48 56 64 80 96 112 128 160 192 224 256 320 384
layer3 32 40 48 56 64 80 96 112 128 160 192 224 256 320
. mpeg2.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14
layer1 32 48 56 64 80 96 112 128 144 160 176 192 224 256
layer2 8 16 24 32 40 48 56 64 80 96 112 128 144 160
layer3 8 16 24 32 40 48 56 64 80 96 112 128 144 160
- sampling_freq
. mpeg1.0
0 1 2
44100 48000 32000
. mpeg2.0
0 1 2
22050 24000 16000
- mode:
0 "stereo"
1 "joint stereo"
2 "dual channel"
3 "single channel"
- mode extension:
0 MPG_MD_LR_LR
1 MPG_MD_LR_I
2 MPG_MD_MS_LR
3 MPG_MD_MS_I
jsbound :
mode_ext 0 1 2 3
layer
1 4 8 12 16
2 4 8 12 16
3 0 4 8 16
- emphasis:
0 "none"
1 "50/15 microsecs"
2 "reserved" must not be used !
3 "CCITT J 17"
* TRAILER
at end of file - 128 bytes
offset type len name
--------------------------------------------
0 char 3 "TAG"
3 char 30 title
33 char 30 artist
63 char 30 album
93 char 4 year
97 char 30 comments
127 byte 1 genre
--------------------------------------------
- genre :
0 "Blues"
1 "Classic Rock"
2 "Country"
3 "Dance"
4 "Disco"
5 "Funk"
6 "Grunge"
7 "Hip-Hop"
8 "Jazz"
9 "Metal"
10 "New Age"
11 "Oldies"
12 "Other"
13 "Pop"
14 "R&B"
15 "Rap"
16 "Reggae"
17 "Rock"
18 "Techno"
19 "Industrial"
20 "Alternative"
21 "Ska"
22 "Death Metal"
23 "Pranks"
24 "Soundtrack"
25 "Euro-Techno"
26 "Ambient"
27 "Trip-Hop"
28 "Vocal"
29 "Jazz+Funk"
30 "Fusion"
31 "Trance"
32 "Classical"
33 "Instrumental"
34 "Acid"
35 "House"
36 "Game"
37 "Sound Clip"
38 "Gospel"
39 "Noise"
40 "AlternRock"
41 "Bass"
42 "Soul"
43 "Punk"
44 "Space"
45 "Meditative"
46 "Instrumental Pop"
47 "Instrumental Rock"
48 "Ethnic"
49 "Gothic"
50 "Darkwave"
51 "Techno-Industrial"
52 "Electronic"
53 "Pop-Folk"
54 "Eurodance"
55 "Dream"
56 "Southern Rock"
57 "Comedy"
58 "Cult"
59 "Gangsta"
60 "Top 40"
61 "Christian Rap"
62 "Pop/Funk"
63 "Jungle"
64 "Native American"
65 "Cabaret"
66 "New Wave"
67 "Psychadelic"
68 "Rave"
69 "Showtunes"
70 "Trailer"
71 "Lo-Fi"
72 "Tribal"
73 "Acid Punk"
74 "Acid Jazz"
75 "Polka"
76 "Retro"
77 "Musical"
78 "Rock & Roll"
79 "Hard Rock"
80 "Unknown"
- frame length :
. mpeg1.0
layer1 :
(48000*bitrate)/sampling_freq + padding
layer2&3:
(144000*bitrate)/sampling_freq + padding
. mpeg2.0
layer1 :
(24000*bitrate)/sampling_freq + padding
layer2&3 :
(72000*bitrate)/sampling_freq + padding
Rob.
Window XP: From the makers of DoubleSpace...
Press ANY key... NO, NO, NO!!! NOT THAT ONE!!!!
-
Sep 17th, 2002, 02:51 AM
#3
Banned
I think you need to find information about the header of MP3 files.
-
Sep 17th, 2002, 02:57 AM
#4
Thread Starter
Frenzied Member
Cheers Guys. Thanks RobIII, thats what i figured. I didnt know if some clever sod had devised a way of detecting it. trouble is, if i rename a text file as .mp3 my app will allow it to play but because it isnt a real mp3 file, winamp just sits there in limbo and crashes the whole app! I guess all i can do now is do a test after 3 seconds or so and if its 'Playing' but the track position is still at zero i can stop the track and report an error. Thanks for your time tho!
There are 3 types of people in this world.........those that can count, and those that can't.
Blobby
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|