M3U8 : PHP, mettre l'adresse complète des fichiers TS internes

racacax Messages postés 117 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,
J'aimerai créer un PHP de ce flux : http://se-1.se.directstar-hls.live.numericable.tv/live/hls/directstar/ipadstream1000directstar.m3u8

L'ennui, l'adresse des TS est courte alors cela ne lancera pas la vidéo car ça ferai comme si les TS étaient sur mon serveur hors ils ne le sont pas. Il faudrait que les fichiers TS aient ceci avant : http://se-1.se.directstar-hls.live.numericable.tv/live/hls/directstar/ipadstream1000directstar/

Cela devrait ressembler à ça (les fichiers TS changent de noms vu que ce sont des parses) :
#EXTM3U
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:514711
#EXT-X-KEY:METHOD=AES-128,URI="http://80.236.2.153/live/hls/keys/cmp9_channel1_080914_211058478_1715.key"
#EXTINF:6,
http://se-1.se.directstar-hls.live.numericable.tv/live/hls/directstar/ipadstream1000directstar/ipadstream1000directstar/segment_080914_211058478_514711.ts
#EXTINF:6,
http://se-1.se.directstar-hls.live.numericable.tv/live/hls/directstar/ipadstream1000directstar/ipadstream1000directstar/segment_080914_211058478_514712.ts
#EXTINF:6,
http://se-1.se.directstar-hls.live.numericable.tv/live/hls/directstar/ipadstream1000directstar/ipadstream1000directstar/segment_080914_211058478_514713.ts
#EXTINF:6,
http://se-1.se.directstar-hls.live.numericable.tv/live/hls/directstar/ipadstream1000directstar/ipadstream1000directstar/segment_080914_211058478_514714.ts
#EXTINF:6,
http://se-1.se.directstar-hls.live.numericable.tv/live/hls/directstar/ipadstream1000directstaripadstream1000directstar/segment_080914_211058478_514715.ts
#EXTINF:6,
http://se-1.se.directstar-hls.live.numericable.tv/live/hls/directstar/ipadstream1000directstar/ipadstream1000directstar/segment_080914_211058478_514716.ts
#EXTINF:6,
http://se-1.se.directstar-hls.live.numericable.tv/live/hls/directstar/ipadstream1000directstar/ipadstream1000directstar/segment_080914_211058478_514717.ts
#EXTINF:6,
http://se-1.se.directstar-hls.live.numericable.tv/live/hls/directstar/ipadstream1000directstar/ipadstream1000directstar/segment_080914_211058478_514718.ts
#EXTINF:6,
http://se-1.se.directstar-hls.live.numericable.tv/live/hls/directstar/ipadstream1000directstar/ipadstream1000directstar/segment_080914_211058478_514719.ts
#EXTINF:6,
http://se-1.se.directstar-hls.live.numericable.tv/live/hls/directstar/ipadstream1000directstar/ipadstream1000directstar/segment_080914_211058478_514720.ts

Pour l'instant ça ressemble à ça :

#EXTM3U
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:514711
#EXT-X-KEY:METHOD=AES-128,URI="http://80.236.2.153/live/hls/keys/cmp9_channel1_080914_211058478_1715.key"
#EXTINF:6,
ipadstream1000directstar/segment_080914_211058478_514711.ts
#EXTINF:6,
ipadstream1000directstar/segment_080914_211058478_514712.ts
#EXTINF:6,
ipadstream1000directstar/segment_080914_211058478_514713.ts
#EXTINF:6,
ipadstream1000directstar/segment_080914_211058478_514714.ts
#EXTINF:6,
ipadstream1000directstar/segment_080914_211058478_514715.ts
#EXTINF:6,
ipadstream1000directstar/segment_080914_211058478_514716.ts
#EXTINF:6,
ipadstream1000directstar/segment_080914_211058478_514717.ts
#EXTINF:6,
ipadstream1000directstar/segment_080914_211058478_514718.ts
#EXTINF:6,
ipadstream1000directstar/segment_080914_211058478_514719.ts
#EXTINF:6,
ipadstream1000directstar/
segment_080914_211058478_514720.ts

Merci d'avance

6 réponses

  1. Utilisateur anonyme
     
    quel est ton code actuellement?
    0
  2. racacax Messages postés 117 Date d'inscription   Statut Membre Dernière intervention   17
     
    <?php

    $url = 'http://se-1.se.directstar-hls.live.numericable.tv/live/hls/directstar/ipadstream1000directstar.m3u8';

    $ch = curl_init($url);

    curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

    if (preg_match(''^http://se-1.se.directstar-hls.live.numericable.tv/live/hls/directstar/ipadstream1000directstar.m3u8'i', $url))
    {
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    }

    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    // Récupération du contenu retourné par la requête
    $page_content = curl_exec($ch);

    curl_close($ch);
    echo $page_content;
    ?>
    0
    1. Utilisateur anonyme
       
      la solution à ce problème n'est pas si facile...
      0
  3. Utilisateur anonyme
     
    Alors voilà enfin une solution que j'ai mise au point.

    IF(preg_match('/^http://se-1.se.directstar-hls.live.numericable.tv/live/hls/directstar/ipadstream1000directstar.m3u8/i', $url)){
     
    //[...]
     
    $page_content = curl_exec($ch);
     
    /*Cette fonction retournera un tableau de tous les segments 
    qui sont conformes au format: segment_[nombre]_[nombre]_[nombre].ts.
    Ne reste plus qu'à ajouter ce que tu désires aux résultats du tableau.*/
    preg_match_all('/segment(_\d+){3}.ts/i', $page_content, $matches);
    
    print_r($matches);
    


    N'hésite pas si tu as quelques soucis.

    @ plus,
    0
  4. racacax Messages postés 117 Date d'inscription   Statut Membre Dernière intervention   17
     
    Merci je vais essayer
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Pitet Messages postés 2845 Statut Membre 530
     
    Salut,

    Je suis p-e à coté de la plaque mais si c'est uniquement le nom des segments qui changent, un simple str_replace devrait suffire ?

    En partant de ton résultat :
    $page_content = '#EXTM3U
    #EXT-X-TARGETDURATION:6
    #EXT-X-MEDIA-SEQUENCE:514711
    #EXT-X-KEY:METHOD=AES-128,URI="http://80.236.2.153/live/hls/keys/cmp9_channel1_080914_211058478_1715.key"
    #EXTINF:6,
    ipadstream1000directstar/segment_080914_211058478_514711.ts
    #EXTINF:6,
    ipadstream1000directstar/segment_080914_211058478_514712.ts
    #EXTINF:6,
    ipadstream1000directstar/segment_080914_211058478_514713.ts
    #EXTINF:6,
    ipadstream1000directstar/segment_080914_211058478_514714.ts
    #EXTINF:6,
    ipadstream1000directstar/segment_080914_211058478_514715.ts
    #EXTINF:6,
    ipadstream1000directstar/segment_080914_211058478_514716.ts
    #EXTINF:6,
    ipadstream1000directstar/segment_080914_211058478_514717.ts
    #EXTINF:6,
    ipadstream1000directstar/segment_080914_211058478_514718.ts
    #EXTINF:6,
    ipadstream1000directstar/segment_080914_211058478_514719.ts
    #EXTINF:6,
    ipadstream1000directstar/segment_080914_211058478_514720.ts';
    
    $page_content = str_replace('ipadstream1000directstar', 'http://se-1.se.directstar-hls.live.numericable.tv/live/hls/directstar/ipadstream1000directstar', $page_content);
    
    echo '<pre>' . $page_content . '</pre>';
    


    Bonne journée
    0
    1. Utilisateur anonyme
       
      tu trouves toujours plus simple que moi =p.
      0