IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Entêtes d'une vidéo MP4 (H.264 + AAC)


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 34
    Points : 27
    Points
    27
    Par défaut Entêtes d'une vidéo MP4 (H.264 + AAC)
    Bonjour,

    Je suis en train d'écrire un streamer MP4 en PHP ; pour pouvoir contrôler le débit, entre autres, de ces vidéos dans un lecteur flash (jw player).

    Mais le problème c'est quand je change la position du curseur temps de la vidéo, celle-ci ne s'affiche plus ! Normal, car il me manque les headers de la vidéo à renvoyer à flash...

    Ma question est donc la suivante : Comment récupérer les headers dans une vidéo MP4 (H.264 + AAC) en PHP ?

    Merci.

  2. #2
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Points : 74
    Points
    74
    Par défaut
    Salut

    Tu peux utiliser la librairie getid3 qui te permet de récupérer les infos sur beaucoup de type de fichier. Je m'en sert sur plusieurs projets, c'est super pratique.

    Tu peux le télécharger ici : http://getid3.sourceforge.net/

    Tu trouveras des exemples d'utilisations dans le zip.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 34
    Points : 27
    Points
    27
    Par défaut
    Merci, je connaissais déjà mais aurais-tu juste le bout de code qui permet de récupérer les headers de la video MP4 pour que je puisse les réinjecter quand je veux, par exemple récupérer de la position A à B octets (A correspondant au début des headers et B correspondant à la longueur total, ou fin, des headers)... @+

  4. #4
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Points : 74
    Points
    74
    Par défaut
    Ha ok, je t'ai mal compris au début.

    Je n'ai jamais fais ça, mais je suppose que c'est comme le "resume" de quand on télécharger un fichier, met sur pause, puis le relance.

    J'utilise de temps à autre cette class pour faire ça : http://phpclasses.linuxpourtous.com/...kage/3220.html

    Le morceau de code qui t'interessera peut être est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
                // si la reprise est permise ...
                if ($this->properties["resume"] == "on") {
                    if(isset($_SERVER['HTTP_RANGE'])) {            // vérifier si http_range est envoyé par le navigateur (ou download manager)
                        list($a, $range)=explode("=",$_SERVER['HTTP_RANGE']);
                        ereg("([0-9]+)-([0-9]*)/?([0-9]*)",$range,$range_parts); // parsing Range header
                        $byte_from = $range_parts [1];     // l'intervalle de téléchargement: de $byte_from ...
                        $byte_to = $range_parts [2];       // ... à $byte_to
                    } else
                        if(isset($_ENV['HTTP_RANGE'])) {       // quelques serveurs web utilisent plûtot $_ENV['HTTP_RANGE']
                            list($a, $range)=explode("=",$_ENV['HTTP_RANGE']);
                            ereg("([0-9]+)-([0-9]*)/?([0-9]*)",$range,$range_parts); // parsing Range header
                            $byte_from = $range_parts [1];     // l'intervalle de téléchargement: de $byte_from ...
                            $byte_to = $range_parts [2];       // ... à $byte_to
                        }else{
                            $byte_from = 0;                         // si aucun entête http_range n'est envoyé, envoyer tout le fichier de l'octet 0 ...
                            $byte_to = $this->properties["size"] -1;   // ... au dernier octet
                        }
                    if ($byte_to == "")                             // si l'octet de fin n'est pas spécifié ...
                        $byte_to = $this->properties["size"] -1;    // ... lui affecter le dernier octet
                    header("HTTP/1.1 206 Patial Content");          // envoyer l'entête de téléchargement partiel
                // ... sinon, télécharger tout le fichier
             }
    Sky

Discussions similaires

  1. coment lire une vidéo .mp4 encodée avec du H264!
    Par ase707 dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 21/07/2008, 14h31
  2. lancer une page html à la fin de ma vidéo mp4
    Par supermac dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/11/2007, 10h35
  3. extraire une portion audio d'une vidéo
    Par Brunoo dans le forum DirectX
    Réponses: 2
    Dernier message: 16/06/2003, 10h29
  4. [Composants][Animation] Lire une vidéo compressée
    Par femtosa dans le forum Composants VCL
    Réponses: 6
    Dernier message: 03/09/2002, 08h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo