Petite class pour Twitter

Aujourd’hui j’ai entrepris une petite tâche qui pourra dans un avenir proche être bien bénéfique.
J’ai décidé de commencer la création d’une petite bibliothèque de class php.
Libre à vous de les copier, et les utiliser à votre convenance (envoyez moi juste un mail que je sache que vous les utilisez !).
On va donc commencer par une petite class toute simple permettant de récupérer un flux twitter, en POO.

class listingTweets {
  public function listeTweets($urlTwitter, $nbTweets){
    $flux	= '';
    $dom 	= new DOMDocument();

    if(!$dom ->load($urlTwitter)) {
      return die('Erreur de chargement du XML');
    }

    $itemList       = $dom->getElementsByTagName('item');
    $thisObjectName = get_class($this);
    $retour		= array();
    $i 		= 1;
    foreach($itemList as $item) {
      if($i<= $nbTweets ){
        $entree	        = new $thisObjectName();
        $entree -> post = $item->getElementsByTagName('title') -> item(0) -> nodeValue;
         $retour[] 	= $entree;
        $i++;
      }
    }
    return $retour;
    }
}

Et pour l’utilisation, c’est assez simple, vous faites un include de la class puis pour récupérer les 3 derniers tweets du flux $flux :

$listing 	= new listingTweets();
$liste		= $listing -> listeTweets($flux, 3);  // $flux : URL du flux twitter / 3 : nombre de posts à afficher
foreach ($liste as $tweet){
	echo $tweet -> post.'<br />'; // Jeu avec les post, ici, un simple retour à la ligne à chaque nouveau post
}

streamer une video Live via red5

Nous avons donc vu comment monter un serveur de streaming Red5. Il reste donc à l’exploiter !
Pour cela, il va nous falloir un moyen d’envoyer un flux vidéo, qui sera retransmis via Red5, et également un moyen d’accrocher ce flux.

Envoi du flux vidéo
Red5 étant un serveur de type Flash Média Server nous allons utiliser FlashMediaLiveEncoder d’Adobe. Il va donc falloir le télécharger depuis le site d’Adobe. Le logiciel est gratuit.
Après l’installation, il va falloir le configurer : nous allons choisir le preset LowBandwidth (150 Kbps) – VP6.
Par défaut, le fux de votre webCam sera utilisé pour le streaming.
Reste donc à parametrer la cible du flux :
Cochez « Stream to Flash Media Server »
Dans le champ « FMS URL », indiquez l’adresse de votre FMS qui sera du type : rtmp://IP DE VOTRE SERVEUR/oflaDemo
enfin, indiquez le nom du stream dans le champ « Stream » (par ex: livestream).
Il ne vous reste plus qu’à cliquer sur « Connect » pour connecter le flux vidéo à votre serveur Red5.
Une fois le flux créé et le serveur Red5 connecté, il ne reste plus qu’à le lire.

Lecture du flux vidéo
Pour lire le flux vidéo live que nous avons appelé « livestream », nous allons développer un lecteur vidéo en AS3 sous flash.
Pour cela, on compile le script suivant :

var nomStream = "livestream";
var largeurVideo = 176;
var hauteurVideo = 144;

var nc:NetConnection;
var ns:NetStream;
var lecteurStream:NetStream;
var lecteurVideo:Video;

nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
nc.connect("rtmp://IP DE VOTRE SERVEUR/oflademo");

function onNetStatus(event:NetStatusEvent):void {
	if (event.info.code=="NetConnection.Connect.Success") {
		affichageStreaming();
	}
}

function affichageStreaming():void {
	lecteurStream =	new NetStream(nc);
	lecteurStream.play(nomStream);
	lecteurVideo = new Video(largeurVideo,hauteurVideo);
	lecteurVideo.attachNetStream(lecteurStream);
	addChild(lecteurVideo);
}

Normalement, vous avez tout ce qu’il faut pour streamer du live via Red5 !
Reste plus qu’à faire des tests pour savoir ce que va pouvoir encaisser votre serveur et surtout le nombre d’internautes simultanés que permettra votre bande passante…

Graph'Pix YouAreLucky