网络摄像头流到CDN FMS

时间:2010-12-16 13:07:40

标签: flash actionscript webcam live

我没有自己的Flash Media Server。但是,我可以使用Highwinds CDN。他们在CDN上运行FMS。当您安排直播活动时,Highwinds会为您提供两个网址:“服务器”和“流名称”。 例子:

  

服务器:   RTMP://fli003.am4.hwcdn.net/XXXX/ definst

     

流名称:   FLI / 00000-streamName中encoderuser = XXX&安培; encoderpassword = YYY

可以将这两个网址粘贴到Flash Media Live Encoder应用程序中以流式传输直播活动。 Flash Media Live Encoder中的相应字段名称为“FMS URL”和“Stream”。

我现在已经成功建立了与FMS服务器的连接(我认为?)。 问题是:流没有在网上显示,似乎没有提交给CDN。

function onStatus(e:NetStatusEvent):void {

trace(e.info.code);

    switch(e.info.code) {

      case "NetConnection.Connect.Success":
        var ns:NetStream = new NetStream(conn);

        ns.addEventListener(NetStatusEvent.NET_STATUS, onStatus);

        var camera = Camera.getCamera();
            camera.setLoopback(true);
            camera.setQuality( 0, 100 );
            camera.setMode(640, 480, 25)
        var mic = Microphone.getMicrophone();

        if (camera != null){
            myVid.attachCamera(camera);
            ns.attachCamera(camera);
//            ns.play();
        }
        if (mic != null) {
            ns.attachAudio(mic);
        }

        ns.publish("fli/00000-streamname?encoderuser=XXX&encoderpassword=YYY", "live");
        break;
        //...
    }
}

var conn:NetConnection = new NetConnection();



conn.addEventListener(NetStatusEvent.NET_STATUS, onStatus);
conn.connect("rtmp://fli003.am4.hwcdn.net/XXXX/_definst_");


//var counter:int = 0;
//conn.onBWDone = function(kbitDown:Number, deltaDown:Number, deltaTime:Number, latency:Number){ };
NetConnection.prototype.onBWDone = function(p_bw) {
   //trace("onBWDone: "+p_bw);
}
NetConnection.prototype.onBWCheck = function() {
   //return ++counter;
}

smil文件在那里,但我怀疑没有数据到达服务器。 播放器仅显示加载动画。

我现在得到一个额外的

  

NetStream.Failed   NetStream.InvalidArg   NetStream.InvalidArg   成功连接后。不知道那个错误来自哪里。

1 个答案:

答案 0 :(得分:2)

check the NetStraem.publish() reference:

//...
conn = new NetConnection();
conn.addEventListener(NetStatusEvent.NET_STATUS, onStatus);
conn.connect('rtmp://fli003.am4.hwcdn.net/XXXX/definst');
//...
private function onStatus(e:NetStatusEvent):void {
    switch(e.info.code) {
        case "NetConnection.Connect.Success":
        ns = new NetStream(conn);
        ns.attachCamera(camera);
        ns.publish("fli/00000-name?encoderuser=XXX&encoderpassword=YYY", "live");
        break;
        //...
    }
}