Page 1 sur 5

Convertir un extrait de mp3 en fichier plus petit possible

Publié : sam. 09/janv./2010 20:18
par Kwai chang caine
Bonjour la famille

KCC, il commence à avoir une serieuse collection de disques...alors il avait créé un programme qui lui permetait de ne pas acheter de doublons.

Car avant, il se rappellais de tout, et avait deux trois milliers de chansons dans la tete, et parfois meme les paroles.
C'est pour cette raison qu'elle est pleine, et les paroles, elles veulent pas laisser la place aux instructions de programmation, un peu comme dans le metro parisien.
Alors comme maintenant KCC il atteint presque le 6e millier de disque, il a plein d'air qui veulent pas entrer dans sa tete, comme les instructions de PB

Donc etant donné que KCC il a pas encore atteint le sommet des 1000 applications commencées et pas finies :oops: , il a décidé en ce jour de grand soleil, à pas mettre un esquimaux meme gervais dehors....
De créer une nouvelle...enfin un nouveau debut d'application. :D

Bon c'est presque fini ce que je voulais faire, c'est à dire splitter un mp3, ou bien recuperer un extrait.
Comme ça, KCC y pourra mettre l'extrait de MP3 avec la pochette, et se rappeller quelle musique est avec quelle pochette, voir meme chanter dans les bacs, lalala !!! ou faire chanter...bien que faire chanter c'est interdit par la loi, et je sais pas pourquoi. :?

Bref....maintenant j'ai mon morceau de MP3, mais "j'm'est" dit dans mon fond personnel, interne à moi-meme, que c'est pas la peine de trimbaler un morceau de MP3 Stereo, et super echantilloné, pour mettre sur un EEEPC et juste entendre 10 seconde de la chanson :roll:

Donc je voudrais savoir, si y'a moyen avec PB de convertir un MP3 stereo en autre chose le plus petit possible, comme ça je defoncerais pas la memoire de mon EEEPC avec mes milliers d'extraits
Ou bien suis-je obligé au plus simple de passer par une appli externe :roll:

Je vous remercie de votre attention et vous souhaite un bon bronzage :mrgreen:

Re: Convertir un extrait de mp3 en fichier plus petit possible

Publié : sam. 09/janv./2010 21:06
par cederavic
Il faudrait voir du coter de FMod, ça doit être possible... Mais j'y connais rien la, j'pourais pas t'aider de suite à moin de me farcir la doc :?

Re: Convertir un extrait de mp3 en fichier plus petit possible

Publié : sam. 09/janv./2010 21:53
par Kwai chang caine
Non non, te casse pas la tete. :roll:
Y'a peut etre bien "quinquin" qui connait une combine :roll:

Moi j'avais pensé a lame.dll, mais j'ai jamais fait ça non plus.
J'sais meme pas si c'est possible de la piloter cette DLL
Y'a peut etre des commandes simples :roll:

Quoi qu'au moment ou je l'ecris, je me dis si y'avait quelque chose de simple dans ce genre de choses...on l'aurait su :lol:

Re: Convertir un extrait de mp3 en fichier plus petit possible

Publié : sam. 09/janv./2010 22:21
par TazNormand
J'ai pas franchement de solution, mais je suppose que tu sais qu'en MP3 la compression est "réglable".

Pour que tes échantillons soient les plus petits possibles, tu peux mettre un taux à 64kbps, pour les extractions, il te faudrait un lecteur "minuté" avec un enregistreur en parallèle, je veux dire que tu charges ton MP3 tu le lis sur une durée de 10 secondes, et pendant la lecture tu enregistre en MP3 hyper condensé ton échantillon.

Par contre, je pense que Lame est la bonne voie, il me semble que c'est la librairie la plus utilisée pour encoder en MP3. il ne te reste qu'à trouver un Wrapper. Demandes à mon compatriote Normand ( 8) ) Progi1984 s'il n'a pas ça sous le clavier :D

Re: Convertir un extrait de mp3 en fichier plus petit possible

Publié : sam. 09/janv./2010 22:28
par venom
FFMpeg est ta solution KCC, :wink:

je te fait un code de suite je vais le poster ce soir ou cette nuit je fait cela au plus vite :wink:







@++

Re: Convertir un extrait de mp3 en fichier plus petit possible

Publié : sam. 09/janv./2010 22:56
par Kwai chang caine
Alors la VENOM que dire, t'es trop gentil 8O
Je te remercie sincerement beaucoup 8)

Je sais pas comment ça marche et si y'a des "reglages", mais si tu pouvais faire en mono et dans une frequence qui permette quand meme de reconnaitre le titre, mais a la limite, comme si il etait au telephone, niveau qualité, comme ça je crois pas qu'on pourra avoir plus petit en taille.

Encore merci mais dort, ne te tue pas au travail pour moi quand meme 8)

Re: Convertir un extrait de mp3 en fichier plus petit possible

Publié : sam. 09/janv./2010 23:51
par venom
Voilà KCC mon code est fini avec une petite interface graphique et tout :D
Par contre je me suis un peut emballer je penser que tu chercher le moyen de couper du mp3 toi tu veut le réduire niveau poids :?
Bref en coupant un extrait tu pourra déjà réduire la taille:D
Donc avant de compiler quoi que ce soit, il te faut ffmpeg en ligne de commande. Bol pour toi j'ai le lien sous le coude : FFmpeg ici

une fois télécharger puis décompresser tu met le fichier ffmpeg.exe dans ton dossier c:\windows\system32.

maintenant tu peut regarder au niveau du code et tester voir si cela te convient.
j'ai mis une petite aide en bas du code si il y a des lignes que tu ne comprend pas dit le. :wink:

Code : Tout sélectionner

;- Window Constants
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
Enumeration
  #Frame3D_0
  #String_0
  #Button_0
  #String_1
  #Button_1
  #Frame3D_1
  #Text_0
  #Text_1
  #TrackBar_0
  #Frame3D_2
  #Text_2
  #Text_3
  #TrackBar_1
  #Button_2
EndEnumeration

  If OpenWindow(#Window_0, 216, 0, 600, 280, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
      Frame3DGadget(#Frame3D_0, 10, 10, 580, 85, "")
      StringGadget(#String_0, 20, 30, 455, 20, "")
      ButtonGadget(#Button_0, 485, 30, 100, 20, "Fichier a couper")
      StringGadget(#String_1, 20, 60, 455, 20, "")
      ButtonGadget(#Button_1, 485, 60, 100, 20, "enregistrer sous")
      Frame3DGadget(#Frame3D_1, 10, 105, 265, 120, "")
      TextGadget(#Text_0, 25, 125, 225, 20, "Position de depart pour la decoupe en seconde")
      TextGadget(#Text_1, 105, 155, 65, 20, "0", #PB_Text_Center)
      TrackBarGadget(#TrackBar_0, 25, 185, 225, 20, 0, 120)
      Frame3DGadget(#Frame3D_2, 325, 105, 265, 120, "")
      TextGadget(#Text_2, 340, 125, 225, 20, "Durée de la decoupe en seconde", #PB_Text_Center)
      TextGadget(#Text_3, 420, 155, 65, 20, "0", #PB_Text_Center)
      TrackBarGadget(#TrackBar_1, 340, 185, 225, 20, 0, 60)
      ButtonGadget(#Button_2, 195, 240, 210, 25, "Démarrer la découpe")

  EndIf

  Repeat
   EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget
      Select EventGadget()
        
       Case #Button_0
        Fichier_Depart$ = OpenFileRequester("Choisir le fichier a couper", "",  "Fichier mp3|*.mp3" , 0)
         SetGadgetText(#String_0, Fichier_Depart$)
       
       Case #Button_1
        Fichier_Couper$ = SaveFileRequester("Enregistrer sous", "",  "Fichier mp3|*.mp3" , 0)
         SetGadgetText(#String_1, Fichier_Couper$+".mp3")
       
       Case #TrackBar_0
        SetGadgetText(#Text_1, Str(GetGadgetState(#TrackBar_0)))
       
       Case #TrackBar_1
        SetGadgetText(#Text_3, Str(GetGadgetState(#TrackBar_1)))
       
       Case #Button_2
        parametre$ = "-ss "+Str(GetGadgetState(#TrackBar_0))+" " + "-t "+Str(GetGadgetState(#TrackBar_1))+" " + "-ab 32k " + "-ac 1 " + "-i " + Chr($22) + Fichier_Depart$ + Chr($22) + " " + Chr($22) + Fichier_Couper$ +".mp3"+ Chr($22)
         RunProgram("FFmpeg.exe", parametre$, "", #PB_Program_Wait | #PB_Program_Hide, 1)
          End 
        
      EndSelect
    EndIf
  Until EventID = #PB_Event_CloseWindow
  
; Résumé :
; ffmpeg permet de manipuler du son et de la video en ligne de commande.
; pour son utilisation un runprogram est a utilisé dans purebasic.
; 
; RunProgram("FFmpeg.exe", parametre$, "", #PB_Program_Wait | #PB_Program_Hide , 1)
; FFmpeg.exe = est le fichier a lancer en ligne de commande.
; parametre$ = est l'endroit le plus intéressant dans ce code voici sa composition :
; "-ss " = est la valeur ou ffmpeg va commencer a couper dans la chanson ou vidéo exemple 60 secondes. -ss renvoie toujours en seconde
; "-t " = est la durée de la découpe exemple 30 secondes. -t renvoie toujours en seconde
; "-i " = permet d'indiquer a ffmpeg les fichier de destination ( le fichier de depart ainsi que l'endroit ou sauvegarder le fichier modifier )
; Chr($22) = permet de mettre une parenthésé dans une console car si le fichier se trouve dans : C:\Documents And settings\mon son et bien ffmpeg va s'arrêter a : C:\Documents et ne trouvera pas le fichier
; donc avec Chr($22) le résultat renvoie ceux-ci "C:\Documents And settings\mon son"

pour ceux qui est du mono je chercherais plus tard mais sa doit etre possible.
si non voici la Doc officiel








@++

Re: Convertir un extrait de mp3 en fichier plus petit possible

Publié : dim. 10/janv./2010 0:30
par Kwai chang caine
Merci VENOM, je ne connaissais pas ce principe avec FFMPEG.
En fait, moi je m'etais pas cassé la tete pour le decouper, je l'avais coupé avec ReadData et WriteData.
Et ça marche 8O
On peut couper, n'importe ou un MP3, et winamp le lis sans probleme. 8O
Remarque ça veut pas dire que mon MP3 il est pas comme mon image, toute biscornue

Il me restait plus qu'a le convertir, et evidemment la je voyais pas :roll:
Mais surement que FFmpeg, doit pouvoir le faire, je regarderais aussi.

En tout cas merci beaucoup, ton code est super simple, et efficace 8)

Re: Convertir un extrait de mp3 en fichier plus petit possible

Publié : dim. 10/janv./2010 1:01
par venom
Mais il font combien en taille tes morceau de mp3 ? car avec ffmepg rien que 30sec est égale a 235Ko c'est pas énorme si :D
mais pour réduire il faut voir au niveau du bitrate non ?








@++

Re: Convertir un extrait de mp3 en fichier plus petit possible

Publié : dim. 10/janv./2010 1:21
par Kwai chang caine
Bah non c'est pas enorme, mais le bleme, c'est que j'ai actuellement 6000 disques
Donc 235 * 6000 = 1 410 000 Ko donc c'est pas vraiment petit.
Je ne sais pas exactement jusqu'a combien on peut reduire un mp3, en le passant en mono et en changeant l'echantillonage, je me rappelle plus ce qu'est le bitrate :roll:

Re: Convertir un extrait de mp3 en fichier plus petit possible

Publié : dim. 10/janv./2010 1:43
par venom
Bon j'ai modifier mon code plus haut j'ai modifier du bitrate. maintenant pour un mp3 de 30seconde j'obtiens :

118Ko comparer a 235Ko c'est déjà pas mal.
118*6000= 708 000 Ko :D et encore en 30 seconde

pour 20sec c'est 79,2Ko
79,2*6000= 475 200Ko

mais la le son commence a devenir pourrave :D a toi de voir.






@++

Re: Convertir un extrait de mp3 en fichier plus petit possible

Publié : dim. 10/janv./2010 2:00
par venom
J'ai encore re modifier le code j'ai changer la fréquence Hz maintenant je fait des fichier mp3 de 30 secondes a 108Ko je ne peut plus faire moins là :D





@++

Re: Convertir un extrait de mp3 en fichier plus petit possible

Publié : dim. 10/janv./2010 2:10
par Kwai chang caine
Merci beaucoup VENOM, sont ils encore stéréo ???

Re: Convertir un extrait de mp3 en fichier plus petit possible

Publié : dim. 10/janv./2010 2:12
par venom
oui je ne trouve pas comment mettre en mono c'est sur que sa gagnerais encore des Ko :D .
je cherche mais rien pour le moment.









@++

Re: Convertir un extrait de mp3 en fichier plus petit possible

Publié : dim. 10/janv./2010 2:20
par Kwai chang caine
Je pense qu'on devrait gagner la moitié non ??

Et..on va peut etre aller se coucher, qu'en pense tu ????
Prend ton temps, y'a pas le feu non plus.

Si demain t'as deux secondes, et que tu peux regarder 8)
De mon coté aussi, je vais regardé, y'a plusieurs voies.
La tienne, FMOD d'apres cederavic et lame que j'avais trouvé et que TazNormand m'a confirmé
Donc 3 pistes...c'est deja super bien.

En plus je m'excuse aupres de lui, decidement ce soir lui et moi on est pas en phase :oops:
J'avais pas vu son post, car tu as posté tout de suite derriere lui :oops:

Je crois que je vais faire comme TAZ, pour ce soir, je pense que je serais meilleur au lit...pour dormir evidemment :lol:

Encore merci de te donner autant de peine pour moi 8)
Je te souhaite une excelente nuit, et a demain peut etre 8)