Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/01/2007, 11h43   #1
Invité de passage
 
Inscription : septembre 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 4
Points : 1
Points : 1
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 :
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);
?>
manarak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2007, 19h14   #2
Membre confirmé
 
Développeur Web
Inscription : septembre 2006
Messages : 215
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : septembre 2006
Messages : 215
Points : 246
Points : 246
Salut

tu peux essayer comme ca :

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

sahid
sahid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2007, 22h48   #3
Invité de passage
 
Inscription : septembre 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 4
Points : 1
Points : 1
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?
manarak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2007, 10h59   #4
Membre confirmé
 
Développeur Web
Inscription : septembre 2006
Messages : 215
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : septembre 2006
Messages : 215
Points : 246
Points : 246
erf ...

youtube, google video utilisent le flash, vous ne pouvez pas essayer de faire pareil ?
sahid est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h53.


 
 
 
 
Partenaires

Hébergement Web