隨筆 - 8  文章 - 55  trackbacks - 0
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          朋友的Blog

          最新評論

          閱讀排行榜

          評論排行榜

          視頻錄制是FCS經常會用到的一個功能,其中重要的一點是要評估視頻錄制的帶寬需求來采用合適的尺寸和速率。
          其大致的算法是:
          視頻寬度 x 視頻高度 x 播放速率 (fps) = 總的帶寬( bits/sec)
          但是要注意的是,在使用FCS錄制的時候,使用的是Bps,而不是kbps,要轉換(8 bits 1 byte

          打開比方,使用320×240的視頻窗口以30fps的速率錄制,其帶寬消耗計算:

           

          1: 320 x 240 x 30 fps = 2.3 Mbps 288,000 Bps

           


          那么如何根據自身的帶寬條件進行不同的視頻設置呢,這里有些建議的設置

           

          1 : //如果使用的是1M以上的寬度的話,可以選用如下設置:
          2 : Camera.setMode(320,240,15);
          3
          : setKeyFrame(60);
          4
          : Camera.setQuality(144,000,85 );
          5
          : Microphone.setRate(22);
          6 : //總的消耗帶寬:1,196 kbps

           

           

          1 : //786 kbps寬帶:
          2 : Camera.setMode(240,180,12);
          3
          : setKeyFrame(48);
          4
          : Camera.setQuality(64,800,85 );
          5
          : Microphone.setRate(22);
          6 : //總的消耗帶寬:562 kbps

           

           

          1 : //384 kbps寬帶:
          2 : Camera.setMode(192,144,7);
          3
          : setKeyFrame(28);
          4
          : Camera.setQuality(24,192,85 );
          5
          : Microphone.setRate(11);
          6 : //總的消耗帶寬:216 kbps

           

           

          1 : //56 kbps 撥號:
          2 : Camera.setMode(80,60,8);
          3
          : setKeyFrame(32);
          4
          : Camera.setQuality(4,800,85 );
          5
          : Microphone.setRate(8);
          6 : //總的消耗帶寬:54 kbps

           



          當然,你可以通過管理控制臺(通過streams項中的I/O顯示)來查看你的應用程序所消耗的帶寬進行靈活的調試更換。

           

           

           

          記得上次有個朋友提到過這個問題,今天又有網友問起,所以就寫出來說明下。
          一般默認Microphone的聲音頻率是8kHz ,如果調節更好的聲音品質,就需要使用setRate方法,如:

           

          1 : myMic.setRate(userRate);
          2 : //其中userRate的可能值有: 5, 8, 11, 22 44

           

           

           

           

          FlashCom中的Camera, Microphone, LocalConnection, NetConnection,NetStreamSharedObject對象都提供了onStatus事件響應,onstatus事件的返回信息記錄在信息對象中。為了能夠響應這些事件,你必須創建一個方法來處理信息對象,而最重要的一點是你必須要清楚不同的信息對象返回值和返回類型。
          信息對象具有下面的屬性。
          code 記錄信息的返回內容
          level 信息等級狀態,有status 狀態 warning 警告 error 錯誤
          下面對FlashCom中的對象的onstatus返回值作個總結。

           

          Camera信息對象
          Camera.Muted (Status)
          用戶拒絕使用camera
          Camera.Unmuted (Status)
          用戶允許使用
          camera

          LocalConnection信息對象

          none (status)
          none (error)

          Microphone信息對象
          Microphone.Muted (Status)
          用戶拒絕使用microphone.
          Microphone.Unmuted (Status)
          用戶允許使用
          microphone.

          NetConnect信息對象

          NetConnection.Call.Failed (Error)
          NetConnection.call
          方法調用服務器端的方法或命令失敗
          NetConnection.Connect.AppShutdown (Error)
          服務器端應用程序已經關閉(由于資源耗用過大等原因)或者服務器已經關閉.
          NetConnection.Connect.Closed (Status)
          連接中斷

          NetConnection.Connect.Failed (Error)
          連接失敗
          NetConnection.Connect.InvalidApp (Error)
          指定的應用程序名稱沒有找到
          NetConnection.Connect.Rejected (Error)
          連接被拒絕
          NetConnection.Connect.Success (Status)
          連接成功

          NetStream 信息對象
          NetStream.Buffer.Empty (Status)
          數據緩沖區為空
          NetStream.Buffer.Full (Status)
          緩沖區已慢
          NetStream.Failed (Error)
          傳輸中有錯誤發生
          NetStream.Pause.Notify (Status)
          播放暫停
          NetStream.Play.Failed (Error)
          播放出錯
          NetStream.Play.PublishNotify (Status)
          發布開始,信息已經發送到所有訂閱者
          NetStream.Play.Reset (Status)
          播放列表重置
          NetStream.Play.Start (Status)
          播放開始
          NetStream.Play.Stop (Status)
          播放停止
          NetStream.Play.StreamNotFound (Error)
          播放的實時流或文件不存在
          NetStream.Play.UnpublishNotify (Status)
          發布停止,信息已經發送到所有訂閱者
          NetStream.Publish.BadName (Error)
          發布的數據流已經被發布
          NetStream.Publish.Idle (Status)
          發布者閑置過長
          NetStream.Publish.Start (Status)
          發布開始
          NetStream.Record.Failed (Error)
          錄制文件出錯
          NetStream.Record.NoAccess (Error)
          沒有足夠的文件訪問權限
          NetStream.Record.Start (Status)
          文件錄制開始
          NetStream.Record.Stop (Status)
          錄制暫停
          NetStream.Seek.Failed (Error)
          數據流定位出錯
          NetStream.Seek.Notify (Status)
          數據搜索定位成功
          NetStream.Unpause.Notify (Status)
          恢復播放
          NetStream.Unpublish.Success (Status)
          停止發布

          ShareObject信息對象
          SharedObject.BadPersistence (Error)
          SharedObject.getRemote
          方法傳遞的參數不匹配
          SharedObject.Flush.Failed Error
          寫入失敗
          SharedObject.Flush.Success (Status)
          寫入成功
          SharedObject.UriMismatch (Error)
          SharedObject.connect
          url參數和SharedObject.getRemote方法不一致

           


          注意:對于NetStreamNetConnect和遠程共享對象而言,在聯機情況下onStatus有更多的返回值,這些返回值將會在服務器端信息對象中介紹,其它對象無須聯機也可以響應到返回值。

          針對以上不同的對象可以指定各自的onstatus方法,Macromedia Flash中提供了一個超級函數叫做System.onStatus ,如果某個對象的onstatus響應的level屬性是error,并且沒有指定響應操作的時候,Flash會觸發System.onStatus事件。
          下面的例子演示了如何創建通用的或者特殊的方法來處理信息對象:

           

          01 : //創建通用方法
          02 : System.onStatus = function (genericError)
          03
          : {
          04 : // 在這里寫上詳細的處理代碼

          05 : trace( 'An error has occurred. Please try again.' );
          06
          : };
          07 : // 創建NetConnection對象的onstatus響應方法

          08 : // 如果連接返回的值在響應事件中沒有定義,并且是error等級的話
          09 : // System.onStatus 事件會被響應
          10 : nConn.onStatus = function (infoObject)
          11
          : {
          12 : if (infoObject.code == 'NetConnection.Connect.Success'
          )
          13
          : {
          14 : trace( 'Successful connection.'
          );
          15
          : }
          16 : if (infoObject.code == 'NetConnection.Connect.Failed'
          )
          17
          : {
          18 : trace( 'Connection failed.'
          );
          19
          : }
          20
          : };
          21 : // Attempt to open connection

          22 : nConn = new NetConnection();
          23 : nConn.connect( 'rtmp://myServer.myDomain.com/myRTMPapp' );

           



          評論(2) | 引用(0) | 閱讀1019

           

          評論

           

          目前已發表的評論有:

           

          1.                     Liu21st 200472718:21星期二 評論

           

          請嘗試用
          newClient.call("updateRoom",null,roomArray);

           

          2.                     腰馬合一 200472716:46星期二 評論

           

          感謝分享,謝謝了。
          有一個問題,希望能幫忙看一下。是textChatroom的問題,
          目的是可以讓新用戶登陸時看到已經有的房間:

          client-side:
          /////////////////////////////////////
          nc = new NetConnection();
          //
          userName和新開房間的名稱傳給server
          nc.connect("rtmp://ip/myChatTest1/"+_root.newRoom, _root.userName, _root.newRoom);
           //
          共享對象
          users_so = SharedObject.getRemote("users_so", _root.nc.uri, false);
          users_so.connect(nc);
          /////
          設置callBack函數更新 roomList////////////////
          nc.updateRoom = function(arr) {
          trace(arr);
          for (var i = 0; i<arr.length; i++) {
          _root.roomList.addItem(arr[i]);
          }
          };
          ////////////////////////////////////


          server-side
          ///////////////////////////////////
          application.onAppStart = function(){
          application.users_so = SharedObject.get("users_so", false);
          roomArray=new Array();
                  }
          application.onConnect = function(newClient, name,room){

          application.acceptConnection(newClient);
          roomArray.push(room)
          newClient.call("updateRoom",roomArray)

          //////////////////////////////


          在客戶端trace一下 updateRoom ,發現他執行了,但找不到形參arr.
          請幫忙看一下,先謝謝了。



           

           

           

           

          通過將流、多路音頻、視頻和實時數據添加到您的網站和 Rich Internet Applications 中,實現通信和應用的完美結合。Macromedia Flash Communication Server MX 專為流媒體、豐富媒體消息接發和實時協作度身打造,為開發創新的通信功能和將之部署到最廣泛的用戶提供了一個簡單、強大、開放的環境。

          想想在去年的非典時期,遠程辦公、遠程教學已經成了我們的必需,與視頻相關的IT產品也就成了人們關注的焦點,視頻會議成了這一特殊時期頻率最高的交流方式之一。如何快速建立一個網上視頻通信解決方案,來滿足各行各業,甚至個人用戶的需求呢?選擇開發工具最重要。理想的網上視頻通信解決方案所涵蓋的功能至少應該包括幾個方面:統一的通信和應用程序、強大的交互式功能、提供實時流媒體能力、實現多路及多用戶通信功能、提供實時協作、輕松地開發豐富通信、與應用服務器無縫集成,等等。引至[E維下載].日前,香港Macromedia公司利用其最新發布的Macromedia Flash Communication Server MX 1.6 ColdFusion MX軟件,建立起了一個串流視頻通信網站,可供香港醫護人員與家人及朋友召開在網上多人視像會議。與此同時,香港浸會大學利用最新版本的Flash Communication Server MX來支持整個網上教室的應用,并配合Macromedia MX系列產品,快速部署及開發線上的演示文檔系統,實現了實時網上e-Learning技術及解決方案的最佳效果。
          Macromedia Flash Communication Server MX
          界面
          Macromedia Flash Communication Server MX 1.6
          具有強大的通信能力,包括流媒體、豐富媒體消息接發和實時協作。其中,流媒體功能使開發人員能夠在一個可自定義的播放器環境中集成帶有動態圖形的流視頻和音頻,將互聯網上的多媒體演出提升到一個全新的境界;通過豐富媒體消息接發功能(如多路、多用戶視頻和音頻聊天),開發人員可以將實時人性化交互和即時消息接發功能添加到網站之中;實時協作功能(包括強大的共享對象技術)能讓多個用戶共享實時白板和應用上下文中的其他實時數據。

          Macromedia Flash Communication Server MX 1.6
          具有多項先進功能,在制作隨選隨播視頻影像、實時網上廣播、網上視頻通信以及視頻電郵、制作互動性高的影音豐富媒體應用程序等方面有顯著的提高。此外,它還集成了流媒體、實時協同工作、多種影音及文字信息技術,為客戶提供多項先進功能。其中,新增設的HTTP Tunneling以及SSL支持,讓服務器的內容資料可以實時穿越防火墻及代理服務器;有了MP3的支持,開發人員可以將高質量的音效以串流方式傳送給用戶。此新版本程序還改善了對音效的支持。同時,音效與視頻影像的同步性以及實時串流處理的延遲(latency)管理也得到大幅改善。

          新版軟件還具有虛擬網站服務器的操作及管理功能。這個服務器新設有對Red Hat Linux 7.3及以上版本的支持功能。此外,新版本亦大大簡化了臨時進行網站流量增添的操作。
          點這里下載-> Macromedia Flash Communication Server MX v1.6
          解壓密碼:http://www.9iv.com/

           

           

           

           

           

          Server 1935

           

          Admin Port 1111

           

           

           

           

          my_date = new Date();

          my_file ="mv"+my_date.getTime();

           

          dosave = function() {

             myurl="http://www.zjwto.com/rcmv/mv_save.asp?id="+my_file;

             trace(myurl);

             getURL(myurl,"_self","POST");

          }                                

          posted on 2006-05-30 15:39 blog搬家了--[www.ialway.com/blog] 閱讀(1923) 評論(0)  編輯  收藏 所屬分類: FMS
          主站蜘蛛池模板: 禹城市| 淄博市| 青海省| 徐水县| 桂东县| 资阳市| 惠来县| 巧家县| 垫江县| 确山县| 田林县| 光泽县| 浙江省| 保德县| 玛多县| 铜梁县| 肥乡县| 清原| 吉安县| 扬中市| 荥经县| 阿拉尔市| 息烽县| 桐乡市| 庆阳市| 慈溪市| 邹城市| 鹿泉市| 郓城县| 旺苍县| 英山县| 武隆县| 拉孜县| 长武县| 马关县| 潢川县| 汝城县| 尤溪县| 白沙| 北流市| 缙云县|