工作,生活,休閒,專業,分享,記錄

App Insights JS

Total Pageviews

April 3, 2017

RTMP直播服務(1/3) : 安裝建置 NGINX RTMP 直播服務



安裝環境:

l   OS: Ubuntu 14.04 LTS (on Azure VM [A2_v2] )
PS: 不要使用 16.04 LTS 版本,因為安裝 program ‘cc’ 安裝不上去(我尚不知道原因是什麼,需要查一下!)
l   NGINX: Nginx-1.11.12.tar.gz
l   NGINX RTMP Module: Nginx-rtmp-module.git

Azure VM:



VM Firewall setup 範例參考:


Reference:

Microsoft Azure Marketplace 也提供了一些 RTMP streaming package 可以選擇使用。





安裝 NGINX & nginx-rtmp module

本節介紹如何在 Ubuntu server 上面安裝 NGINX,從工具的安裝,軟體下載,Buildinstalltest,連同nginx-rtmp-module 一併安裝完成。

1.     確定安裝 NGINX 所需要的工具
$ sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev


2.     下載 NGINX 1.11.12 版本 source code
$ wget http://nginx.org/download/nginx-1.11.12.tar.gz


3.     下載 nginx-rtmp-module source code
$ wget https://github.com/arut/nginx-rtmp-module/archive/master.zip


4.     解壓縮兩個 source code
$ tar -zxvf nginx-1.11.12.tar.gz
$ unzip master.zip
(PS:如果你無法 unzip,請先安裝 $ sudo apt install zip )

5.     開始 build nginx
$ cd nginx-1.11.12
$ ./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
$ make
$ sudo make install

安裝完成,default 安裝目錄為  /usr/local/nginx

6.     啟動 NGINX
$ sudo /usr/local/nginx/sbin/nginx


測試連接:使用瀏覽器連接 http://<your server ip/host>/
正常出現如下畫面:


PS:請先開啟你伺服器的防火牆 inbound and outbound : Port 80/443 (for HTTP/HTTPS),如果防火牆沒有開通,可能會出現如下的畫面:



設定 NGINX for RTMP streaming

NGINX 安裝完成之後,我們必須要修改 conf 檔案,加入 rtmp 所需要的設定值,然後讓伺服器重新啟用新的設定,這樣就可以開始測試 rtmp push & pull(後面我們也會介紹如何使用工具來測試 rtmp push & pull)
使用 rtmp push & pull,我們就可以做直播串流,簡單的直播串流範例就完成了。

修改 CONF for RTMP push & pull


1.     首先在 /usr/local/nginx/conf/ 目錄中,修改 nginx.conf 檔案,在檔案的最後面加入下面這一段設定值:
rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application demo {
                        live on;
                        record off;
                }
        }
}


2.     重新載入 nginx.conf 設定檔,或是關掉重開 NGINX
l   重新載入 conf 檔案
$ sudo /usr/local/nginx/sbin/nginx –s reload

l   或是關掉重開 NGINX
$ sudo /usr/local/nginx/sbin/nginx -s stop
$ sudo /usr/local/nginx/sbin/nginx

PS:可參考 nginx 參數說明如下:
blake@BlakeUnbuntu:/usr/local/nginx/sbin$ ./nginx -?
nginx version: nginx/1.11.12
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/local/nginx/)
  -c filename   : set configuration file (default: conf/nginx.conf)
  -g directives : set global directives out of configuration file


3.     修改設定,重新執行完成,接下來就可以開始測試 RTMP 直播服務了。


測試 NGINX RTMP push & pull

使用 OBS 來做 RTMP 影片推流 (https://obsproject.com/download)


使用 VLC 來播放 RTMP 直播影片 (http://www.videolan.org/vlc/index.zh-TW.html)


PS:請先確定你的伺服器防火牆有開啟 inbound & outbound rtmp port : 1935

1.     設定直播影片推流 (OBS)
先開啟 OBS 軟體,設定你所要直播的來源(可自行參考 OBS 軟體使用方法或手冊,網路上很多資料可供參考!)


然後點選 [設置],進入設定畫面


點選 [串流],輸入你的 RTMP URL 以及流密碼,這兩個將會組合成日後所要觀看直播的 RTMP URL,然後點選 [確定]
播放的 RTMP URL 將會是:你剛剛設定的 URL + 流密碼
例如:我設定的流密碼是 live,那我在播放的時候,開啟的 RTMP URL 將會是 rtmp://<your server ip>/demo/live
demo 是我們剛剛在設定 nginx.conf 所設定的 Live Channel 名稱,live 是我輸入的流密碼

接下來就可以做 [開始串流],點選開始串流之後,如果正常的話,你的直播來源影片已經成功推流到 NGINX 上了。(可以在伺服器上檢查網路狀態查看)
$ sudo netstat –p | grep nginx


2.     使用 VLC 觀看 RTMP 直播影片
開啟 VLC 軟體,點選 Open Network 來開啟 RTMP URL


輸入你的直播 RTMP URL,然後點選 [Open]


然後在 VLC playlist 列表中,點選你要播放的連結,接著點選 play 按鈕,VLC 會開啟 player 開始播放你的直播串流影片。 


成功播放的畫面如下:


PS:實際測試結果,影片直播的 Latency 大約 8 秒。


另外使用 Azure VM (DS11 v2 : 2 Cores, 14 GB RAM, SSD) 測試,Latency 4~5 秒左右。(所以機器等級上有差別會造成 Latency 的差異。)



設定 NGINX for HLS streaming

接下來要設定 NGINX HLS streaming,這必須要修改 conf 的設定,把 HLS streaming 所需要的設定加入 nginx.conf 檔案,然後再重新啟用設定值。
NGINX HLS streaming 環境設定完成之後,我們會接著介紹如何把 NGINX HLS streaming 串接到 CDN (這裡選擇使用 Azure CDN 來做介紹),讓使用者可以直接從 CDN 連接 HLS 直播串流。







寬以待人,嚴以律己



人與人相處,尊重是最基本的禮儀,如果連最基本的禮儀都沒有,更不用說信任和合作。

尊重是發自內心的,絕不是虛假的偽裝。
信任是完全授與的,而不是拖泥又帶水。
合作則是一種契合,若合則來不合則散。

機緣巧遇很難說,世間的陰晴圓缺總是事事難料。如何在適與不適之間做好拿捏,這可是一門高深的學問!


天下沒有白吃的午餐,也沒有天上掉下來的禮物,若要人敬則要先自重,若要人重則請先自律之。



Give me the green light.



開心是一種無價的寶藏
夢想是一面魔法的鏡子
每當鏡子出現一幅一幅清晰的畫面
就像是挖到寶藏一樣開心
不受外界的干擾
自己作著自己的夢
漸漸的開心了起來



逃避你死我活的殘酷
遠離豪爭強奪的現實
躲進自己建造的避風港
也許曾經茫然無助
或許已經墮入谷底
相信只要還有一點點火苗
每個人都可以燃起自己擁有的那幅畫
快打開自己的那面鏡子開始描繪原始的初衷

拋開沈重築起的高牆,重新喚起失去的靈魂





自信,自由,與自我



自信與高傲就在一念之間,如何把持需要信念,適時的自信高傲是展現自我能量的手段,釋放深藏不漏的天使與光芒。

自由與叛逆僅有一線之隔,如何拿捏就看自制,偶而的自由叛逆是釋放內心枷鎖的瞬間,解脫心靈深處的野獸與魔鬼。

自我與狂妄存在一心之中,如何收放是有智慧,隨心的自我狂妄是突破框架高牆的念頭,放縱內心深處的幻想和靈魂。


自信可以創造自由,自由可以建立自我。

但是 .....

自信誠可貴,自我價更高;
若為生活顧,兩者皆可拋!


March 26, 2017

淺談 IoT --「物聯網」萬物聯網之後,然後呢?



熱門話題總是會一直圍繞在身邊,不論是電視新聞,網路資訊,技術論壇,還是閒談之間,左一句 IoT,右一句物聯網,好像你沒有講到物聯網你就落伍了。但是,你知道物聯網是什麼嗎?大家應該都覺得這問題很簡單,已經聽過不下數十次了,啊!不就是萬物都連網,連網之後資訊上雲端,再利用雲端的資訊來做各式各樣的『應用服務』,沒錯!請注意『應用服務』這四個字,今天我想要談的就是物聯網的『應用服務』,這應該會是物聯網會不會成功最重要的關鍵點。

萬物聯網,在我們將各式各樣的設備,器材,或裝置,都透過物聯網連接之後,再把這些設備上的資訊透過網路傳往雲端,這種技術在多年前應該就可以做得到了,只是沒有廠商想要做,第一,因為不知道要抓取設備上的什麼資訊,第二,取得資訊之後,要做什麼應用跟服務。那為什麼最近這幾年物聯網開始積極的發展了起來,這應該跟雲端服務的普及有很大的關係,隨著越來越多的資料中心被建立,穩定的雲端技術架構被發展,好用的應用服務被開發出來,不論是雲端運算,大數據,Machine Learning,Deep Learning,AI等,漸漸的催生物聯網的應用,讓物聯網也跟著持續發展的雲端服務慢慢的茁壯成長。


現在不論是醫療服務,車聯網,工業生產,智慧家庭等應用,再再都與物聯網有關係,但隨著資訊收集越來越多,資訊呈現爆炸性的成長,如果搜集過濾與萃取資訊成為重要的技術,各大雲端供應商也陸陸續續提供各式各樣資料收集和萃取的雲端服務,達成物聯網第一個成功要素:有用的資料。在這個第一要素達成之後,如何好好地運用這些資訊,成為第二個重要的課題,這也是最重要的課題:如何計算統計或迴歸分析,提供有用的分析結果或是預測資訊還是歷史經驗,讓使用者可以做參考甚至是決策,這就是物聯網提供給使用者的應用服務。

為什麼我要特別談這些物聯網最後提供的應用服務,也就是大家覺得應該有用的分析結果資訊,在使用者根據這些分析資訊做處理或決策時,應該要先了解這些物聯網分析資訊是如何來的,來自於哪些資料,用哪些計算方式得到的,如果不了解這些分析資訊的意義,那你所做的處理和決策很有可能錯誤,甚至得到反效果。例如:資料的來源是平均值還是中位數,分析統計的眾數或母體樣本是什麼,回歸分析用的是哪種方法,這些資料來源或是計算方式,都會影響最後的分析結果資訊,如果你想要把物聯網做有用的應用服務之前,請先好好的思考這些問題,免得未受其利先受其害。

March 19, 2017

雲端技術之我見 -- 趕上潮流吧!不然就等著被淘汰出局


資訊爆炸時代正式來臨,雲端大戰正如火如荼的展開,各位冰友啊,不論你是藍領白領或是高階低階,傳產或是高端科技,知識產業勞力產業還是服務業,全部都息息相關,所有人都脫離不了雲端,不要遲疑,趕快來了解雲端產業對你的影響,做好相對應的規劃和策略,以免被淹沒在這一波雲端資訊洪流之中。



這波資訊雲端洪流,小至公司資訊應用或個人資訊管理,中至金融資訊服務或工廠管理,大至智慧建築或智慧城市,無人車,機器人,甚至物聯網(萬物都連網上雲),你說這樣還會跟你無關嗎?你選擇積極的投入雲端戰局,還是靜觀其變順勢而為,或是遠離塵囂移居原始,不論你做什麼樣的選擇,還是必須回歸到最現實的環境,我們現在就來看看各種不同的人種在這個雲端洪流之中如何的生存下去。

Manager
首先我們就來看看公司的主管應該如何因應雲端環境的到來,雲端服務應用之多真的是讓人頭昏眼花,如何採用適合的解決方案,使用適當的雲端服務,各位主管們,我看你們該傷腦筋了。

Product manager
產品經理是最應該換腦袋的人,必須要完全換一顆全新的雲端思維腦袋,並且廣納各式各樣的雲端應用,我想產品經理在雲端洪流之中,應該是第一個腦袋會爆炸的人。

Project Manager
專案經理也會有相當的影響,在雲端環境的專案開發,不再適用傳統的專案管理方式,雲端的快速變化,搶時間上市的需求壓力,敏捷開發方法的普遍應用,DevOps 加快整個專案的開發流程,如何改變專案管理的方法來適應這環境,專案經理們需要好好的花時間來思考了。

Analyst/Designer
分析師,設計師,針對各式各樣的雲端基礎架構,平台應用,服務整合,系統開發設計的思考邏輯和技術變得更為複雜,你們可要花更多腦筋來好好規劃設計了。

Developer
不論是系統開發人員還是 Mobile APP 設計人員,必須要學習新的雲端服務技術架構,也必須要適應程式開發方法的改變,跟上雲端服務應用發展的第一步。

Engineer
系統工程師們,你們最危險,不要再沈浸在傳統的伺服器和網路的安裝/設定/管理上了,雲端的思維必須要跳脫你們傳統的觀念,雲端的技術架構更是和以前傳統機房的管理不一樣,你們再不跟上潮流,第一個被淘汰的就是你們。

Marketing
變化多端的行銷人員,雲端服務應用的普遍,改變了市場的結構,也改變了使用者的各項使用習慣,如何在這些商業結構改變之下,因應配合設計新的行銷方法,達成效益,這可不是一件簡單的事情。

Sales
銷售人員更要瞭解雲端服務的影響,了解所有的雲端服務比較,善用合適的雲端服務來讓銷售行為更為聰明和便利,透過雲端服務甚至還可以隔空服務客戶呢。

Operator
營運人員你們面對的不再是有標準 SOP 可以一步一步照著操作的工作環境,雲端服務的千變萬化,真的會讓你們一個頭兩個大,努力積極地學習,充實自己,讓自己永遠站在比客戶還要了解的位置,這將是你們面對的第一課題。



各位冰友啊!活在這個資訊爆炸雲端廣泛應用的世紀,連公園裡的阿公阿嬤聊天都會說道「這個照片我都放在雲端,選幾張喜歡的傳到雲端沖洗服務,明天我就可以在巷子口的 7-11 取相片給你們了」,還有夜市攤販或菜市場的老闆娘也會說要不要用手機來刷雲端付款,自己家裡的體重計,血壓計,資料也都全部上雲端,可以隨時查詢家人的健康,在這個到處充滿雲端的環境,我們真的要趕快積極的投入雲端產業,千萬不要再錯失這個龐大的雲端機會啊!



雲端產業之我見 -- 藐視技術可能讓你失去生意


決定跳離熟悉的傳統資訊產業,離開系統開發整合工作領域的這個舒適圈,一腳踩進完全無所知的雲端產業,從頭學起,重新從零開始,經過了一年時間的洗禮,沒有預期到雲端產業跟傳統資訊產業的差異如此之大,就在努力的大量吸收資訊知識,學習了解雲端技術的應用架構,熟悉探索雲端服務的產業模式等,跌跌撞撞懞懞懂懂的混了過來,雖然對這個龐大的雲端產業還沒有完全了解,但是也有了更深一層的認識。

雲端服務產業變化之快超乎我的想像,今天你可能還在研究某一個雲端技術應用,明天網路上就推出了一個方便好用的應用服務,推翻你之前所做的研究努力,雲端服務產業之大也讓人無法一手掌握,由淺到深的垂直縱向發展,由左至右的水平橫向擴充,讓很多有如雨後春筍般的新創公司投入,也讓很多老牌大樹般的廠商紛紛長出新芽推出服務。



現在就來說說這個雲端服務產業供應鏈:
1. 雲端基礎提供廠商(原料生產商)
這個很容易理解,就是在各地建立資料中心機房的廠商,提供各式各樣基礎的雲端架構服務,例如國際大廠 Amazon, Microsoft, Google 等,或是如電信廠商,固網業者提供的基礎雲端架構服務。

2. 雲端服務經銷商(中盤商)
主要為基礎雲端架構服務的經銷商,屬於左手進,右手出的中盤商,可能還會負責幫客戶做雲端的基礎架構規劃,或是做到幫忙搬遷轉移的作業。

3. 雲端服務加值供應商(加值應用商)
透過雲端架構服務,建立自己的加值應用服務,提供便利的網路應用服務給客戶使用,有的是協助客戶規劃建置,也有的是透過自家研發的加值應用服務提供客戶各式各樣所需要的應用。

4. 自有雲端應用服務廠商(專屬應用供應商)
這些廠商大多是從系統整合或資訊軟體開發商轉進雲端服務,這些廠商在既有的產品領域經營多年之下,轉進到雲端服務供應商,提供原有產品領域的雲端服務,大多是某些資訊產業領域下的佼佼者,例如:ERP,採購軟體,供應商軟體,會計軟體等。

5. 雲端服務使用終端廠商(終端使用廠商)
最終的使用者廠商,為了減少自有機房的成本及維護,透過雲端架構的規模,彈性調整公司所需要的基礎架構,甚至使用雲端應用服務來協助組織運作和公司營運等。

想要在這個雲端產業供應鏈中佔有一席之地,必須要先想好你的商業模式,因應這個變化快速又龐大的雲端產業,沒有想好你的商業模式,將會失去留在這個舞台的門票,同時也會被這個供應鏈掃地出門。
我認為這個雲端服務產業的商業模式一定要建立在相當的技術基礎之下,沒有相對應的技術根底,或是不求技術快速變化因應的廠商,一定是首先被淘汰出局的廠商。另外,雲端技術產業之大,必須要有所專注,投入所要專注的應用領域,建立技術基礎與服務,開發相關市場與應用,在轉而擴大相關的其他領域,做大市場,賺取收入。


先來談談我所看到的產業變化

  1. 原料生產商,也就是雲端基礎供應大廠,除了推出雲端基礎架構服務以外,越來越朝向推出雲端服務平台,甚至越來越多的雲端應用服務也在這些大廠的強力推動之中,使用者非常容易能夠取得和購買這些雲端服務,甚至這些雲端應用服務也已經可以滿足大多數的客戶使用需求,如何在這些雲端應用服務之外或之上提供更為加值的應用,這會是未來雲端經銷商和供應商應該要細細思考的地方。
  2. 雲端服務的購買和管理會越來越簡單方便,如何綁著客戶,讓客戶死忠的跟你購買雲端服務,這是一個非常重要的問題,否則在這雲端服務的轉換廠商成本幾乎為零的狀況之下,客戶沒有任何理由一直跟著你買,一有風吹草動,馬上就跟你說掰掰。
  3. 只想快速做生意不想扎根:沒有技術扎根,只做經銷生意,左手進右手出,利用價格殺價取勝的廠商更不用說,終究會被另一家肯出更低價的廠商搶走生意,最終會在沒有競爭力之下被淘汰出局。



再來談談商業模式的思維

  1. 先思考有哪些是雲端供應大廠不想涉入或是不想做的區塊,在這樣的服務區塊中,競爭壓力比較小,也比較容易成長茁壯,屬於尋找藍海的思維。(但是尋找藍海生意非常的不容易)
  2. 隨波逐流的思維:跟著雲端變化的腳步,快速建立雲端服務應用,透過健全的市場開發方法,規劃建置雲端應用服務產品(這需要有堅強的技術團隊,因應雲端技術的變化,快速的建立雲端應用服務,目前還很少看到這種公司)
  3. 在原有的雲端基礎供應服務上,建立自有品牌的加值服務:透過接觸客戶雲端使用上所需要的加值服務,挑選建立這些加值服務,可以用來增加客戶的黏著力和忠誠度,讓客戶不會隨便想要換服務供應商。(目前看到很多需求是雲端服務的管理機制,但是管理機制的功能,我覺得供應大廠會慢慢的漸漸補足)
  4. 雲端管理和維運的機制:越來越多使用者廠商使用雲端架構,平台,和服務,所需要的雲端人才並沒有跟上,而且一位難求,但是針對公司雲端服務的使用,反而更可以將這些管理和維運的機制直接委外給相關供應商,供應商應該可以建立一套標準作業流程,來提供給使用者更為便利且安全的雲端使用環境。


我想,各式各樣的商業模式千變萬化,以上只是我個人在這短短的經驗之中所想到的幾個思維,各公司有各公司自己適合的商業模式,只是不應該再只是思考舊有的商業模式,針對雲端產業的特性,應該要訂定一套自有的商業模式,否則在這個龐大又快速變化的產業中,很容易迷失方向,或甚至茫茫然地無所作為。


脫離不了的魔掌 -- 都市叢林魔獸


多麼想著要脫離都市叢林的束縛,擺脫世俗吵雜與喧嘩,回歸到自然沈靜的自我,找尋內心深處的驛動;但現實與人願違,總是讓人從夢境中幻滅驚醒,最終還是要回到這魔獸的掌控之下。

PS:畫圖實在是需要天份



在這都市叢林,每個人帶著奴役枷鎖工作著
在這都市叢林,每個人疲憊地拖著身子穿梭在叢林中
在這都市叢林,每個人獨善其身努力地踩在別人身上往上爬
在這都市叢林,每個人無所不盡其極的爭功奪利誓死不休

PS:自己都覺得:這魔獸也太不威了


受不了這都市叢林魔獸的魔爪,努力的想要逃出這個世界,從一開始的躍躍欲試雄心萬志,慢慢的漸漸地還是要被都市叢林同化,等到自己心靈想要覺醒的時候,已經來不及了,終究還是成為了這魔獸的爪牙。



在這都市叢林魔獸下,我被鞭策扛起巨石奮力前進奔跑
在這都市叢林魔獸下,我已經習慣毫無目的被奴役的生活
在這都市叢林魔獸下,我漸漸學習這黑暗的生活面,努力成為魔獸的爪牙
在這都市叢林魔獸下,我開始帶著一張偽善的面具到處招搖撞騙
在這都市叢林魔獸下,我已經學會掩飾虛假,每天穿梭在這個黑暗的都市叢林中



最後,我身為這都市叢林魔獸的爪牙,也開始努力的荼毒新鮮學子,尋找訓練魔獸的下一代後浪爪牙,等著這些後浪努力地來淹沒我,期待這一刻的來臨,應該也就是我可以脫離這魔掌的時刻。


歸去來兮  田園將蕪
是多少年來的徘徊  究竟蒼白了多少年
是多少年來的等待  究竟顫抖了多少年


March 18, 2017

被時間遺忘的小村莊,最東咖啡館(馬崗街27號咖啡館)


離開繁華擾人的都市鬧區,漫無目的的往海邊開去,不知不覺來到一個被時間遺忘的小村莊,換上我的小折,隨心所欲地在這個小漁村裡面閒晃,忘卻所有凡俗工作上的煩惱雜事,放空一切,讓自己身心靈能夠得到短暫的休息放鬆時刻。


村落裡的老人,與世界無爭,沒有外界的煩擾,就是心中無所求的望著海邊,沒有煩惱的曬著溫暖的陽光。

舊有的建築自有一番風味。




騎車閒晃這個小漁村,看著海邊悠閒垂釣的人們,隨性漫步在在這個乾淨漂亮的潮間帶,海水清澈可見底,海邊各式各樣不怕生的小動物,悠閒的在這個不受世俗打擾的天地遊戲人間。









在這個被遺忘的小漁村,隱藏著一間台灣最東咖啡館,由一對想要離開擾人都市生活的夫婦經營著,他們說著在環島途中發現這個不受外界打擾的小村落,如此美好的環境,能夠在此悠閒生活,該是人生最大的享受福報了。






點上一杯愛爾蘭咖啡,威士忌加上咖啡,口味蠻特別的,有股濃濃的香味漫佈在口中。
PS: 像我們這種凡夫俗子,就算來到這個與世無爭的地方,也要拿出電腦,點杯咖啡,放一本書,當作自己是一個積極上進的高級份子,殊不知在這地方,反倒成了庸人自擾的現代盲人。


隨性慢騎,爬上陡峭的台灣最東燈塔,享受漂亮美景,滿身大汗也值得了。

台灣最東燈塔,歷史悠久,屹立不搖。