un calculateur de bitrate pour Divx;)

Programmation d'applications complexes
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

un calculateur de bitrate pour Divx;)

Message par Backup »

ya qu'a choisir un film "*.Avi"
et ça vous sort le Bitrate en fonction de la taille du CD précisé dans le listing ...

IL FAUT LA LIB VIDEO DE CHRIS !!!!



; Calcul du Bitrate Divx !! par Dobro
; Librairie Video de Chris indispensable !!!

taille=700 ; la taille du CD sur lequel doit tenir le divx !!
; par defaut il calcul avec une bande son de 128 !!



Enumeration
     #Video
EndEnumeration

; *******************************************************************
;Le son sera encodé en MP3 à 128 kbps et fera donc 936Ko/mn
;Bitrate = [Dispo (Mo) / Durée (mn)] x 139
;Exemple pour un cd de 700 Mo
;notre film fait 1 h 37 mn 36 s (soit 98 mn)
;le son occupera donc => (98 X 936) / 1024 = 89,558 Mo (soit 90 Mo)
;reste 690 - 90 = 600 Mo dispos
;Bitrate => (600 / 98 ) X 139 = 851
; *******************************************************************

NomFichier$ = OpenFileRequester ( "charger une video" , "Video|*.avi" , "*.avi" , 0 )
LoadVideo( #Video , NomFichier$ )
temp=VideoLength( #Video )
duree$=GetTime(temp)

heure= Val ( Mid (duree$,1,2))
minute= Val ( Mid (duree$,4,2))
seconde1= Val ( Mid (duree$,7,2))

If heure>0
    seconde_heure=heure*60*60
EndIf
If minute>0
    seconde_minute=minute*60
EndIf
seconde_film= seconde_heure+seconde_minute+seconde1
minute_film=seconde_film/60
taille_son=(minute_film*936)/1024
reste=taille-taille_son
If minute_film>0
    bitrate=(reste/minute_film)*139
Else
     MessageRequester ( "erreur " , "le film a un probleme !" , #PB_MessageRequester_Ok )
     End
EndIf

Resultat = MessageRequester ( "Resultat" , "la video fait :" +GetTime(temp)+ Chr (10)+ " le bitrate pour un CD de :" + Str (taille)+ "Mo" + Chr (10)+ "sera de : " + Str (bitrate), #PB_MessageRequester_Ok )
End
Dernière modification par Backup le jeu. 19/janv./2006 15:12, modifié 2 fois.
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Intéressant, je prend... :lol:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

:oops: :oops: :oops: j'ai oublié de preciser qu'il faut la LIB VIDEO
de Chris !!! :? :D
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Dobro a écrit ::oops: :oops: :oops: j'ai oublié de preciser qu'il faut la LIB VIDEO
de Chris !!! :? :D
Ah ouais!
Ben tu vas être bien avancé si elle ne fonctionne pas chez tout le monde, ce qui a l'air d'être le cas, apparemment! :?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

ben chez moi elle marche tres bien ta lib !!

a priori y a eu qu'une seule personne qui s'est plaint !! :lol:

si elle marche chez moi , c'est qu'elle marche ! c'est garantie !! :lol:

(pour ceux chez qui ça marche pas , il est probable qu'il y est une interaction avec une autre lib !!)
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Dobro a écrit :ben chez moi elle marche tres bien ta lib !!

a priori y a eu qu'une seule personne qui s'est plaint !! :lol:

si elle marche chez moi , c'est qu'elle marche ! c'est garantie !! :lol:

(pour ceux chez qui ça marche pas , il est probable qu'il y est une interaction avec une autre lib !!)
Avec une autre lib, ou avec une des mises à jour de Windows.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

c'est vrais que je n'ai aucun patch !! :)
faudrai d'autre essayeur !!
pour l'instant entre olivier et moi ça fait du 50%/50%
:D
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

je viens d'ajouter un petit test pour eviter une division par zero !! ... :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Version sans avoir besoin de Librairie !! :D


; Calcul du Bitrate Divx !! par Dobro
taille=700 ; la taille du CD sur lequel doit tenir le divx !!
; par defaut il calcul avec une bande son de 128 !!

Declare.s frame_deci_to_base60( nbr_frame)

Enumeration
     #Video
EndEnumeration


InitMovie ()

; *******************************************************************
;Le son sera encodé en MP3 à 128 kbps et fera donc 936Ko/mn
;Bitrate = [Dispo (Mo) / Durée (mn)] x 139
;Exemple pour un cd de 700 Mo
;notre film fait 1 h 37 mn 36 s (soit 98 mn)
;le son occupera donc => (98 X 936) / 1024 = 89,558 Mo (soit 90 Mo)
;reste 690 - 90 = 600 Mo dispos
;Bitrate => (600 / 98 ) X 139 = 851
; *******************************************************************


NomFichier$ = OpenFileRequester ( "charger une video" , "Video|*.avi;*.Mpg" , "*.avi;*.mpg" , 0 )
LoadMovie ( #Video , NomFichier$ )

Longueur = MovieLength ()
longueur_seconde=Longueur/25
longueur_minute=longueur_seconde/60
temp$=frame_deci_to_base60( Longueur)
minute_film=longueur_minute
taille_son=(minute_film*936)/1024
reste=taille-taille_son
If minute_film>0
    bitrate=(reste/minute_film)*139
Else
     MessageRequester ( "erreur " , "le film a un probleme !" , #PB_MessageRequester_Ok )
     End
EndIf
Resultat = MessageRequester ( "Resultat" , "la video fait : " +temp$+ Chr (10)+ " le bitrate pour un CD de :" + Str (taille)+ "Mo" + Chr (10)+ "sera de : " + Str (bitrate), #PB_MessageRequester_Ok )
End

Procedure.s frame_deci_to_base60( nbr_frame) ; transforme le nombre de frame d'un film en hh:mm:ss
    longueur_seconde=nbr_frame/25
    longueur_minute=longueur_seconde/60
    hh$= Str (longueur_seconde/3600)
    temp=(longueur_seconde-3600)* Val (hh$)
    mm$= Str ((temp/60))
    ss$= Str (temp- Val (mm$)*60)
    heure$=hh$+ ":" +mm$+ ":" +ss$
     ProcedureReturn heure$
EndProcedure

Répondre