今年本組承接台南道路管理乙案,其中有一項需求是希望以手機即時傳遞位置(GPS)及影音(Media),然後客戶可以由個人電腦網頁上查詢即時的現場實況轉播(SNG),以輔助道路管理上所需的即時問題協調處理。
由於此案的成功使用及其產生的酷炫效果,自然而然讓人想到這項技術能否擴大發揮運用於各企業經營管理上?先看兩則與我們類似運用的新聞,一則是「工研院口袋 SNG」, 其運用於工研院運動會以手機即時轉撥造成轟動。另一則是央廣獲得廣撥協會大獎「手機行使SNG車」。這兩則運用都與我們開發的「道路巡查即時SNG」類似,由此對這項技術的擴大運用是深具信心。
此項技術之所以有用,最重要一點在於智慧型手機普及,幾乎可以人手一台無需花費建置,而且必定隨身攜帶,這點很重要,再加上手機發展功能已近似一台小型電腦,可以撰寫添加互動程式,把這些加在一起本就能產生極大效益,整個構想如下圖所示,將原本SNG現場需要的攝影機及電腦以一台手機替代。
構想似可行,現在問題是在於手機功能是否可以滿足隨身SNG,隨撥隨查的理想,關於這一點,我們看看一般智慧手機現有能耐,如取得GPS 座標套到地圖上,這點OK,如錄影存檔這點也是OK,剩下通訊傳輸,這點更無問題,所以技術上是可行無庸置疑,再來就只是思考其運用了。
關於如何擴大運用於企業經營管理上,除上面所述運用範例外,個人提出數項構想,來拋磚引玉,加大其運用。
一、 替代車機來道路調查:這項先不談其用途,只要知道車機安裝加機子就要幾萬元,有用毫無疑問。何況車機安裝維護需專業人員才可以,整套系統搞下來所費不貲,現代手機的技術其實可以取代。
二、 人員管理:大家在哪裡,不只知道在哪裡,更可以知道在做什麼? 。這方面可以達到大量找到人的時間花費,讓每個人無需在座位上也可以處理事務,是個人認為對企業最有幫助之處。
三、 車輛管理:如垃圾車移動,只要駕駛有手機就可回報,關於這項功能也是拋磚引玉,因為車輛監控運用既廣又深,過去礙於設備及維護無法普及,現在也是幾乎以手機可替代車輛上各種監控設備。
四、 故障報修:以電腦為例,過去看不到畫面,甚至要工程師到場,花費成本大,大部份狀況只要可以遠地觀看就可解決。此大量節省人員通訊溝通時間,而且可以留存維修成果,供後續查核,避免不必要爭議,是對設備管理上最佳工具。
五、 會議系統:這點在過去都是要用監視器配合軟體,現在差別只是解析度,甚至已經是手機解析度高。所以過去花費極大的會議系統都可因此節省,而且如平板電腦也是會議必需,多此功能附加便可以創造類似3D全方位效果。
以上略述此項技術的運用,可以看出來在管理用途上確實是一項利器。需求有了再來就是實踐,以下即針對此項技術開發加以剖析,供有需要的讀者參考引用。
技術上主要是在android 手機上實現 media 視頻收集及GPS手機地理位置,並在遠端電腦上配合地圖呈現。一開始想到的是利用android 的camera圖像預錄PreviewCallback class的回呼函式onPreviewFrame來獲得camera,然後將收集的原始圖像數據之後,壓成jpeg格式傳到pc端。pc端對接收到的jpeg圖像序列進行實時解壓和保存或顯示,就可以達到了預想的效果。
雖然上述變成一張張圖片的處理方式稍微笨拙,大致可以運作。不過不可接受的是jpeg只是frame內壓缩,320x280的圖片,FPS大概是10上下,網路流量就需要100kb/s以上。這樣幾乎是無法實際應用的。 因此必需考慮直接傳視訊Stream流(MPEG4或者H.264格式)。改Stream下對如何實時收集視訊流是一個大問題,畢竟在video方面,android並没有提供一個class 類似OnPreviewFrame的回呼函式。 對於此問題想到用opencore或者更新一點的stagefright工具,可是看了其sdk的框架後,馬上洩氣了,因為太龐大了。另一個很好的解决方案,就是利用Android 內建的MediaRecorder輸出路徑(其實叫file descriptor)除了是本地文件路徑之外,還可以綁定socket端口。也就是說,通過一個socket端口,就可以實時獲得MediaRecorder的視頻流數據。通過socket接收的視频流與直接寫在本地文件的視频流數據有點不一樣,因為是通過socket傳輸,就無法對視频文件的回寫,通常MediaRecorder结束錄影的時候都會對視频文件進行回寫處理,這樣才可以被播放器播放。所以通過socket接受到的數據,保存下來是無法播放的。16進制方式查看了一下其输出文件,發现其前32byte都是00,緊接着就是mdat。問题就出在這了:缺少了一個ftyp box 的描述(28 bytes)以及mdat的長度描述(4 bytes)自行回寫之後就能顺利播放了。
完成後的程式,手機部分如下圖,點選程式後輸入自身ID(名字)後按開始鈕即可開始傳送影音到主機。
主機接收並存檔,此時網路上任意使用者即可透過網頁即時觀看該手機的即時影音,如下圖,點選[SNG]功能鈕後會於地圖上標出目前在線上的手機,點選該手機即可觀看其即時內容。
此文簡短的說明如何將手機變成SNG轉播工具,從構想到實現,並儘可能以最簡單方式描述其技術上的難處,因技術的東西很難三言兩語講解清楚,只要能讓讀者了解此項技術是可行的,而能因此文起拋磚引玉的作用,進而擴大其運用,筆者便備感榮幸。