Accueil > > > POUR LES UTILISATEUR DE DARWIN STREAMING SERVER (OU QTSS)
POUR LES UTILISATEUR DE DARWIN STREAMING SERVER (OU QTSS)
Information sur la source
Description
Ce code servira à tous les utilisateurs de Darwin Streaming Server ou QuickTime Streaming Server. Dans une utilisation du serveur en mode Live (et non pas à la demande), ce code permet savoir ce qui est diffusé au moment où l'on arrive sur la page, de récupérer la playlist et d'autres petites informations. Ce code a été testé avec Darwin 5.5 et uniquement sous linux (debian et mandriva). Pour que le code fonctionne, vous devez disposer des droits de lecture du repertoire et des fichier de "/var/streaming/playlists" (voir le repertoire dans la doc selon la version et l'os). le paramètrage du code est simple : il faut renseigner les 2 premières lignes en donnant le nom de la playlist et le repertoire des fichiers d'information de DSS (par défaut /var/streaming/playlists). Ensuite, il suffit de mettre ce code au début de la page. Il créera 2 variables de type array : $dss_current et $dss_playlist. Voir en dessous du code pour plus d'explication
Source
- <?php
-
- // Définition des chemins des fichiers
-
- $name_playlist="nom_playlist";
- $dir="/var/streaming/playlists/$name_playlist";
-
- $current=$dir."/".$name_playlist.".current";
- $playlist=$dir."/".$name_playlist.".playlist";
-
- // Récupération des données
-
- ##### le fichier multimédia courant (en train d'être diffusé) #####
- if (is_readable($current)) {
- $tmp_current=file($current);
-
- //traitement des données
- $path=trim(substr($tmp_current[0],strpos($tmp_current[0],"/")));
- $name=trim(substr($tmp_current[0],strrpos($tmp_current[0],"/")+1));
-
- $debut=trim(substr($tmp_current[1],strpos($tmp_current[1]," ")+1));
- $debut=substr($debut,0,strpos($debut," "));
-
- $fin=trim(substr($tmp_current[2],strpos($tmp_current[2]," ")+1));
- $fin=substr($fin,0,strpos($fin," "));
-
- $duree=substr($tmp_current[3],strpos($tmp_current[3]," ")+1);
- $duree=substr($duree,0,strpos($duree," "));
-
- $dss_current=array(0=>$path,'path'=>$path,
- 1=>$name,'name'=>$name,
- 2=>$debut,'debut'=>$debut,
- 3=>$fin,'fin'=>$fin,
- 4=>$duree,'duree'=>$duree);
-
- }else{
- echo "Le fichier $current n'est pas accessible";
- }
-
- ##### La playlist complète ####
- if(is_readable($playlist)){
- $tmp_playlist=file($playlist);
- }else{
- echo "Le fichier $playlist n'est pas accessible";
- }
- for($i=4;$i<sizeof($tmp_playlist);$i++){
- $j=$i-4;
-
- $dss_playlist['path'][$j]=substr($tmp_playlist[$i],strpos($tmp_playlist[$i],"\"")+1,strrpos($tmp_playlist[$i],"\"")-1);
- $dss_playlist['name'][$j]=substr($dss_playlist['path'][$j],strrpos($dss_playlist['path'][$j],"/")+1);
- }
-
- //détruit les variables temporaires
- unset($tmp_current, $tmp_playlist);
- ?>
<?php
// Définition des chemins des fichiers
$name_playlist="nom_playlist";
$dir="/var/streaming/playlists/$name_playlist";
$current=$dir."/".$name_playlist.".current";
$playlist=$dir."/".$name_playlist.".playlist";
// Récupération des données
##### le fichier multimédia courant (en train d'être diffusé) #####
if (is_readable($current)) {
$tmp_current=file($current);
//traitement des données
$path=trim(substr($tmp_current[0],strpos($tmp_current[0],"/")));
$name=trim(substr($tmp_current[0],strrpos($tmp_current[0],"/")+1));
$debut=trim(substr($tmp_current[1],strpos($tmp_current[1]," ")+1));
$debut=substr($debut,0,strpos($debut," "));
$fin=trim(substr($tmp_current[2],strpos($tmp_current[2]," ")+1));
$fin=substr($fin,0,strpos($fin," "));
$duree=substr($tmp_current[3],strpos($tmp_current[3]," ")+1);
$duree=substr($duree,0,strpos($duree," "));
$dss_current=array(0=>$path,'path'=>$path,
1=>$name,'name'=>$name,
2=>$debut,'debut'=>$debut,
3=>$fin,'fin'=>$fin,
4=>$duree,'duree'=>$duree);
}else{
echo "Le fichier $current n'est pas accessible";
}
##### La playlist complète ####
if(is_readable($playlist)){
$tmp_playlist=file($playlist);
}else{
echo "Le fichier $playlist n'est pas accessible";
}
for($i=4;$i<sizeof($tmp_playlist);$i++){
$j=$i-4;
$dss_playlist['path'][$j]=substr($tmp_playlist[$i],strpos($tmp_playlist[$i],"\"")+1,strrpos($tmp_playlist[$i],"\"")-1);
$dss_playlist['name'][$j]=substr($dss_playlist['path'][$j],strrpos($dss_playlist['path'][$j],"/")+1);
}
//détruit les variables temporaires
unset($tmp_current, $tmp_playlist);
?>
Conclusion
$dss_current : tableau accessible par indice ou en assoc : [0]=['path'] => Chemin complet du fichier courant (/usr/local/movies/sample.mov) [1]=['name'] => Nom du fichier courant (sample.mov) [2]=['debut'] => Date du début de la lecture en timestamp Unix (1171542513) [3]=['fin'] => Date de fin de la lecture en timestamp Unix (1171544251) [4]=['duree'] => Duree du fichier multimedia en timestamp Unix (770)
$dss_playlist : tableau multidimensionnel (2) $dss_playlist['path'][0] -> $dss_playlist['path'][n] => Chemin complet de tous les fichiers de la playlist $dss_playlist['name'][0] -> $dss_playlist['name'][n] => Nom de tous les fichiers de la playlist
Voilà pour récupérer les infos.
NB: J'ai réalisé ce code rapidement et il doit surement être facilement améliorable. Soyez indulgents SVP.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Streaming video [ par jbouv55151 ]
Salut a tous,J'ai une vidéo en wmv et j'aimerais savoir comment faire pour faire un une page en streaming comme les bande-annonce sur allo ciné.Si qq1
streaming video [ par a006 ]
je suis entrain de développer un site web elearning et j'ai besoin d'information sur le sujet du streaming vidéo et les outils nécessaires. merci
streaming video [ par joujma5 ]
bonjour,j'ai un petit problème concernant une varibale lu de ma base de données contenant le chemin d'accès d'un vidéo suivie de son nom et extension,
php video streaming [ par pegasegrafic ]
Bonjour, je suis débutant en PHP et je rencontre un souci bien entendu. Voilà, je doit intégrer dans un site existant une page permettant de voir une
comment lier une photo, une musique et une video a un formulaire en PHP? [ par ALEXGETHAIME ]
Salut les mecs, un debutant est celui qui est en quête de savoir; ce pourquoi quand une préoccupation parait en memoire mon regard est automatiquemen
Streaming MP3 [ par TiotBour ]
Bonjour, j'avais poster un message pour lire un mp3 sur une page web. Je remerci encore une fois les personnes ayant repondu a mon post.Maintenant mon
controler video [ par rich25200 ]
Bonjour,J'ai un très gros probleme...Est ce possible de controler l'animation d'une video real player en php en lui disant de s'arreter a une seconde
trier [ par benjiman2 ]
Bonjour , Voila je voudrais vous poser un question qui me tourmente depuis plusieurs semaine !Voici mon probleme :J'ai un site de Video .En faite c'es
upload de fichier video format wvm [ par laurentbalmer ]
voilà mon problème j'ai réalisé un formulaire pour uploder des images gif ou jpg sa marche tres bien mais pour une vidéo au format wvm il rempli biens
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|