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

PHP & Base de données Discussion :

Retourner le flux flv d'un fichier


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 16
    Par défaut Retourner le flux flv d'un fichier
    Bonjour à tous,

    Je suis confronté à un gros problème technique!
    Pour les besoins de mon appli, j'ai architecturé mon site comme suit en utilisant Zend Framework:
    + Application
    -> videos
    -> modules
    -> ...
    + WWW

    Application est un dossier privé, et WWW est public.
    Je stocke mes uploads flv dans Application>Videos.

    Mon problème est que je n'arrive pas à renvoyer le flux flv d'une vidéo demandée.
    C'est normalement le rôle de mon action fluxvideo de mon controlleur film que j'appelle comme suit par ex: "film/fluxvideo/id/163" depuis la playlist du lecteur flash jwplayer.

    Je n'arrive pas à renvoyer le flv!!
    Voici le code actuel de mon action
    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
        public function fluxvideoAction()
        {
    		$this->_helper->viewRenderer->setNoRender();
    		$this->_helper->layout->disableLayout();
     
    		// recuperation du dossier privé application>medias
    		$videosPath = Zend_Registry::get('path_medias');
    		$flv = $videosPath.DIRECTORY_SEPARATOR."video_{$params['id']}.flv";	        
            //video_$id.flv	        
    		// ouvre un fichier en mode binaire
    		//$name = './img/ok.png';
    		header('Content-Type: video/x-flv'); 
     
    		readfile($flv); 
                    exit;   	
        }
    J'ai même essayé avec d'autres techniques comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	        $fh = fopen($flv, "rb");
    	        fseek($fh, $pos);
    	        while (!feof($fh)) 
    	        {
    	            print (fread($fh, 16384));
    	        }
    	        fclose($fh);
    Je suis perdu.
    Merci par avance pour votre aide.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut Zend FW
    Salut,

    Quand tu es dans une action du Zend Framework, le fil de processus va par la suite inclure une Zend_View.

    Tu devrai t'assurer qu'aucun buffer n'est en place ds ton action, donc les purger.

    Ensuite met un exit() à la fin de ton action.

    Ca debloquera peut-être ton probleme.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 16
    Par défaut
    merci yabyab mais malheureusement ça ne résoud rien.
    J'ai oublie de faire figurer ici le exit();

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut
    Arf,

    Et as tu essayer de vider le buffer ?

    Peut etre qu'un ob_start absorbe ton readfile en fait.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 16
    Par défaut
    J'ai essayé mais ça ne marche pas.
    En fait, j'ai l'impression que le flux est retourné (avec firebug) je vois une réponse du type (marche uniquement si je ne place pas de exit dans mon action)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FLV���	�����K��������
    onMetaData����duration�@@Ç®záH�	starttime����������
    totalduration�@@Ç®záH�width�@gÀ������height�@n�������
    videodatarate�@n¤²ìæ/¸�
    audiodatarate�@LÔ•ÒZ6‹�
    suite à ma requête, mais apparemment le type de la réponse est "text/html; charset=utf-8" d'après firebug!!
    Je comprends pas trop...

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut
    C'est pour protéger l'accès a tes médias que tu fais un chargement en passant par un controlleur ?

Discussions similaires

  1. [C#]Erreur lecture flux http et ecriture fichier
    Par f.colo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 31/01/2012, 10h40
  2. Récupérer flux à partir d'un fichier XML
    Par loicmaxinfo dans le forum Langage
    Réponses: 2
    Dernier message: 27/05/2008, 17h45
  3. Redirection de flux standard vers des fichiers
    Par raoulchatigre dans le forum C++
    Réponses: 8
    Dernier message: 29/01/2008, 11h27
  4. Flux endommagé pour un fichier unité
    Par randriano dans le forum Delphi
    Réponses: 9
    Dernier message: 11/04/2007, 09h48
  5. Download automatique d'un flux sous forme de fichier.
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 11/10/2006, 16h53

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