在線錄像,原來這麼簡單

很忙,所以研究的時間就少。不過利用red5錄製視頻非常簡單是真的,可能所有的類fms都一樣吧,視頻錄製視作基本功能之一,自然要使用最簡單的方法來實現。

以前做過一個攝像頭牌照的程序,這裏就用上了。把所有的類複製過來,然後把那個main.as改名爲camera_window.as,再把裏面的構造函數和類聲明一修改,直接new一個,編譯通過,操作也是對的。面向對象的複用性真是好出多多~~~

然後修改data_model,增加一個NetStream對象來進行視頻的捕捉和發送,增加兩個方法,分別是“開始廣播(start_broadcast)”和“結束廣播(stop_broadcast)”。對於客戶端而言,只要發佈(publish)視頻就好,至於是錄像啊,還是直播啊,都由服務器端來操作就行,或者由其它客戶端來點播。

點擊開始廣播後,會把camera_window的攝像頭對象傳給data_model,然後利用_ns.attachCamera()方法來獲取視頻流,再通過_ns.publish("meat_video","record");的方式發送給服務器。publish方法的第一個參數是視頻的名稱,這個名稱也是服務器端甄別不同視頻的方法;第二個參數則是要求服務器對視頻做不同的處理,具體幫助手冊上都有,這裏就不再贅述。點擊停止廣播後,則調用_ns.attachCamera(null)方法,停止繼續發佈視頻。

測試,打開攝像頭,幹會兒別的。關掉程序,找到\red5\webapps\meat_app,發現裏面多了一個“stream”文件夾,打開一開,meat_video.flv赫然在目,哈哈,錄製視頻,原來這麼簡單。

當然我是不會僅僅滿足於錄個視頻的,於是跑去把ApplicationAdapter裏面相關的幾個事件和org.red5.server.api.stream底下幾個文檔翻譯了一下,明天就開始用事件來驅動客戶端點播等等。唔唔,如果有事件的話……

PS:其實我也像帖源碼上來的,那樣的話可以給別人提供更大的幫助。可惜這個博客貼起源碼來實在太醜,於是只好作罷。附件也是,不讓上傳附件,不知道什麼時候能有修改。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章