【问题标题】:Webcam Stream to CDN FMS网络摄像头流到 CDN FMS
【发布时间】:2010-12-16 13:07:40
【问题描述】:

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

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

流名称: fli/00000-streamname?encoderuser=XXX&encoderpassword=YYY

这两个 URL 可以粘贴到 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 连接成功后。不知道那个错误是从哪里来的。

【问题讨论】:

    标签: flash actionscript webcam live


    【解决方案1】:

    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;
            //...
        }
    }
    

    【讨论】:

    • 对不起,这对我来说非常困难。私有方法不需要在类的上下文中使用吗?
    • @user478419 :如果您需要在 .fla 文件中使用它 - 只需在粘贴后删除 'private' 一词,并替换 'conn = new NetConnection();'用 'var conn:NetConnection = new NetConnection();' ;)
    • 哦,好的。我已更改原始帖子中的代码以反映当前状态。
    • @ user478419 :尝试使用code.google.com/p/httpfox 之类的东西来找出失败的确切步骤
    • 我已经安装了这个插件。我看到对包含上述 swf 文件和 swf 文件本身的网页的 GET 请求。仅此而已。
    猜你喜欢
    • 2018-04-26
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 2012-06-16
    相关资源
    最近更新 更多