第249章 群聊視頻定江山
飛信的視頻通話功能打了微信一個措手不及,可趙明知道,微信那幫人不會認輸。
他們在加班,在疊代,在優化。
也許下個月,也許下周,也許明天,微信就會推出一個更穩定、更清晰、更流暢的視頻通話版本。
長青不能停,飛信更不能停。
趙明把「群聊視頻」四個字寫在白板的正中央,畫了一個大大的紅圈。
「下一仗,打群聊視頻。」
他轉過身,看著在座的十幾個核心工程師。
「一家人分散在五湖四海,能不能在一個房間裡聊天?」
「爺爺奶奶在老家,爸媽在深圳,孩子在大學,能不能同時出現在一個屏幕上?」
「一個團隊異地辦公,能不能像坐在同一間會議室里開會?」
「你講PPT,我放文檔,他畫白板,所有人實時同步?」
「這個功能,微信沒有,飛信要有。」
「而且要比他們先有。」
會議室里安靜了片刻,然後有人開始鼓掌。
群聊視頻的技術難度比點對點視頻通話高了不止一個數量級。
點對點是一對一的通路,群聊是多對多的網狀結構。
四個人同時在線,就需要建立六條獨立的視頻通路。
每增加一個人,通路的數量呈指數級增長。
到了十個人,就是四十五條通路,對伺服器的壓力、對網絡帶寬的要求、對客戶端處理能力的要求,都遠遠超出了現有系統的承載極限。
趙明在技術方案評審會上把這個問題拋了出來。
「我們不能簡單地把點對點的方案複製到群聊場景。」
「四條通路,每一條都獨立傳輸視頻流,帶寬消耗太大了。」
「用戶家的寬帶撐不住,手機的網絡更撐不住。」
本書首發書📕𝐬𝐡𝐮.𝐭𝐰,提供給你無錯章節,無亂序章節的閱讀體驗
負責架構設計的工程師老周站起來,走到白板前面,拿起馬克筆畫了一個示意圖。
「趙總,我的方案是不做通路倍增,做視頻混流。」
「伺服器把所有人的視頻畫面合成一路流,再分發給每個參與者。」
「四個人通話,伺服器收到四路視頻流,在伺服器端合成為一路畫面,分成四個窗口,然後只發一路流給每個人。」
「這樣,每個用戶只上傳一路自己的視頻,只下載一路合成好的視頻。」
「無論多少人通話,用戶端的帶寬消耗都是恆定的。」
「瓶頸在伺服器端,不在用戶端。」
趙明盯著白板上的示意圖,腦子裡飛快地轉了幾圈。
「混流的延遲有多大?」
「合成一路畫面需要時間,編碼需要時間,分發需要時間。」
「延遲加起來,會不會比點對點高很多?」
老周說:「會高,可高得不多。」
「混流和編碼可以在GPU上做加速,幾十毫秒就能完成。」
「加上網絡傳輸的延遲,總延遲應該能控制在二百毫秒以內。」
「人類對延遲的感知閾值是四百毫秒,二百毫秒用戶感覺不出來。」
趙明在方案上簽了字,批了四個字——「先做再說。」
群聊視頻項目組進入了封閉開發模式。
會議室的白板上貼滿了技術要點:混流伺服器、GPU加速、音頻混音、動態布局、丟包補償、帶寬預測。
每完成一個模塊,就劃掉一行。
白板上的任務越來越多,劃掉的也越來越多。
最難的關卡是音頻混音。
點對點的音頻處理相對簡單,一方說話,另一方接收。
可在群聊場景下,多個人同時說話,伺服器要把所有人的聲音混合在一起,再發給每一個人。
不是簡單的疊加,是智能的混音。
有人說話聲音大,有人說話聲音小,有人在敲鍵盤,有人在咳嗽。
伺服器要能識別出哪些聲音是人聲,哪些是噪音,哪些人正在說話,哪些人只是開著麥不吭聲。
混音算法要保證對話自然流暢,不能搶話,不能斷句,不能有回聲,不能有雜音。
負責音頻模塊的工程師叫小陳,是音頻實驗室的老兵,在杜比實驗室幹過好幾年,對數位訊號處理和聲學有很深的理解。
小陳的方案是基於能量檢測的動態混音。
伺服器實時分析每一路音頻的能量值,能量高於閾值的人判定為正在說話,最多選三路能量最高的音頻進行混音。
其他人的音頻被暫時靜音,可不會被丟棄。
能量值變化了,混音的組合也會動態調整。
這個方案在邏輯上說得通,可真做起來,問題一大堆。
閾值設得太高,說話聲音小的人被漏掉了,對方聽不到他的聲音。
閾值設得太低,背景噪音被混進去了,對方聽到的全是沙沙聲。
小陳在實驗室里調了一個多星期,用了幾百段不同場景的錄音做測試,才找到一組相對合理的參數。
安靜環境下閾值低一些,嘈雜環境下閾值高一些。
白天辦公室模式,深夜家庭模式,街邊嘈雜模式。
每一種模式都要單獨標定參數,用戶第一次使用群聊視頻的時候,系統會自動跑一段幾秒鐘的環境音檢測,根據檢測結果自動選擇合適的參數組合。
趙明看到這套方案的時候,問了一句:「用戶會不會覺得初始化太慢?」
小陳說:「不會。幾秒鐘而已,用戶能等。」
「等這幾秒鐘換來的音頻體驗,比任何等待都值。」
趙明想了想,點了點頭。
視頻混流的挑戰比音頻更大。
四路視頻要合成一路,每路視頻的解析度、碼率、幀率可能都不一樣。
有人用的是最新款的珠峰手機,攝像頭清晰,網絡好。
有人用的是幾年前的舊機型,攝像頭模糊,網絡差。
混流伺服器要能處理這些差異,合成出來的畫面不能忽大忽小、忽快忽慢、忽清忽糊。
負責視頻模塊的工程師是老王的徒弟小劉,跟著老王做了好幾年的編解碼和視頻處理,技術上已經很老練了。
小劉的方案是伺服器端統一轉碼。
所有參與者的視頻流上傳到伺服器後,不直接混流,先轉碼成統一的格式和解析度。
解析度統一到標清級別,碼率統一到一個合理的數值,幀率統一到一個標準值。
轉碼完成後,再進行畫面合成,最後分發給所有參與者。
趙明在方案評審會上提出了一個很現實的問題。
「統一轉碼會增加延遲,也會增加伺服器的計算負載。」
「混流本身已經夠重了,再加上轉碼,伺服器撐不撐得住?」
小劉說:「撐得住。」
「數據中心的伺服器配備了圖形處理器加速卡,轉碼和混流都可以在圖形處理器上跑。」
「CPU負責邏輯控制,GPU負責數據處理,分工協作,效率很高。」
「一台伺服器可以支撐幾十路視頻的實時轉碼和混流。」
趙明又問了一句:「幾十路夠不夠?萬一有幾百人同時在線的群聊呢?」
小劉想了想,說了一句讓趙明放心的話:「幾百人同時在線的群聊,場景很少。」
「大部分用戶用群聊視頻,也就是三五個家人朋友,十幾人的同事團隊。」
「幾百人的場景,就算有,那也是大型活動,不能用群聊視頻,要用直播。」
「技術上不是做不到,是成本和收益不成比例。」
「為了一年用不了幾次的場景,投入幾倍的資源,不划算。」
趙明認可了這個判斷,在方案上簽了字。
老周、老周、老王、小陳、小劉,每個人都在各自的模塊上拼了命地往前趕。
音頻混音的參數調了一遍又一遍,視頻轉碼的性能優化了一輪又一輪,混流伺服器的壓力測試跑了一版又一版。
趙明每天晚上都要在實驗室里待到很晚。
他不寫代碼,不調參數,就是坐在那裡看。
看工程師們的狀態,看軟體的運行日誌,看伺服器的性能曲線,有問題就當場解決。
群聊視頻功能進入了內部測試階段。
陸念慈再次被推到了第一線。
老陳把群聊視頻的用戶體驗測試任務交給了她,讓她組織一場大規模的內部試用活動,收集用戶的反饋和建議。
陸念慈在長青集團內部招募了五百個試用用戶,來自不同的部門和崗位。
有研發工程師,有產品經理,有市場人員,有客服,有銷售。
她按照用戶的使用場景和需求分成了幾十個小組,每個小組有不同的測試任務。
家庭組,測試家人之間的遠程溝通。
同事組,測試異地辦公的協作效率。
朋友組,測試多人聊天的流暢度和趣味性。
測試持續了整整兩周。
陸念慈每天收集反饋,整理問題,跟蹤進度。
有人在群聊視頻里聽不清對方說話,有人在切換前後攝像頭的時候畫面卡頓,有人連接了好幾次都進不去房間。
每一條反饋,她都仔仔細細地記錄下來,標上優先級,分給對應的工程師去解決。
高優先級的當天必須修復,中優先級的二十四小時內修復,低優先級的排入下一個疊代版本。
兩周的測試下來,陸念慈整理了一份幾十頁的測試報告。
報告裡不僅有問題和建議,還有用戶的原話。
一個家在四川的員工在反饋里寫了一句讓陸念慈鼻子發酸的話:「用群聊視頻跟老家的爸媽和妹妹一起吃飯,雖然隔著幾千里,可看著他們的臉、聽著他們的聲音,覺得一家人又坐在了一起,謝謝飛信。」
陸念慈把這段話截圖發給了趙明。
趙明看了之後,在項目周會上念了一遍,念完之後辦公室里安靜了很久,沒有人說話。
趙明說了一句:「就為這段話,再熬幾個通宵也值。」
群聊視頻功能正式上線的日子定在二〇〇八年春節前一周。
趙明選這個時間點,理由很簡單。
春節是中國人最重視的節日,也是家人團聚的日子。
那些在外地打工、求學、打拼的人,回不了家,不能跟家人一起吃年夜飯,可他們可以在飛信上跟家人一起看春晚、一起聊天、一起笑。
飛信要做的,就是讓他們覺得,雖然人回不去,可心在一起。
上線前的最後一次壓力測試,趙明親自坐鎮監控室。
幾百台伺服器同時運轉,幾萬個模擬用戶同時在線,幾千個群聊房間同時建立。
監控大屏上的數據像瀑布一樣往下刷,CPU使用率、內存占用、網絡帶寬、磁碟讀寫,每一條曲線都在綠色安全區內起伏。
老周盯著音頻混音的曲線,老王盯著視頻轉碼的曲線,小陳盯著伺服器負載的曲線。
所有人的眼睛都死死地盯著那些跳動的數字,大氣都不敢出。
監控室里的空氣像是被抽乾了一樣,悶得人喘不過氣來。
趙明站在大屏前面,雙手抱胸,一言不發。
測試持續了一個多小時,模擬了幾萬個用戶、幾千個群聊房間。
沒有一條曲線越過紅色警戒線,沒有一條告警彈出,沒有一台伺服器宕機。
老周轉過頭,看著趙明,說了一句:「趙總,壓力測試通過了。」
趙明沒有回頭,盯著大屏上那根歸零的曲線,沉默了片刻,然後說了一句:「上線。」
飛信的群聊視頻功能在各大應用商店同步更新。
更新日誌里寫著一行字——「飛信群聊視頻來了。相隔千里,也能面對麵團圓。」
用戶像潮水一樣涌了進來。
不是幾萬,是幾十萬,是上百萬。
有人在家庭群里開啟了視頻通話,把分散在全國各地的家人拉進了同一個房間。
有老師在班級群里開啟了視頻通話,給學生線上答疑。
有公司的項目組在群里開啟了視頻通話,討論節後的工作計劃。
後台的數據每一秒都在刷新,在線用戶數突破了歷史最高峰,群聊房間數突破了預期上限,伺服器的負載在綠色區域裡穩步爬升,可沒有告警,沒有超限,沒有崩潰。
小陳盯著音頻混音的曲線,嘴角微微上揚。
老王盯著視頻轉碼的曲線,長長地呼出了一口氣。
趙明拿起手機,打開了飛信。
家庭群里,母親正在視頻通話中。
他點了一下「加入」,幾秒鐘後,屏幕上出現了四個畫面。
母親在廚房裡包餃子,父親在客廳里看報紙,妹妹在宿舍里複習功課,弟弟在辦公室里加班。
四個人,四個城市,四個畫面,在同一個屏幕上同時出現。
母親看到他的臉,笑著喊了一聲:「老大,你瘦了。」
趙明的眼淚差點掉下來。
他忍著沒哭,說了一句:「媽,餃子多包點,我初二就回去。」
長青大廈的頂樓,陸長青坐在辦公室里,手裡握著那台珠峰手機。
屏幕上顯示著長青集團的大家庭群,群里三百多個員工。
他點了一下視頻通話的圖標,邀請全群加入。
幾秒鐘後,屏幕上出現了幾十個畫面,密密麻麻地鋪滿了整個屏幕。
有人在家裡的客廳,有人在辦公室的工位上,有人在出差的酒店裡,有人在回老家的火車上。
周明義在畫面里朝他招了招手,趙岩石在工地上脫下了安全帽,劉山鷹在非洲的礦山里咧著嘴笑,孫灰狼在倉庫里舉著一瓶啤酒,林秀英在服裝廠的設計室里比了個耶。
每一個人都在笑。
群里還在熱鬧著,有人在唱歌,有人在講笑話,有人在曬年夜飯。
趙明在監控室里看著伺服器負載曲線,從高峰慢慢回落,從紅色回到黃色,從黃色回到綠色。
他靠在椅背上,長長地呼出一口氣,然後閉上眼睛。
監控室的燈還亮著,伺服器的指示燈還在閃爍,飛信的群聊房間裡還有幾百萬人在視頻通話。
有人在跟爸媽拜年,有人在跟戀人表白,有人在跟戰友敘舊。
那些聲音和畫面,穿過光纜,穿過交換機,穿過路由器,穿過防火牆,抵達彼此的眼睛和耳朵。
不卡頓,不掉線,不模糊,不延遲。
他們在加班,在疊代,在優化。
也許下個月,也許下周,也許明天,微信就會推出一個更穩定、更清晰、更流暢的視頻通話版本。
長青不能停,飛信更不能停。
趙明把「群聊視頻」四個字寫在白板的正中央,畫了一個大大的紅圈。
「下一仗,打群聊視頻。」
他轉過身,看著在座的十幾個核心工程師。
「一家人分散在五湖四海,能不能在一個房間裡聊天?」
「爺爺奶奶在老家,爸媽在深圳,孩子在大學,能不能同時出現在一個屏幕上?」
「一個團隊異地辦公,能不能像坐在同一間會議室里開會?」
「你講PPT,我放文檔,他畫白板,所有人實時同步?」
「這個功能,微信沒有,飛信要有。」
「而且要比他們先有。」
會議室里安靜了片刻,然後有人開始鼓掌。
群聊視頻的技術難度比點對點視頻通話高了不止一個數量級。
點對點是一對一的通路,群聊是多對多的網狀結構。
四個人同時在線,就需要建立六條獨立的視頻通路。
每增加一個人,通路的數量呈指數級增長。
到了十個人,就是四十五條通路,對伺服器的壓力、對網絡帶寬的要求、對客戶端處理能力的要求,都遠遠超出了現有系統的承載極限。
趙明在技術方案評審會上把這個問題拋了出來。
「我們不能簡單地把點對點的方案複製到群聊場景。」
「四條通路,每一條都獨立傳輸視頻流,帶寬消耗太大了。」
「用戶家的寬帶撐不住,手機的網絡更撐不住。」
本書首發書📕𝐬𝐡𝐮.𝐭𝐰,提供給你無錯章節,無亂序章節的閱讀體驗
負責架構設計的工程師老周站起來,走到白板前面,拿起馬克筆畫了一個示意圖。
「趙總,我的方案是不做通路倍增,做視頻混流。」
「伺服器把所有人的視頻畫面合成一路流,再分發給每個參與者。」
「四個人通話,伺服器收到四路視頻流,在伺服器端合成為一路畫面,分成四個窗口,然後只發一路流給每個人。」
「這樣,每個用戶只上傳一路自己的視頻,只下載一路合成好的視頻。」
「無論多少人通話,用戶端的帶寬消耗都是恆定的。」
「瓶頸在伺服器端,不在用戶端。」
趙明盯著白板上的示意圖,腦子裡飛快地轉了幾圈。
「混流的延遲有多大?」
「合成一路畫面需要時間,編碼需要時間,分發需要時間。」
「延遲加起來,會不會比點對點高很多?」
老周說:「會高,可高得不多。」
「混流和編碼可以在GPU上做加速,幾十毫秒就能完成。」
「加上網絡傳輸的延遲,總延遲應該能控制在二百毫秒以內。」
「人類對延遲的感知閾值是四百毫秒,二百毫秒用戶感覺不出來。」
趙明在方案上簽了字,批了四個字——「先做再說。」
群聊視頻項目組進入了封閉開發模式。
會議室的白板上貼滿了技術要點:混流伺服器、GPU加速、音頻混音、動態布局、丟包補償、帶寬預測。
每完成一個模塊,就劃掉一行。
白板上的任務越來越多,劃掉的也越來越多。
最難的關卡是音頻混音。
點對點的音頻處理相對簡單,一方說話,另一方接收。
可在群聊場景下,多個人同時說話,伺服器要把所有人的聲音混合在一起,再發給每一個人。
不是簡單的疊加,是智能的混音。
有人說話聲音大,有人說話聲音小,有人在敲鍵盤,有人在咳嗽。
伺服器要能識別出哪些聲音是人聲,哪些是噪音,哪些人正在說話,哪些人只是開著麥不吭聲。
混音算法要保證對話自然流暢,不能搶話,不能斷句,不能有回聲,不能有雜音。
負責音頻模塊的工程師叫小陳,是音頻實驗室的老兵,在杜比實驗室幹過好幾年,對數位訊號處理和聲學有很深的理解。
小陳的方案是基於能量檢測的動態混音。
伺服器實時分析每一路音頻的能量值,能量高於閾值的人判定為正在說話,最多選三路能量最高的音頻進行混音。
其他人的音頻被暫時靜音,可不會被丟棄。
能量值變化了,混音的組合也會動態調整。
這個方案在邏輯上說得通,可真做起來,問題一大堆。
閾值設得太高,說話聲音小的人被漏掉了,對方聽不到他的聲音。
閾值設得太低,背景噪音被混進去了,對方聽到的全是沙沙聲。
小陳在實驗室里調了一個多星期,用了幾百段不同場景的錄音做測試,才找到一組相對合理的參數。
安靜環境下閾值低一些,嘈雜環境下閾值高一些。
白天辦公室模式,深夜家庭模式,街邊嘈雜模式。
每一種模式都要單獨標定參數,用戶第一次使用群聊視頻的時候,系統會自動跑一段幾秒鐘的環境音檢測,根據檢測結果自動選擇合適的參數組合。
趙明看到這套方案的時候,問了一句:「用戶會不會覺得初始化太慢?」
小陳說:「不會。幾秒鐘而已,用戶能等。」
「等這幾秒鐘換來的音頻體驗,比任何等待都值。」
趙明想了想,點了點頭。
視頻混流的挑戰比音頻更大。
四路視頻要合成一路,每路視頻的解析度、碼率、幀率可能都不一樣。
有人用的是最新款的珠峰手機,攝像頭清晰,網絡好。
有人用的是幾年前的舊機型,攝像頭模糊,網絡差。
混流伺服器要能處理這些差異,合成出來的畫面不能忽大忽小、忽快忽慢、忽清忽糊。
負責視頻模塊的工程師是老王的徒弟小劉,跟著老王做了好幾年的編解碼和視頻處理,技術上已經很老練了。
小劉的方案是伺服器端統一轉碼。
所有參與者的視頻流上傳到伺服器後,不直接混流,先轉碼成統一的格式和解析度。
解析度統一到標清級別,碼率統一到一個合理的數值,幀率統一到一個標準值。
轉碼完成後,再進行畫面合成,最後分發給所有參與者。
趙明在方案評審會上提出了一個很現實的問題。
「統一轉碼會增加延遲,也會增加伺服器的計算負載。」
「混流本身已經夠重了,再加上轉碼,伺服器撐不撐得住?」
小劉說:「撐得住。」
「數據中心的伺服器配備了圖形處理器加速卡,轉碼和混流都可以在圖形處理器上跑。」
「CPU負責邏輯控制,GPU負責數據處理,分工協作,效率很高。」
「一台伺服器可以支撐幾十路視頻的實時轉碼和混流。」
趙明又問了一句:「幾十路夠不夠?萬一有幾百人同時在線的群聊呢?」
小劉想了想,說了一句讓趙明放心的話:「幾百人同時在線的群聊,場景很少。」
「大部分用戶用群聊視頻,也就是三五個家人朋友,十幾人的同事團隊。」
「幾百人的場景,就算有,那也是大型活動,不能用群聊視頻,要用直播。」
「技術上不是做不到,是成本和收益不成比例。」
「為了一年用不了幾次的場景,投入幾倍的資源,不划算。」
趙明認可了這個判斷,在方案上簽了字。
老周、老周、老王、小陳、小劉,每個人都在各自的模塊上拼了命地往前趕。
音頻混音的參數調了一遍又一遍,視頻轉碼的性能優化了一輪又一輪,混流伺服器的壓力測試跑了一版又一版。
趙明每天晚上都要在實驗室里待到很晚。
他不寫代碼,不調參數,就是坐在那裡看。
看工程師們的狀態,看軟體的運行日誌,看伺服器的性能曲線,有問題就當場解決。
群聊視頻功能進入了內部測試階段。
陸念慈再次被推到了第一線。
老陳把群聊視頻的用戶體驗測試任務交給了她,讓她組織一場大規模的內部試用活動,收集用戶的反饋和建議。
陸念慈在長青集團內部招募了五百個試用用戶,來自不同的部門和崗位。
有研發工程師,有產品經理,有市場人員,有客服,有銷售。
她按照用戶的使用場景和需求分成了幾十個小組,每個小組有不同的測試任務。
家庭組,測試家人之間的遠程溝通。
同事組,測試異地辦公的協作效率。
朋友組,測試多人聊天的流暢度和趣味性。
測試持續了整整兩周。
陸念慈每天收集反饋,整理問題,跟蹤進度。
有人在群聊視頻里聽不清對方說話,有人在切換前後攝像頭的時候畫面卡頓,有人連接了好幾次都進不去房間。
每一條反饋,她都仔仔細細地記錄下來,標上優先級,分給對應的工程師去解決。
高優先級的當天必須修復,中優先級的二十四小時內修復,低優先級的排入下一個疊代版本。
兩周的測試下來,陸念慈整理了一份幾十頁的測試報告。
報告裡不僅有問題和建議,還有用戶的原話。
一個家在四川的員工在反饋里寫了一句讓陸念慈鼻子發酸的話:「用群聊視頻跟老家的爸媽和妹妹一起吃飯,雖然隔著幾千里,可看著他們的臉、聽著他們的聲音,覺得一家人又坐在了一起,謝謝飛信。」
陸念慈把這段話截圖發給了趙明。
趙明看了之後,在項目周會上念了一遍,念完之後辦公室里安靜了很久,沒有人說話。
趙明說了一句:「就為這段話,再熬幾個通宵也值。」
群聊視頻功能正式上線的日子定在二〇〇八年春節前一周。
趙明選這個時間點,理由很簡單。
春節是中國人最重視的節日,也是家人團聚的日子。
那些在外地打工、求學、打拼的人,回不了家,不能跟家人一起吃年夜飯,可他們可以在飛信上跟家人一起看春晚、一起聊天、一起笑。
飛信要做的,就是讓他們覺得,雖然人回不去,可心在一起。
上線前的最後一次壓力測試,趙明親自坐鎮監控室。
幾百台伺服器同時運轉,幾萬個模擬用戶同時在線,幾千個群聊房間同時建立。
監控大屏上的數據像瀑布一樣往下刷,CPU使用率、內存占用、網絡帶寬、磁碟讀寫,每一條曲線都在綠色安全區內起伏。
老周盯著音頻混音的曲線,老王盯著視頻轉碼的曲線,小陳盯著伺服器負載的曲線。
所有人的眼睛都死死地盯著那些跳動的數字,大氣都不敢出。
監控室里的空氣像是被抽乾了一樣,悶得人喘不過氣來。
趙明站在大屏前面,雙手抱胸,一言不發。
測試持續了一個多小時,模擬了幾萬個用戶、幾千個群聊房間。
沒有一條曲線越過紅色警戒線,沒有一條告警彈出,沒有一台伺服器宕機。
老周轉過頭,看著趙明,說了一句:「趙總,壓力測試通過了。」
趙明沒有回頭,盯著大屏上那根歸零的曲線,沉默了片刻,然後說了一句:「上線。」
飛信的群聊視頻功能在各大應用商店同步更新。
更新日誌里寫著一行字——「飛信群聊視頻來了。相隔千里,也能面對麵團圓。」
用戶像潮水一樣涌了進來。
不是幾萬,是幾十萬,是上百萬。
有人在家庭群里開啟了視頻通話,把分散在全國各地的家人拉進了同一個房間。
有老師在班級群里開啟了視頻通話,給學生線上答疑。
有公司的項目組在群里開啟了視頻通話,討論節後的工作計劃。
後台的數據每一秒都在刷新,在線用戶數突破了歷史最高峰,群聊房間數突破了預期上限,伺服器的負載在綠色區域裡穩步爬升,可沒有告警,沒有超限,沒有崩潰。
小陳盯著音頻混音的曲線,嘴角微微上揚。
老王盯著視頻轉碼的曲線,長長地呼出了一口氣。
趙明拿起手機,打開了飛信。
家庭群里,母親正在視頻通話中。
他點了一下「加入」,幾秒鐘後,屏幕上出現了四個畫面。
母親在廚房裡包餃子,父親在客廳里看報紙,妹妹在宿舍里複習功課,弟弟在辦公室里加班。
四個人,四個城市,四個畫面,在同一個屏幕上同時出現。
母親看到他的臉,笑著喊了一聲:「老大,你瘦了。」
趙明的眼淚差點掉下來。
他忍著沒哭,說了一句:「媽,餃子多包點,我初二就回去。」
長青大廈的頂樓,陸長青坐在辦公室里,手裡握著那台珠峰手機。
屏幕上顯示著長青集團的大家庭群,群里三百多個員工。
他點了一下視頻通話的圖標,邀請全群加入。
幾秒鐘後,屏幕上出現了幾十個畫面,密密麻麻地鋪滿了整個屏幕。
有人在家裡的客廳,有人在辦公室的工位上,有人在出差的酒店裡,有人在回老家的火車上。
周明義在畫面里朝他招了招手,趙岩石在工地上脫下了安全帽,劉山鷹在非洲的礦山里咧著嘴笑,孫灰狼在倉庫里舉著一瓶啤酒,林秀英在服裝廠的設計室里比了個耶。
每一個人都在笑。
群里還在熱鬧著,有人在唱歌,有人在講笑話,有人在曬年夜飯。
趙明在監控室里看著伺服器負載曲線,從高峰慢慢回落,從紅色回到黃色,從黃色回到綠色。
他靠在椅背上,長長地呼出一口氣,然後閉上眼睛。
監控室的燈還亮著,伺服器的指示燈還在閃爍,飛信的群聊房間裡還有幾百萬人在視頻通話。
有人在跟爸媽拜年,有人在跟戀人表白,有人在跟戰友敘舊。
那些聲音和畫面,穿過光纜,穿過交換機,穿過路由器,穿過防火牆,抵達彼此的眼睛和耳朵。
不卡頓,不掉線,不模糊,不延遲。