直播的一些技術

疫情開始,直播一直圍繞的工作與生活,開始慢慢地了解與深入。

一說起直播,不少人都會與ZOOM 聯繫起來,ZOOM的確是十分成功的直播產品,以及他的技術可以說是直播上比較低延遲的,無論影像和聲效都十分低,但是有時直播起來,zoom的畫面總不是很清晰,鋸齒很嚴重,也許就是低延遲直播的犧牲。

不是所有直播都需要『實時』,例如一些發佈,可以事先錄製,定時『直播』播放,這樣可以確保萬無一失!試了幾個平台,YouTube Live算是十分成熟的,還有清晰的數據分析。延遲就大約10秒左右,但是畫面清晰,配合OBS簡直完美。

除了這些大路的直播軟件和平台,直播還有哪些?還記得RTMP?小時候在課室直播時,需要開個VLC來做直播,目前還是在使用,不過現在多了幾個protocol,比較流行的有ffmpeg,SRT,NDK,SLDP,WebRTC。

看到這些技術,最近比較火的算是WebRTC,因為他支持跨平台,一般應用在手機通話技術上,一個瀏覽器就可以播放,而且是一種低延遲和低流量性的直播技術。

這裡找了一些自己做直播服務器的技術文:

SRS, 開源直播

https://ossrs.net/releases/

 

srt

https://blog.wmspanel.com/2020/07/srt-obs-nimble-larix-broadcaster.html

Nimble Streamer

SRT VS WebRTC

成功申請{中學IT創新實驗室}

疫情之下要教授學生學校真是一個高難度的操作,不知道畫面上的學生看的是你的屏幕還是其他的屏幕,這日子還是要繼續,建立一個好的學習環境給學生回校後有一個新的體驗是目標。

香港發展STEM還是看不到一個好的統籌,雖然已經測試了幾年,始終成本局限,也不能太大嘗試。這次申請OGCIO的撥款,是想在校內進一步的改善學校STEM教學,如何申請請看上一個文中學IT創新實驗室

這次挑戰選擇Apple swift coding 來申請OGCIO,有幾個因素。

首先不用解釋的是Apple 手機和平板在世界上的統領地位,估計大部分人都有蘋果產品,學校也是使用iPad。假如學生能開發Apple APP,那測試的機器已經有了,就是自己的手機和iPad,也可以自己分享給自己朋友。

其次是Apple 的教科書太多了,出了外面的書,Apple  自己也提供了Playground 和電子書給學生自己學習,當然也有教師版,因此學校也不用再去買教科書,浪費不必要的金錢。最重要的一點還是學生自己能找到和自主學習,這點還是比較重要,特別室疫情之下,學生有半天在家,若能引導學生興趣加入學習stem 方面知識,獲益的是學生。

最後是Apple 的產品,在coding 行業中,相信好多人都會使用Apple 產品進行coding,這也是想給學生去體驗,若有機會都想邀請開發者同學生分享一下開發APP的經歷。

一個穩定的系統,能減少學生碰壁的機會,減少技術上的支援,多些時間於學習、設計、思考及嘗試,這是一個理念。今次設計是圍繞一個APP開發的過程來進行STEM教育。在過往的STEM 課程中發現學生有不同能力,有些人設計好,有些有創意,有些技術高,好多課程都是單獨展現,開發APP可以把這些才能整合,因為一個APP需要創意,需要UI設計,需要program,最後有個平台去展示發佈。在疫情下,這種開發型模式可以在家中完成,網絡會議,共同開發。相對於玩機器人,這種學習模式更加具有彈性。學校也不用花費太多空間來收藏。

學生有了開發APP的基礎,可以用於其他任意事物,例如機器人、智能家居等,program 已經是基礎學科,雖然香港依然未成為必修課,但勢在必行,一切從coding 開始。

課程設計,要考慮學生升級:

首年

中一、中二: iPad swift playground

中三、中四:MacBook swift coding

第二年:

中一:iPad Swift playground

中二、中三: macbook swift coding

中四、中五:xcode App

第三年:

中一:iPad Swift playground

中二、中三: macbook swift coding

中四、中五:xcode App

中六:APP發佈分享

中學IT創新實驗室 100萬點申請?

所謂創新實驗室,其實與實驗室一點關係也沒有,因為只有一個名,這個就是計劃最奇怪及有趣的地方。也許寫計劃的人想引起更多人注意。

這個計劃由開始到開始申請,應該都近2年,本人出席了第一次發佈會,再出席第二次簡介會,雖然OGCIO帶了不少企業一起參與,但計劃最後還是令人摸不著頭腦。

於第一次簡介會上,講者說學校的設施已經好舊,都需要是時候更換。

第三次網上簡介會,講者說所有申請計劃都必須與學生有關,而且不是『常規課程』!

也就是說,計劃真的是引起大家關注,但結果其實是一盤分豬肉的產品:課外活動產品,其實簡單理解,這個計劃叫:STEM課外活動津貼,所有活動都要和STEM 有關,而且IT 元素必須包括。

奇怪的是,撥款是預計了每間合資格的學校都能申請100萬,但是又奇怪的是『中學IT創新實驗室』需要像QE fund 那樣寫申請及做報告,而且撥款程序比起QE FUND一樣複雜(QE FUND可以申請200萬哦)。對於第一次簡介會上說的簡易程序,看來只是說笑。不過也許當中涉及不少行政措施是平民無法理解,最重要還是有錢能花在教育上,這還是不錯的。

看會計劃詳情,要如何申請呢?

申請指引在這裡

計劃最重要是什麼?就是評審原則!第11頁開始

首先是範圍(第36點),整個計劃的範圍:人工智能、大數據、區塊鏈、雲端運算、編程/演算法  /計算思維、網絡安全、三維模型、數碼遊戲設計與開發、無 人機編程、物聯網、流動應用程式開發、機械人編程、虛擬實 境/擴增實境/混合實境、網站開發

請計劃內容在上面範圍內,可以多個,但不能沒有,記得要低於100萬

計劃必須包含以下部分

A。學校介紹:看校刊

B。計劃課程設計:實施的時間,課程內容,推行計劃

C。預算詳情:所有設備開支等資料,要同網頁版本一致

D。項目成果:如何分享成果,這個在表格也要填寫

計劃低過10萬屬快批,超過10萬屬慢批,若想於財政年度內3月31日(學校的財政年度不是到8月31日嗎?),就要2月1日前申請

最後還是會計問題,應該就是和QE FUND的撥款,要開獨立戶口,要記賬,要核數,要年報,真是辛苦老師

各位同工加油哦!

office 365 command shell 大量修改用戶資料

網課開始,學校就開始需要用365平台進行學習,一年過去了,新的一年又來了,office 365並不像google 那般簡單上載一個csv 上去就幫你修改了資料,而是要你用自己的ad同步,或者就是你用command shell 來大量修改,對學校來說還真是一個難度,因為很多同工詢問如何大量修改teams 用戶名稱,在這裡寫上筆記,希望對office 365大量修改用戶資料提供參考資料。

首先安裝必要的插件支援
下面網頁介紹
https://docs.microsoft.com/en-us/previous-versions/azure/jj151815(v=azure.100)?redirectedfrom=MSDN

需要安裝

Microsoft Online Services Sign-In Assistant for IT Professionals RTW

https://go.microsoft.com/fwlink/?linkid=286152

Azure Active Directory Module for Windows PowerShell (64-bit version) https://go.microsoft.com/fwlink/p/?linkid=236297

安裝完後,在windows 10 尋找windows powershell ISE(這個方便選擇文件), 右鍵選擇系統管理員執行

powershell 有特定的政策,Restricted, AllSigned, RemoteSigned, and Unrestricted,預設是Restricted
假如你第一次進入,需要把政策修改一下為unrestricted
輸入

Set-ExecutionPolicy Unrestricted

按Y 確認

接著開始連接到office 365

輸入

Connect-MsolService

按enter 後悔跳出跟Office 365 一樣的登入窗口,使用office 365 系統管理員登入
成功後,可以測試一下是否連接成功了,輸入一個command 測試

Get-MsolUser -EnabledFilter EnabledOnly -MaxResults 20

上面是列出用戶名單最多 20 個啟動用戶
假如能列出名單,說明你已經成功連接,接著如何做,首先去
https://docs.microsoft.com/en-us/powershell/module/msonline/?view=azureadps-1.0#msonline

這個是官方的MsolUser 說明,所有指令都在這裡說明,下面介紹常用的幾個指令
增添新用戶 New-MsolUser

https://docs.microsoft.com/en-us/powershell/module/msonline/new-msoluser?view=azureadps-1.0

根據官方說明,很簡單

New-MsolUser -UserPrincipalName “davidchew@contoso.com” -DisplayName “David Chew” -FirstName “David” -LastName “Chew”

-UserPrincipalName 這個是經常會用的,是用戶唯一識別,除了用戶id外,就是用戶的登入郵箱
你可以看到,指令格式是用 “-” 加“Parameters” 在加你要輸入的值,單一值需要使用引號,需要輸入什麼內容,可以查看說明加上去
例如說明是否強制要求用戶修改密碼[-ForceChangePassword <Boolean>], 這個boolean 就是你要輸入true 或者false

New-MsolUser -UserPrincipalName “davidchew@contoso.com” -DisplayName “David Chew” -FirstName “David” -LastName “Chew” -Password “Bac12345” -ForceChangePassword $False

上面就是為用戶設置了預設密碼,而且無需用戶登入時修改密碼

假如你添加後發現有錯了,那麼你可以使用Set-MsolUser 來修改
Set-MsolUser -UserPrincipalName “davidchew@contoso.com” -ForceChangePassword $True

Set-MsolUser 必須要找到用戶,因此第一個必須先指定-UserPrincipalName ,上面指引說是用戶登入時必須修改一次密碼

以上是單一修改用戶例子,如何使用csv 檔案來一次添加或者修改更多用戶呢?方法就是使用Import-CSV和ForEach-Object 來執行匯入循環查詢修改,下面是一個例子
首先需要準備一個csv 檔案,你可以上office 365 admin 匯入用戶那下載,自己建立一個也可以有一些特定的欄目是必須的,例如 UserPrincipalName,
我們在csv檔案第一行打上 UserPrincipalName,FirstName,LastName,DisplayName,NewPassword
然後填上需要的資料,可以先測試2-3 個資料,然後放到電腦裡面,例如C:\根目錄叫365user.csv,假如你用excel建立這個檔案,記得匯出成為csv。
然後我們就開始執行

Import-CSV –Path C:\365user.csv | ForEach-Object { New-MsolUser -UserPrincipalName $_.UserPrincipalName -FirstName $_.FirstName -LastName $_.LastName -DisplayName $_.DisplayName –Password $_.NewPassword -ForceChangePassword $False -UsageLocation “HK”}

上面指令我加上不要求修改密碼,還有加入了-UsageLocation “HK” 用戶區域,加入這個主要是添加授權的時候,這個是必須的而且這個說明是{two-letter country code}

假如成功匯入後,發現要修改用戶姓名,同樣道理,我們把New-MsolUser 改為Set-MsolUser

Import-CSV –Path C:\365user.csv | ForEach-Object { Set-MsolUser -UserPrincipalName $_.UserPrincipalName -FirstName $_.FirstName -LastName $_.LastName -DisplayName $_.DisplayName}

最後介紹如何添加用戶授權,首先我們先瀏覽一下自己有什麼授權,可以使用指令瀏覽
Get-MsolSubscription
這裡會列出你的授權名稱,假如你不是很了解用戶給了那些授權,你可以先去office 365 給特定用戶賦予授權,然後使用指令查看他拿了那個授權,例如

Get-MsolUser -UserPrincipalName “davidchew@contoso.com” | select -ExpandProperty licenses

他就會列出用戶已經獲得的授權,然後就直接給,因為授權一般是單一,所以可以直接使用舊的csv 檔案用戶帳號直接賦予授權,例如

Import-CSV –Path C:\365user.csv | ForEach-Object { Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -AddLicenses “ABCDEFG:STANDARDWOFFPACK_STUDENT” }

這裡ABCDEFG是一個例子,每個機構不一樣,後面的授權名稱也根據自己買的不一樣,STANDARDWOFFPACK_STUDENT 是學生A1 授權

改到這裡,基本上用戶的操作到這裡,假如還需要其他修改,建議看看說明書,裡面有例子,也建議看幾個測試用戶來測試修改,成功了才套用到所有用戶上去。

停課不停學 zoom k12免費

雖然教育局預計4月尾會復課,但口罩供應量仍然未回復穩定,個人對於復課十分憂慮。大部分學校都已經使用網上直播進行網課,例如teams,zoom 等。這些平台都有自己好處,譬如teams 整合了作業平台,也有onenote 筆記監察學生是否認真聽課,但是卻缺少系統音量,網課直播有時不穩定的情況。zoom 就一個直播平台,老師很喜歡那個屏幕手寫功能,可以像平時上課那樣畫黑板,直播穩定性也高,雖然缺少作業等資源,但是穩定的直播對網課很重要,雖然zoom 是免費的,但卻有40分鐘的限制,不過現在面對全球疫情,zoom 宣佈對k12 免費解除40分鐘的限制,這對教育界是一件好事,也很有企業責任,相對於一些課程商還要繼續收費,外國的企業真的很有責任感,例如nearpod 也推出不少教材包,如果你想用zoom 解除40分鐘的限制,可以用下面連結

zoom k-12 free

北京之旅看強國STEM教學

幾年沒有坐飛機,今年聖誕終於有機會同學生們一起前往祖國考察最強中學的STEM是如果進行的。出發前對祖國的STEM還抱有很多疑問,因為新聞總充滿著為高考而拼命,如果發展學生創意思維及科技發展比較少見到。

考察對象:中國北京最強中學:人大附中,學生人數7千多,中一之高三

考察方法:一起與學生上課

課堂:機械人課程,VR課程,程式課程,汽車駕駛課程,一般課程

背景資料:人大附中,內地稱為內地高考尖子製造工廠,為全國一等中學。考察的創客課程為學校高二必修課程,但非國家規定課程,學生必須選修一個課程,每星期有一節課,學生好像香港選修科目那樣各自到選擇科目課室上課。這裡的中英數,每星期只有4節課。

機械人課程

他們選用的是LEGO 的mindstorms,老師於開始幾節課講解方法後,到達我們去上課的日子,上課前5分鐘老師只會講此課的目標是製作一個相撲手機械人,如何創作就交給學生,時間25分鐘,剩餘10分鐘作為測試。就這樣40分鐘完成一節課。

課程過程,學生好自覺分工,應該是之前的課堂已經分好,而且有分工,有一個去設計program,3個人組裝。 課室有4組人,課堂最後有2組可以基本啟動,但未有時間debug,但已經有初型。

VR課程

使用HTC VR,主要講解VR應用以及創作,例如汽車上使用,飛機上使用,商品上使用。觀課堂因為是理論堂沒有實踐。

程式課程

使用arduino 學習程式課程,我們學校的學生都試著一起上機學習,我組的學生完全沒有學過program,簡單講解個界面以及如何使用,再跟著說明書打code,10分鐘內已經完成一個風車。當然附中的學生是在製作貪食蛇遊戲機。對比起對住電腦學program,arduino 的好處就是有一件物品給你反應,學生成就感比較大。組員雖然是文科生,但對此arduino 都好有興趣,改變了他們對program 的影響。

汽車課程

與香港駕駛學院的模擬汽車課程一樣,可以一人一機,學習使用棍波操作汽車,學生完成課程後基本可以知道如何操作一架棍波汽車。老師說到了暑假就會集體報名去考牌。我組的學生聽完15分鐘後已經懂得開車上路,都幾有樂趣。

雖然短短數日,但感受已經特別深刻,學生對此學校的學習氛圍都十分羨慕,當然都要與學生分析目前香港的現況十分能做到與人大附中的效果。就例如機械人課程,我們的學生連LEGO都沒有玩過,又如何懂得安裝呢?學生都有問到為何附中的學生幾堂課就懂得LEGO的裝砌,其學生只是好快的答小時候玩過。香港的學生有多少人小時候玩過這類玩具?還是在補習社中度過?

無聊間走入了一間書城,在電腦及電工部看了很久都找不到這些創客有關的書籍,到電腦中查詢,令我十分驚訝,就是這些書大部分都放在少兒部。

也許香港的小朋友們要抽點時間離開一下補習社了。雖然走訪的學校太強,但就是因為其是一間國家示範中學,其課程會慢慢轉移至全國各地,看到的是內地已經在實施中的課程。但香港只是剛剛起步,同團的老師還帶有很多疑問,STEM最終想帶給孩子什麼?家長及孩子們能放下高考的包袱嗎?

與附中老師交流中,都談到此中學的一些改變。就是傳統埋頭苦讀,到開心學習。雖然改革過程都好辛苦,但最後高考的成績沒有改變到,學校用成績說服了家長,因此老師沒有什麼壓力。這裡也沒有什麼校規,也沒有點名,模式與大學類似,最重要還是校長及老師是否願意一起實行一個教育方向。

也許這中學太優秀,也許這裡的學生太優秀,他們的優秀是如何培養出來的?