Bonjour,

J'aimerai bien savoir si la balise <video> de HTML5 gère le streaming , si la vidéo est délivrée en flux ou pas cette solution? autrement dit, que se passerait-il avec une vidéo de 500 Mo ? Doit-on attendre le chargement complet, ou démarre-t-on la lecture avant le téléchargement complet ?

Merci.

18 réponses


lynxfg
Auteur

Merci Advancid pour ces clarifications,
Ma question maintenan est comment implémenter cette solution de streaming d'une sorte que le telechargement se fait par segment . est ce que y a t il une solution avec PHP ?
Merci.

Salut,

Si l'anglais ne te fait pas peur : https://www.youtube.com/watch?v=w6muSE-w0U8 :D
Sinon, j'ai trouvé cette classe PHP en cherchant un peu https://gist.github.com/ranacseruet/9826293 et le tuto qui va avec http://codesamplez.com/programming/php-html5-video-streaming-tutorial

lynxfg
Auteur

J'ai procédé à cette solution : http://codesamplez.com/programming/php-html5-video-streaming-tutorial , mais je suis toujours bloqué

lynxfg
Auteur

Quand j'implémente cette solution, la vidéo prends toute la page HTML ce qui fait que les autre element de la page disparaissent, y a t il un solution de l'appliquer uniquement sur une div précise ?

Euh ça c'est du design, donc du CSS, à toi de faire en sorte que la balise <video> ne prenne pas toute la largeur de la page.

lynxfg
Auteur

Je ne pense pas que c'est du design, quand j'inclus cette classe toute le code de la page change, voir le code généré en dessous :

<html>
    <head>
    <meta name="viewport" content="width=device-width"></head><body style="margin: 0px;">
    <video controls="" autoplay="" name="media"><source src="http://localhost/videoStream/" type="video/mp4"></video>
    </body>
</html>

Euh attends est-ce que tu sais au moins ce que tu fais ? Je n'ai pas l'impression que ça soit le cas.
Et si la vidéo prend toute la largeur c'est du CSS, point barre (je sais encore de quoi je parle ...).
Tu peux nous montrer ta page EN ENTIER stp ?

@Advancid Je pense qu'il est débutant, du coup tu risque de le perdre là, tu aurais un exemple ou un tuto à lui fournir ?

lynxfg
Auteur

Alors pour bien préciser, j'ai une simple page index.php :

<!doctype html>
<html>
    <head>
        <title>Page de test</title>
    </head>
    <body>
        <div class="content">
            <h2>block 1</h2>
            <div>
                Block 1
            </div>

            <h2>block 2</h2>
            <div>
                Block 2
            </div>
        </div>
        <div class="video">
            <?php
            $stream = new VideoStream("./video/1.mp4");
            $stream->start();
            ?>
        </div>

    </body>
</html>

apres faire appel à la classe : j'ai comme resultat une full page video et tout le contenu de la <div class="content"> disparait.

lynxfg
Auteur

@Advancid, Oui comme a dit @betaWeb , je suis débutant je n'ai pas des grande connaissance en streaming, je suis sur un serveur LAMP, et je veux faire du streaming sur mon site web.

Merci de me proposer une piste.

<blockquote>Merci de me proposer une piste.</blockquote> On est pas à ton service ! >:(
Nous t'avons déjà fourni des pistes, à toi de les exploiter au mieux et de chercher de ton côté. Le Web regorge de ressources.

lynxfg
Auteur

@betaWeb merci pour votre aide, j'ai galeré à chercher sur internet depuis une semaine, et je suis toujours bloqué.
pour la solution de la classe PHP videoStream.php, comme je vous ai dit ce n'est pas un probème de css.
@Advancid tu veux dire quoi par un fichier static ? j'ai mes videos stockés sur un serveur, et je veux les afficher sur mon siteweb en streaming.

Quel est e problème avec la classe PHP videoStream.php ? Fais un screen et publie-le.

lynxfg
Auteur

Le problème c'est quand je fais appel à la classe PHP, la video s'afficher correctement, mais les autre bloque de ma page disparaissent du code source,
mon fichier index.php qui inclus la classe :

<!doctype html>
<html>
    <head>
        <title>Page de test</title>
    </head>
    <body>
        <div class="content">
            <h2>block 1</h2>
            <div>
                Block 1
            </div>

            <h2>block 2</h2>
            <div>
                Block 2
            </div>
        </div>
        <div class="video">
            <?php
            $stream = new VideoStream("./video/1.mp4");
            $stream->start();
            ?>
        </div>

    </body>
</html>

quand je terst voila le resultat html obtenu sur mon navigateur :

<html>
    <head>
    <meta name="viewport" content="width=device-width"></head><body style="margin: 0px;">
    <video controls="" autoplay="" name="media"><source src="http://localhost/videoStream/" type="video/mp4"></video>
    </body>
</html>

Le bloque <div class="content"> ne sont plus la.

j'espere que vous avez bien compris !

<iframe class="video">
    <?php
        $stream = new VideoStream("./video/1.mp4");
        $stream->start();
    ?>
</iframe>
lynxfg
Auteur

J'ai dèjà éssayé cette solution, toujours pas de résultat :s

Donc, si j'ai bien compris : tu n'as rien compris O_o!
As-tu cherché où était généré le html obtenu?
Si tu l'avais fait, tu aurais sûrement deviné que c'est ton navigateur intelligent, qui en a déduit que puisque tu lui envois un flux vidéo, spécifié par les headers, il doit encapsuler tout ça dans une balise vidéo! D'où le fait que l'adresse de ta page se retrouve dans la src de la balise vidéo sans que ça ne soit spécifié nul part..!
Et le code source de la classe, tu l'as étudié?
Tu aurais probablement vu que la méthode setHeader commence par ob_get_clean! Mais encore faut-il savoir ce que cela signifie, hein! Bref, tout autant de sujets passionnants qu'il va te falloir creuser! Bonne découverte, donc, si ça n'est pas déjà fait!

Tu viens de répondre à un sujet qui a 1 an.