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
A voir également:

6 réponses

Utilisateur anonyme
 
quel est ton code actuellement?
0
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
Utilisateur anonyme
 
la solution à ce problème n'est pas si facile...
0
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
racacax Messages postés 117 Date d'inscription   Statut Membre Dernière intervention   17
 
Merci je vais essayer
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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
Utilisateur anonyme
 
tu trouves toujours plus simple que moi =p.
0
racacax Messages postés 117 Date d'inscription   Statut Membre Dernière intervention   17
 
Merci à vous deux mais aucune des deux solutions ne fonctionne : https://www.000webhost.com/migrate?static=true
0