2010-03-04 2 views
3

우리는 사용자가 커뮤니티에서 라이브 비디오를 방송하는 데 도움이되는 매우 흥미로운 커뮤니티 포털을 개발하기를 기대합니다. 나는 ustream.tv, justin.tv와 같은 사이트를 조사해 왔으며 기술을 통해 그들이 어떻게 사용했는지 궁금해하고 있습니다.라이브 비디오 스트리밍 웹 사이트

나는 지난 며칠 동안 이것을 효과적으로 조사하기 위해 많은 조사를하고 있으며 Ooyala.com, brightcove.com과 같은 도메인의 선도적 인 회사를 알아보고 비디오를 방송하기 위해 서버/기술을 제공합니다 전 세계에 걸쳐 원활하게 곧 이러한 공급자 중 하나에 가입하게 될 것입니다.

제 질문은 내 웹 사이트가 사용자 캠의 실시간 피드를 얼마나 정확하게 파악하고 ooyala/brightcove로 스트림을 보내고 나머지 커뮤니티 사용자에게도 브로드 캐스트한다는 것입니다.

지금까지 Flash 8/Flex는 사용자 cam에서 스트림을 가져 오는 데 일부 입력을 제공함을 알았습니다.

여러분 중 누구도 이전에이 작업을했는지 알고 싶습니다. 내 접근 방식을 정확히 파악하는 방법에 대해 알려줄 수 있습니다.

미리 감사드립니다. DEV-드루팔

+1

생각해 보면 Flex 또는 PHP 대신 Flash 및 Flash Media Server를 사용하는 것이 좋습니다. 플래시/FMS 태그를 보는 사람들은 아마도 더 많은 것을 도울 수있을 것입니다. – ryanstewart

+0

이 사실을 알게되면 알려주십시오. 같은 종류의 포털을 만들려고합니다. – gmhk

답변

0

쉬운 방법은 Red5의 http://osflash.org/red5와 플래시/플렉스 클라이언트를 사용하는 것입니다

플래시 플레이어는 비디오 카메라와 Red5의 서버를 사용하는 방법이 기록됩니다 오픈 소스 플래시 서버입니다있다 클라이언트 스트림.

Red5를 설치하고 함께 재생하는 것이 좋습니다. 그것은 필요한 모든 것을 해냅니다. API를 살펴보고 테스트 앱을 작성하기 만하면됩니다. 사용자의 카메라에서 비디오를 가져 오는 방법을

는 : BRIGHT COVE

에 비디오를 전송하는 방법

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"); 
     } 
    } 
} 

그들은 API를 그냥 이상 읽었습니다.

+0

아니요. 방송용 Red5를 설치하고 싶지 않습니다. 방송 부분을 Ooyala/brightcove에 남겨 둘 것입니다. 2 가지를 알고 싶습니다. 1. 사용자가 캠에서 실시간 스트림을 수집하는 방법 2.이 라이브 스트림을 Ooyala/brightcove 서버에 연결하는 방법. – user274383