Journal Astuce faire un compte à rebours vidéo avec php et kdenlive

Posté par (page perso) .
Tags : aucun
3
13
nov.
2010
Bonjour,

Voici une petite astuce pour faire un compte à rebours.
je devais faire un compte à rebours de 5min,
le problème avec kdenlive il y a bien un générateur de compte à rebours mais il est
seconde et on peut pas y choisir la police.

J'ai donc décider d'utiliser une image par seconde et d'utiliser la fonction diaporama
pour faire défiler mes secondes.

Pour fabriquer mes 300 images (5min = 300sec) je me suit fait un petit script en php
pourquoi en php ? Parce que je connais le php.

Je vous partage ce petit script comme ça si une fois quelqu'un doit faire la même chose
ben j'espère que cela pourra l'aider.

bon il vous faut php et php-cli, avec les extensions gd, le script fonctionne avec une
installation faite sous gnu-linux ubuntu de base (la 10.10) de php.

le script utilise des polices truetype, il suffit de mettre la police dans le même
répertoire que le script (pas besoin d'installer la police sur la machine hôte).

Il faut crée un sous-répertoire "images" dans le répertoire ou se trouve le script, c'est
la que seront stocké les images crées.

voici le code du script:


<?php

$conf_img['largeur'] = 1280; //largeur des images
$conf_img['hauteur'] = 720; //hauteur des images
$conf_img['police'] = 'Base 02'; //nom de la police truetype utilisé, elle doit être dans le même répertoire que le script, ne pas mettre le .ttf (rajouté automatiquement par php)
$conf_img['taille_police'] = 80; // taille de l'écriture
$conf_img['x_text'] = 1000; //position du texte en x
$conf_img['y_text'] = 680; //position du texte en y
$conf_img['text'] = '4:14'; //la durée du compte à rebours (minute:seconde)
$conf_img['chemin'] = './images/countdown'; //chemin et non générique des images generés
$conf_img['count'] = 0; //numéro de la première image utilisé dans le nom générique
$conf_img['ext'] = '.png'; //extension des images

function creaimage($conf_img){
$image = imagecreatetruecolor($conf_img['largeur'], $conf_img['hauteur']);
//$fond = imagecolorallocate($image, 255, 0, 0);
$noir = imagecolorallocate($image, 0, 0, 0);
$blanc = imagecolorallocate($image, 255, 255, 255);
imagecolortransparent($image, $noir);
$x = $conf_img['x_text'];
$y = $conf_img['y_text'];
$text = $conf_img['text'];
putenv('GDFONTPATH=' . realpath('.'));
imagettftext($image, $conf_img['taille_police'], 0, $x, $y, $blanc, $conf_img['police'], $text);
$file = $conf_img['chemin'].'_'.$conf_img['count'].$conf_img['ext'];
imagepng($image, $file); // on enregistre l'image dans le dossier "images"
chmod($file, 0777);
imagedestroy($image);
}



//on convertis a durée en seconde:
$temps = explode(":", $conf_img['text']);
$temps[0] = $temps[0] * 60;
$seconde = $temps[0] + $temps[1];
$seconde_total = $seconde;
//on décompte jusque à 0 et on crée une nouvelle image à chaque seconde
$ind = 0;
while ($ind <= $seconde_total) {
$temps_sec = $seconde % 60;
$temps_min = ($seconde - $temps_sec) / 60;
$temps_sec = sprintf('%02d', $temps_sec);
$conf_img['text'] = "$temps_min:$temps_sec";
//echo $conf_img['text'];
//echo '';
$conf_img['count'] = sprintf('%06d', $conf_img['count']);
creaimage($conf_img);
$conf_img['count']++;
$ind++;
$seconde = $seconde - 1;
}




echo "images crées";
?>



dans le script le nom de la police ce met sans extension c'est comme ça
pour calibrer la position de votre décompte dans l'image mettez le temps à 0 comme ça
il ne fait qu'une image pour les essais.

Je sais c'est pas très bien codé mais j'avais rapidement besoin d'un compte
à rebours.

Après vous pouvez utilisez la fonction diaporama de kdenlive pour le faire défiler, et
les filtres de kdenlive si vous voulez le placer différa-ment dans l'image ou lui faire des effets spéciaux.

Un exemple en vidéo du résultat obtenus voir ici dessous (c'est youtube
donc en flash hélas mais bande passante oblige).
http://www.youtube.com/watch?v=-wZMQUBpKHc

Voilà en espérant que ce script peut être utile un jour à quelqu'un.
  • # et moi et moi

    Posté par . Évalué à 1.

    et moi, aujourd'hui, au taf, j'ai modifier un programme sur un automate moeller qui sert d'interface entre la ventilation et la centrale d'incendie. Parce que la ventilation de la fabrication, ben elle s'arrêtait pas en cas d'incendie.
    En fait, j'avais un bit à inverser: Q04 qui est une sortie physique.

    Voilà, si ça peu aider.
    • [^] # Re: et moi et moi

      Posté par . Évalué à 2.

      Je dis peut être^W^W sûrement une connerie, mais la ventilation ne doit-elle pas justement être en route en cas d'incendie pour évacuer les fumées ? Ou alors il faut la désactiver pour ne pas attiser le feu? C'est quoi la raison de couper la ventilation en fait ?
      • [^] # Re: et moi et moi

        Posté par . Évalué à 3.

        C'est une extinction par CO2 (30 tonnes). Si on ventile, on jette le CO2 avant qu'il ait fait son boulot.
    • [^] # Re: et moi et moi

      Posté par (page perso) . Évalué à -2.

      ah vous êtes des loosers, utiliser une ventilation qui tourne sous windows.
  • # bien !

    Posté par (page perso) . Évalué à 4.

    Effectivement, c'est un bon tip. La vidéo est convaicnante, et la musique bien kw0l.

    * Ils vendront Usenet^W les boites noires quand on aura fini de les remplir.

  • # C'est youtube donc en flash

    Posté par (page perso) . Évalué à 5.

    On peut cependant faire de petits efforts pour ne pas imposer aux autres l'exécution d'un logiciel (généralement propriétaire vu l'état de la concurrence) pour lire un conteneur qui exproprie ses utilisateurs des possibilités qu'offre le Web.

    http://tinyogg.com/watch/iI8Do/

    Adhérer à l'April, ça vous tente ?

    • [^] # Re: C'est youtube donc en flash

      Posté par (page perso) . Évalué à 2.

      ah sympa je connaissais pas ce site, merci de l'info,
    • [^] # Re: C'est youtube donc en flash

      Posté par (page perso) . Évalué à 3.

      ne pas imposer aux autres l'exécution d'un logiciel (généralement propriétaire vu l'état de la concurrence) pour lire un conteneur

      On peut aussi utiliser youtube-dl au lieu de passer par un site intermédiaire, non ?

      * Ils vendront Usenet^W les boites noires quand on aura fini de les remplir.

    • [^] # Re: C'est youtube donc en flash

      Posté par . Évalué à 1.

      Ou alors, on peut acceder a la version mobile de youtube qui sert du html5.
      Ou rejoindre la beta html5 de youtube, ca marche generalement.

      If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.