Ralala ces fichiers mp3

Signaler
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
-
Messages postés
536
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
22 août 2008
-
Hello tous ! :)

Petit exposé ce soir sur les fichiers mp3 :)



En considérant qu'un fichier mp3 est découpés en frames et que chaque
frame contient un header de 32 bits, donc 4 octects, dont les 11
premiers bits sont à 1 :).

En sachant également que la première frame ne se trouve pas forcément
au début du fichier, et n'a ni une taille fixe dans les fichiers mp3 !

Donc desfois, la première frame commence à 4096 bits, 1490 bits, 0 bits enfin bref c'est variable :)

Donc ma question est : :) Comment trouver ou se trouve la premiere frame :) ??? :p

if(!Meilleur("Joky")) return ERREUR;

17 réponses

Messages postés
536
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
22 août 2008

intéréssant ... si tu sais que chaque frame a un header, il suffit de
chercher un header en partant du debut et le premier sur lequel on
tombe sera le ......... premier ! Il doit bien y avoir un truc qui
caracterise le debut d'une frame ...
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Bé oui, les 11 premiers bits de chaque frame sont à 1 :)

On trouve souvent au début des header FF FB, mais y'a rien de sur :)

if(!Meilleur("Joky")) return ERREUR;<
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
8
Pour détécter si c'est une frame, tu lis un word w(2 octets), puis tu fais
if(w & 0xFFE0)... Mais ce n'est pas une condition suffisante, c'est sur qu'il peut y avoir autre chose qu'une frame qui commence par 11 bits à un.
Ton problème en fait c'est que les tags sont optionnels? Dans ce cas il y a sans doute moyen de savoir s'il y a un tag ou pas (ils ne commencent sans doute pas par FF)
Messages postés
536
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
22 août 2008

Mais dans le header général du fichier il dit pas ou le son commence ?
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
8
Ya pas de header général,le première frame peut se trouver au tout début du fichier, si j'ai bien compris
Messages postés
571
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
5 décembre 2013

Sur ce site ya une exemple de lecture de tag IDV3V1 assez simple







typedef struct

{

char TAG[4];

char title[31];

char artist[31];

char album[31];

char year[5];

char comment[31];

unsigned short genre;

}id3tagv1;







id3tagv11 * ID3

FILE *fp;

unsigned char temp;



if(fp=fopen(FichierMp3,"rb"))

{

if(fseek(fp,-128L,SEEK_END)==0)

{

fread(ID3->TAG,sizeof(char),3,fp);ID3->TAG[3]='\0';

if(strcmp(ID3->TAG,"TAG")==0)

{



fread(ID3->title,sizeof(char),30,fp);ID3->title[30]='\0';

RTrim(ID3->title);



et qui pour moi a toujour marché !!
Messages postés
571
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
5 décembre 2013

Par contre pour les V2 qui varient

C'est plus baleze ils faut calculer la taille du tag et des frames, le
code sur ce site s'appelle ExtractID3 pour l'ecriture c'est encore plus
baleze (c'est pour ca que j'ai laissé tombé et suis passé aux
librairies speciales)
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Donc en effet c'est une histoire de Tag optionnel qui contiennent les
informations liés au fichiers mp3. Mais j'pense que j'vais devoir
parcourir jusque temps trouver FFE0, reste juste à vérifier qu'il n'y
aura jamais cette séquence dans les tag :)

J'me renseigne et j'vous dis quoi mm si vous vous en foutez :)

if(!Meilleur("Joky")) return ERREUR;
Messages postés
536
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
22 août 2008

pas du tout meme si tu pouvais me donner tes sources(pas ton programme,
mais les documents) qui te permettent de lire ce mp3 ce serait super
sympa de ta part.
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
EditHexa : FreeWare

http://www.logitheque.com/fiche.asp?I=9903
if(!Meilleur("Joky")) return ERREUR;<
Messages postés
536
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
22 août 2008

mdr, toi aussi tu essais de comprendre direct en regardant le fichier, je vais aller regarder ça lol
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Autant faire dans le pur :)

Mais bon j'pense que j'ai trouver :)

Par exemple je regarde le tout début du fichier :

Si je lis ID3, alors je saute de 128 bits depuis le début sinon je lis tout de suite ;)
if(!Meilleur("Joky")) return ERREUR;<
Messages postés
571
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
5 décembre 2013

En version V2, les tag sont en debut de fichier et les 3 1er caractere sont "ID3"

En version 1 et 1.1, les tag occupe les 128 derniers octets et commence par "TAG"

En version 1.1, l'avant avant dernier octet vaut '\0'
Messages postés
536
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
22 août 2008

ah ben un connaisseur
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Ouai lol :)

Et donc bé j'vais faire un convertisseur Euro/Francs lol :)
if(!Meilleur("Joky")) return ERREUR;<
Messages postés
571
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
5 décembre 2013

Lol !!

Sinon http://www.id3.org/id3v1.html doc pour les V1

Et pour ceux qui on pas peur pour les V2 http://www.id3.org/easy.html.

Un exemple de TAG pour montrer la difficultés des nouveaux tag V2.3 :les paroles synchronisé au mp3 (comme pour les midi).
Messages postés
536
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
22 août 2008

Bien sur tout le monde aura compris l'intéret de savoir ou commence les frames des mp3 pour faire un convertisseur euro-francs mdr