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 :

Vider cache video streaming


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Vider cache video streaming
    Bonjour,

    je travaille actuellement sur un projet de streaming live (entendre ici que chaque utilisateur voit la même chose au même moment, impossibilité de mettre sur pause ou de revenir en arrière) d'une playlist video prédéfini. J'utilise VLC pour créer le flux de sortie que je recupère dans une page avec balise vidéo (HTML5).

    J'aimerais donc à chaque fois qu'on charge la page, vider le cache de l'utilisateur pour que la vidéo ne soit pas préchargée.

    Existe t'il une telle fonction en php? ou si ce n'est pas possible dans un autre langage?

    Je reste à votre disposition pour vous donner des informations complémentaires.
    Merci d'avance

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    habituellement les pages php ne sont pas mises en cache par les navigateurs par manque d'entete que apache (le serveur web) positionne automatiquement pour identifier le fichier comme non modifié sur les formats réputés statiques.

    Généralement tu préfères que tes pages ne soient pas revalidée, ça diminue la bande passante sur ton serveur, c'est au client de "rafraichir" ses données correctement. J'ai envie de te dire regarde comment on fait pour permettre la mise en cache et fait le contraire.

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    A la fois , ce que tu veux faire c'est un flux façon TV, donc il n'y a d'office pas de cache, mais juste une mise en mémoire tampon, non ?

    et du coup je pense pas que ce soit la même chose..


    solution payante : tools on air "une station tv dans un mac"

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bonjour et merci pour vos réponses voici mon problème en détail :

    -Je lance VLC qui créé le flux de streaming
    -Je rafraichit la page qui capture le flux correctement et la vidéo se joue automatiquement
    -VLC a fini de lire la vidéo et n'emet donc plus rien
    -Si je recharge la page je peux toujours voir une partie du flux précédent
    -Je relance VLC qui se remet à créer un flux
    -Je rafraichit la page, mais ça m'affiche toujours une partie du flux précédent et non celui en cours

    Cependant si j'attend un peu avant de recharger la page, il n'y a plus de fragments de vidéo, tout rentre dans l'ordre, du moins comme je le voudrais

    @ascito : effectivement je parle peut être de la mémoire tampon, c'est peut être celle-ci que je cherche à effacer, est ce toujours possible?

    Merci d'avance

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Nounjog, dans son dernier post a très bien expliqué le problème.

    Je suis également dans la même situation.

    En général je me contente de fouiner sur la toile et je fini systématiquement par trouver la réponse à mes interrogation,

    mais là, je sèche complètement.

    Si quelqu'un avait ne serait ce qu'un début de piste, mots clés etc.. qui me permetterais de parvenir au fonctionnement souhaité ce serait super.

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 230
    Points
    20 230
    Par défaut
    Citation Envoyé par Nounjog Voir le message
    -VLC a fini de lire la vidéo et n'emet donc plus rien
    -Si je recharge la page je peux toujours voir une partie du flux précédent

    [...]

    Cependant si j'attend un peu avant de recharger la page, il n'y a plus de fragments de vidéo, tout rentre dans l'ordre, du moins comme je le voudrais
    Ce que tu décrit ressemble pour moi au buffer de la carte réseau. Concrètement VLC stream , la carte réseau du serveur bufferise et envoi par paquet. De l'autre coté même chose , la carte réseau reçois bufferise et le player traite les données quand il peux.
    Du coup VLC peux avoir fini d'envoyer ses données sans pour autant que les données est finie d'arrivée à destination , d'où cette rémanance quand tu refresh la page.

    C'est une supposition , mais si c'est le cas c'est à mon avis des problèmes trop bas niveau pour être réglé via vlc et/ou javascript.

    Tu peux cependant essayer les différentes entêtes HTTP pour le controle du cache : http://fr.wikipedia.org/wiki/Cache-Control

    PS : Ton streaming vlc => html5 m'intéresse si jamais tu as 5 min pour détailler un peu la méthode utilisée (protocole , etc ...) je suis preneur

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Tu n'as pas tord au sujet de la latence, émition/réception mais ce n'est pas le problème.

    pour ma pare, vlc diffuse ma webcam puis se coupe tout seul au bout de 5 min.

    vlc est lancé par ma page php.

    donc une fois que les 5 min sont écoulées, il me faut rafraichir ma page pour visionner de nouveau.

    cependant la balise vidéo ne me renvoie plus le direct mais ce qui à été vu au premier lancement.

    je peux rafraichir la page 100 fois de suite, je n'aurais toujours pas le direct,

    sauf si je vide le cache de firefox ou attends suffisament longtemps pour que je suppose le cache devienne périmé.

    est-ce plus clair ?

    ce n'est pas à moi que tu le demandais mais voici comment je procède :

    cam.sh
    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
     
    #!/bin/bash
     
    case "$1" in
     
    start)
     
      if [ -f /var/www/Webcam/mylockfile ]; then exit 1; fi 
      touch /var/www/Webcam/mylockfile
      cvlc v4l2:// :v4l2-vdev="/dev/video0" --no-sout-audio --sout '#transcode{fps=12,vcodec=theo,vb=192,width=640,heigh=480}:standard{access=http,mux=ogg,dst=live.ogv}' &
      sleep 5m 
      killall vlc &
      rm /var/www/Webcam/mylockfile
        ;;
     
    stop)
     
      killall vlc &
      rm /var/www/Webcam/mylockfile
        ;;
     
    *)
     
      echo "Usage: ./cam.sh {start|stop}" >&2
      exit 3
    	;;
    esac
    exit 0
    index.php
    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
     
    <?php 
     
    passthru ('./cam.sh start'); // on lance le streaming
     
     ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Camera</title>
     
     
    </head>
    <BODY>
    <center>
     
      <!-- on affiche le rendu en html 5 pour les nouveaux navigateur comme firefox :p --> 
     
    <video id="video" width="640" height="480" src="http://www.chez.moi/live.ogv"  type='video/ogg; codecs="theora,vorbis"' 
    muted
    autoplay
    preload="none"
    poster="robocam.jpg" 
    onended="alert('Fin de diffusion.')">
     
      <!-- on affiche le rendu en java pour les anciens navigateurs comme ie ^^ -->
     
    <applet name="cortado" code="com.fluendo.player.Cortado.class" archive="cortado.jar" width="640" height="480">
       <param name="url" value="http://www.chez.moi/live.ogv"/>
       <param name="audio" value="false" />
       <param name="live" value="true" />
       <param name="showStatus" value="hide" />		  
    </applet> 
    </video>
    </center>
    </body>
    </html>
    .htaccess
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AddType video/ogg  .ogv

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    J'addore les forums qui n'offre pas la possibilité de se corriger sur la durée

    mon code était tout pouris et boggué, je rectifie donc ici vu que je n'ai pas vu comment éditer mon précédent message.

    cam.sh
    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
     
    #!/bin/bash
     
    case "$1" in
     
    start)
     
      if [ -f /var/www/webcam/mylockfile ]; then exit 1; fi 
      touch /var/www/webcam/mylockfile
      vlc -I dummy v4l2:// :v4l2-vdev="/dev/video0" --no-sout-audio --sout '#transcode{fps=12,vcodec=theo,vb=192,width=640,heigh=480}:standard{access=http,mux=ogg,dst=live.ogv}' &
      sleep 5m 
      killall -q vlc sleep
      rm /var/www/webcam/mylockfile
        ;;
     
    stop)
     
      killall -q vlc sleep  
      rm /var/www/webcam/mylockfile
        ;;
     
    *)
     
      echo "Usage: ./cam.sh {start|stop}" >&2
      exit 3
    	;;
    esac
    exit 0
    index.php
    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
     
    <?php 
    exec('nohup ./cam.sh start >/dev/null 2>&1 &'); // on lance le stream
    ?>
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <!-- meta -->
    <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
    <META charset="utf-8">
    <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
    <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
    <META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 22 Jul 2002 11:12:01 GMT">
    <title> Camera</title>
    <!-- style -->
    <style> html,body{text-align:center} </style>
    </head>
    <body>
    <!-- on affiche le rendu en html 5 pour les nouveaux navigateur comme firefox :p --> 
    <video id="video" width="640" height="480" src="http://www.chez.moi/live.ogv" type='video/ogg; codecs="theora, vorbis"' muted autoplay preload="none" onclick="this.play();" onended="alert('Fin de diffusion.')">
    <!-- on affiche le rendu en java pour les anciens navigateurs comme ie ^^ -->
     <object type="application/x-java-applet" width="640" height="480">  
         <param name="archive" value="cortado.jar">  
         <param name="code" value="com.fluendo.player.Cortado.class">  
         <param name="url" value="http://www.chez.moi/live.ogv">  
    	 <param name="audio" value="false">
     <param name="live" value="true">
     <param name="showStatus" value="hide">
    <!-- on propose de télécharger java si besoin -->
     <p>Vous devez installer <a href="http://www.java.com/fr/download/">java</a> pour voir cette vidéo</p>  
      </object>
    </video>
    </body>
    </html>
    j'ai rajouté les meta concernant le cache mais c'est juste pour la forme car je l'avais déjà tenté évidement et ça ne fonctionnait pas, c'est pourquoi je les avait suprimé dans mon précédent message.

    à mon humble avis c'est la balise vidéo qui, entre autres problèmes de jeunesses ne permet pas le fonctionnement souhaité.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bonjour Ivsigo,

    il me semble que j'ai résolu partiellement ce problème en changeant tout simplement de player HTML5. (Celui que j'utilisais était lourd et difficilement modifiable)

    Je vais rentrer dans la phase de test pour ce projet, je vais m'assurer que ça fonctionne correctement, puis je te donnerais la solution si tu es toujours intéréssé.

    Bonne journée !

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    J'attends ton retour avec impatience, merci.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    re bonjour,

    n'ayant pas pu solutionner ce problème, je me suis décidé à tout chambouler..

    j'ai abandonné l'idée du ré encodage à la volée et la diffusion par vlc.

    c'était de toute manière bien trop gourmand en ressources processeur..


    je me suis donc tourné vers le motion-jpeg qui convient tout à fait à mon usage.

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/04/2008, 13h59
  2. [Cache]Vider cache des JSP
    Par Salam59 dans le forum Weblogic
    Réponses: 1
    Dernier message: 04/12/2006, 10h43
  3. [XHTML] Prob. video stream
    Par gretch dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 20/10/2006, 16h01
  4. video streaming
    Par dehix dans le forum Java ME
    Réponses: 1
    Dernier message: 23/02/2006, 15h31
  5. Vider cache IE en php
    Par nounours21_6 dans le forum Langage
    Réponses: 1
    Dernier message: 08/02/2006, 00h37

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