2010-03-04 8 views
3

Nous sommes impatients de développer un portail communautaire très intéressant qui aidera l'utilisateur à diffuser ses vidéos en direct dans la communauté. J'ai vérifié sur des sites comme ustream.tv, justin.tv et je me demandais comment/comment la technologie qu'ils utilisaient pour le faire.Site de streaming vidéo en direct

Je fais beaucoup de recherches au cours des derniers jours en vérifiant le moyen de le faire efficacement et de comprendre certaines des entreprises leaders dans le domaine comme Ooyala.com, brightcove.com fournissant des serveurs/technologie pour diffuser des vidéos de façon transparente à travers le monde. Je vais bientôt m'inscrire à l'un de ces fournisseurs. Donc, ma question est, comment exactement mon site Web serait attraper avec le flux en direct de la came de l'utilisateur, envoyer le flux à ooyala/brightcove et plus loin le diffuser aux autres utilisateurs de la communauté. Jusqu'à présent, j'ai compris que Flash 8/Flex fournissait certaines entrées sur la récupération de flux à partir de la caméra de l'utilisateur.

Je voudrais savoir si l'un d'entre vous a déjà travaillé sur ce sujet avant/peut éclairer la façon dont mon approche devrait être.

Merci d'avance. dev-drupal

+1

Je pensais que c'était mieux étiqueté Flash et Flash Media Server au lieu de Flex ou PHP. Les gens qui regardent les tags Flash/FMS seront probablement en mesure d'aider davantage. – ryanstewart

+0

Si vous arrivez à savoir à ce sujet pouvez-vous s'il vous plaît laissez-moi savoir. Je prévois de venir avec le même genre de portail, – gmhk

Répondre

0

Le plus simple est d'utiliser un Flash/Flex Client Red5 http://osflash.org/red5

Le Flash Player a une méthode pour l'utilisation d'une caméra vidéo et le serveur Red5 est un serveur Flash open source qui enregistrera flux de clients.

Je recommande d'installer Red5 et de jouer avec. Il fait tout ce dont vous avez besoin. Jetez un coup d'œil sur l'API et commencez à écrire des applications de test.

COMMENT OBTENIR DE CAMERA VIDEO UTILISATEUR:

package { 
    import flash.display.Sprite; 
    import flash.media.Camera; 
    import flash.media.Video; 
    import flash.text.TextField; 
    import flash.text.TextFieldAutoSize; 
    import flash.utils.Timer; 
    import flash.events.TimerEvent; 
    import flash.events.StatusEvent; 
    import flash.events.MouseEvent; 
    import flash.system.SecurityPanel; 
    import flash.system.Security; 

    public class Camera_getCameraExample extends Sprite { 
     private var myTextField:TextField; 
     private var cam:Camera; 
     private var t:Timer = new Timer(1000); 

     public function Camera_getCameraExample() { 
      myTextField = new TextField(); 
      myTextField.x = 10; 
      myTextField.y = 10; 
      myTextField.background = true; 
      myTextField.selectable = false; 
      myTextField.autoSize = TextFieldAutoSize.LEFT;  

      cam = Camera.getCamera(); 

      if (!cam) { 
       myTextField.text = "No camera is installed."; 

      } else if (cam.muted) { 
       myTextField.text = "To enable the use of the camera,\n" 
           + "please click on this text field.\n" 
           + "When the Flash Player Settings dialog appears,\n" 
           + "make sure to select the Allow radio button\n" 
           + "to grant access to your camera."; 

       myTextField.addEventListener(MouseEvent.CLICK, clickHandler); 

      }else { 
       myTextField.text = "Connecting"; 
       connectCamera(); 
      } 

      addChild(myTextField); 

      t.addEventListener(TimerEvent.TIMER, timerHandler); 
     } 

     private function clickHandler(e:MouseEvent):void { 
      Security.showSettings(SecurityPanel.PRIVACY); 

      cam.addEventListener(StatusEvent.STATUS, statusHandler); 

      myTextField.removeEventListener(MouseEvent.CLICK, clickHandler); 
     } 

     private function statusHandler(event:StatusEvent):void { 

      if (event.code == "Camera.Unmuted") { 
       connectCamera(); 
       cam.removeEventListener(StatusEvent.STATUS, statusHandler); 
      } 
     } 

     private function connectCamera():void { 
       var vid:Video = new Video(cam.width, cam.height); 
       vid.x = 10; 
       vid.y = 10; 
       vid.attachCamera(cam); 
       addChild(vid);  

       t.start(); 
     } 

     private function timerHandler(event:TimerEvent):void { 
      myTextField.y = cam.height + 20; 
      myTextField.text = ""; 
      myTextField.appendText("bandwidth: " + cam.bandwidth + "\n"); 
      myTextField.appendText("currentFPS: " + Math.round(cam.currentFPS) + "\n"); 
      myTextField.appendText("fps: " + cam.fps + "\n"); 
      myTextField.appendText("keyFrameInterval: " + cam.keyFrameInterval + "\n"); 
     } 
    } 
} 

COMMENT ENVOYER À VIDEO LUMINEUX COVE

Ils ont une API juste de lire dessus.

+0

Non, nous ne voulons pas configurer Red5 pour la diffusion de vidéo, nous laisserions la partie radiodiffusion à Ooyala/brightcove. Je veux savoir 2 choses. 1. Comment collecter le flux en direct à partir de la caméra utilisateur 2. Comment connecter ce flux en direct aux serveurs Ooyala/brightcove. – user274383