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 :

fopen et Streaming


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 4
    Par défaut fopen et Streaming
    Bonjour

    Je fais un partenariat avec un autre site, et on se partage le contenu, qui est protégé par authentification HTTP (htaccess).

    A partir de mon serveur je procède donc à un fopen() des contenus se trouvant chez mon partenaire.

    Je réussis à montrer les photos, mais je ne réussis pas à montrer des vidéos.
    Seulement le début de la vidéo se charge chez le client (les premières 5 à 10 secondes).

    Les vidéos sont au format quicktime et sont servies par un serveur "streaming".

    Je suppose qu'il faut traiter ce genre de fichier autrement que je ne le fais, mais comment?

    Plutôt que file_get_contents j'ai aussi essayé fopen et freads, mais sans résultat.

    Qui peut m'aider SVP?


    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    <?php
     
    $file_source = 'http://user:passwort@(le domaine)/blabla/video.mov';
     
    $size = remote_filesize($file_source,"","");
     
    function remote_filesize($url, $user = "", $pw = "") {
       ob_start();
       $ch = curl_init($url);
       curl_setopt($ch, CURLOPT_HEADER, 1);
       curl_setopt($ch, CURLOPT_NOBODY, 1);
       if(!empty($user) && !empty($pw)) {
           $headers = array('Authorization: Basic ' . base64_encode("$user:$pw"));
           curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
       }
       $ok = curl_exec($ch);
       curl_close($ch);
       $head = ob_get_contents();
       ob_end_clean();
       $regex = '/Content-Length:\s([0-9].+?)\s/';
       $count = preg_match($regex, $head, $matches);
     
       return isset($matches[1]) ? $matches[1] : "unknown";
    }
     
    // send the right headers
      header('Pragma: public');
      header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
      header('Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0');
      header('Content-Transfer-Encoding: none');
     
    $fotpos = strrpos($rpage, ".");
    if ($fotpos > 1) {
    $file_ext = substr($rpage, $fotpos+1);
    }
       if ( !strcasecmp($file_ext, "GIF") ) {
          header("Content-type: image/gif");
       }
       else if ( !strcasecmp($file_ext, "JPG") ) {
          header("Content-type: image/jpeg");
       }
       else if ( !strcasecmp($file_ext, "PNG") ) {
          header("Content-type: image/png");
       }
       else if ( !strcasecmp($file_ext, "WAV") ) {
          header("Content-type: audio/x-wav");
       }
       else if ( !strcasecmp($file_ext, "MP3") ) {
          header("Content-type: audio/mpeg");
       }
       else if ( !strcasecmp($file_ext, "MPG") ) {
          header("Content-type: video/mpeg");
       }
       else if ( !strcasecmp($file_ext, "MOV") ) {
          header("Content-type: video/quicktime");
          header("Content-Length: " . $size);
       }
       else if ( !strcasecmp($file_ext, "AVI") ) {
          header("Content-type: video/x-msvideo");
       }
       else {
          header("Content-type: application/octet-stream");
          header("Content-Disposition: filename=\"$binary_filename\"");
       }
     
    echo file_get_contents($file_source);
    ?>

  2. #2
    Membre expérimenté
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2006
    Messages : 215
    Par défaut
    Salut

    tu peux essayer comme ca :

    http://pastebin.funraill.org/b2a3c6b...e4e0416985bb6/

    sahid

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 4
    Par défaut
    Merci, mais cela n'a pas résolu le problème.

    En augmentant les paramètres serveur dans php.ini, j'ai réussi à charger plus du fichier, mais c'est très lent!

    Y a t il une solution pour faire passer un stream quicktime par un autre serveur?

  4. #4
    Membre expérimenté
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2006
    Messages : 215
    Par défaut
    erf ...

    youtube, google video utilisent le flash, vous ne pouvez pas essayer de faire pareil ?

Discussions similaires

  1. fopen, failed to open stream
    Par Unkof dans le forum Langage
    Réponses: 2
    Dernier message: 22/11/2013, 15h32
  2. fopen: failed to open stream
    Par omar344 dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2012, 14h36
  3. fopen , failed to open stream, droit
    Par Pelmat dans le forum Langage
    Réponses: 3
    Dernier message: 09/04/2008, 13h42
  4. Problème fopen (failed to open stream)
    Par Zolex dans le forum Langage
    Réponses: 4
    Dernier message: 03/10/2007, 09h52
  5. Réponses: 2
    Dernier message: 06/07/2002, 13h36

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