跳到主要內容

17 Media 直播技術大解密

亞洲即時互動媒體龍頭 17 Media 歡慶成立四周年,透過深厚的即時互動工程技術底蘊、絕佳使用者體驗、流暢不中斷的優質直播內容在全球交出漂亮的成績單。17 Media 定期舉辦直播技術分享會 17 Tech Night( 17 科技之夜),邀請工程技術團隊現身分享 17 直播的開發旅程。

後端工程團隊合作無間,打造無時差的順暢直播體驗

17 Media 全球註冊用戶數達4,200萬、簽約的內容創作者近20,000人,近期更將內容生產、直播娛樂的版圖拓展至香港、日本、美國及馬來西亞等地。而為加強即時互動性、讓尖峰時段的直播流量不中斷,作為 17 Media 穩定運作的強力後盾,工程技術團隊結合了多種先進的軟體開發流程,不斷地優化和改良後台系統與產品設計,才能讓 17 Media 的優質內容流暢不間斷。

17 Media 後端工程部總監陳義雄表示,直播平台的順暢度是 17 Media 的首要目標,無論在不同時區的尖峰時刻,都需在開啟直播間之後的 0.3 秒內進入直播畫面;或是當有數百名直播主一起開播的線下活動、與電視台合作的直播益智互動節目進行時,都會為平台帶來瞬間流量以及可能的畫面延遲問題。陳義雄也分享,「技術團隊在克服所有裝置的畫面延遲上,有許多維運細節,即使只有1%的用戶服務出問題,17 Media 的工程技術團隊也能早一步預警並快速協助各供應商調整並維護。這些細節都是經過我們工程技術團隊在系統背後的無數次打磨,才能無時差的將優質的直播畫面提供給用戶、讓直播主與用戶順利互動。」

SRE 團隊作為產品幕後推手,自動化追蹤系統運作,維持 17 Media 競爭力

為因應 17 Media 的跨國直播服務,直播流量尖峰已不僅限於特定時段,17 Media 工程技術團隊首重靈活調整,以應付各種負載需求。17 Media 的工程團隊分工中,除了有後端工程師團隊負責開發、測試新功能外,17 Media 亦設有 SRE(Site Reliability Engineering,網站可靠性工程)團隊,管理 17 Media 複雜的基礎架構、資料庫、建置開發環境等,共同提供安全、可靠、具擴充性(Scalable)的解決方案,用快和穩定來維持競爭力。

17 Media 資深 SRE 工程部經理林毅民也分享:「17 Media SRE 團隊建立了24小時的 On-Call 制度,負責非常細緻的系統運作監控,追蹤數百項系統數據、制定量化的指標,做為系統發布警報的標準並每日發布,讓團隊能快速了解當前基礎架構的運作狀況,讓系統運行穩定並且提供開發人員能極大化產出速度的開發環境。」

iOS 團隊建立一套自動化整合及部署流程,降低直播 App 送審時被拒的風險

17 直播 App 做為公司產品本身,iOS 團隊深負重任,在後端穩定平台營運時,持續提供最新的功能給用戶,並提升 App 穩定性與優化使用者體驗,用深厚的開發經驗降低產品送審時被拒的風險、讓優質內容和創作者能持續被看見。

17 Media 資深 iOS 系統總監王瑞璽分享,「17 直播 App iOS 端用戶眾多,也意味著是一項艱難的挑戰。」17 直播在 AppStore 嚴謹的審查條款下曾在初期遭下架,近期更因拓展的國家、語系不斷增加,讓 17 直播 App 在全球持續「符合審查規範」並維持「每週一次更新」的任務更顯艱鉅。

17 Media iOS 工程技術團隊分享,人為疏忽如部署錯誤版本、使用不合規的關鍵字、圖片或描述等,都可能造成送審被拒、App被下架,造成營運上的混亂和用戶的困擾。王瑞璽表示,「為解決這個問題,17 Media iOS 團隊發展出一套自動化流程,整合 17 Media 自己的開發流程、團隊溝通平台 Slack 與第三方系統,讓系統能自行針對 AppStore 的送審流程進行自動化驗證和嘗試,自動化翻譯、整合素材、最後一鍵打包並送審,讓原本繁瑣的手動操作簡化成一條簡單的指令,增加團隊效率同時有效降低17 直播 App 送審時被拒絕或下架的風險。」

17 Media iOS 團隊導入 Apple 新技術,創作者一秒變虛擬主播!

虛擬主播(V-Liver)風潮從日本吹進台灣,17 Media 自去年起加入近百位虛擬主播,成台灣第一個可透過直播和虛擬主播互動的原生平台。虛擬主播廣受粉絲歡迎,也吸引許多創作者想要加入虛擬主播的行列,迎上二次元的 V-Live 風潮。

Apple 在全球開發者大會 WWDC 15 上公布了 ReplayKit,是一個讓直播主及創作者們可以串流手機螢幕畫面、即時分享到不同平台的框架,17 Media iOS 團隊看到後立即著手研究和導入。王瑞璽指出,「在過去,創作者要打造虛擬主播,只能透過電腦上的 OBS 影音串流直播工具來進行,隨著日漸增加的手機直播需求,我們也希望能讓虛擬主播有更便利的開播方式,因此 17 Media iOS 團隊即投入研究並導入 Apple 的此項新技術,現在創作者只要用一支手機就可以化身虛擬主播、一鍵開播!」

在同一支手機上,只要透過一個第三方 App 來製作虛擬化人像、變身後的影像可以直接在 17 直播 App 上開播,過程簡單快速,讓虛擬主播上手更容易、也讓用戶能有更多虛擬與現實融合的娛樂新體驗。

17 Media 團隊擁抱創新,開發開源軟體,號召技術人才一起打造優質直播環境

首屆 17 Tech Night 邀請 17 Media 工程技術團隊與業界分享後端技術,深獲聽眾好評。第二屆 17 Tech Night 則邀請與使用者第一線接觸的 iOS 工程團隊,分享團隊使用的各項技術以打造使用者最佳的即時互動體驗,進而完美呈現用戶眼前的 17 直播 App。

17 Tech Night 已成為每季舉辦的盛會,並期待有更多新世代技術人才加入 17 Media,一起打造更好的使用者體驗、可信賴的直播環境,帶給用戶更多價值、協助更多人透過直播完成夢想。

17 Media 人才招募訊息:https://www.jobs.17.media/?lang=zh

留言

這個網誌中的熱門文章

實戰 Vibe Coding:利用 Amazon Q Developer CLI 打造經典平台跳躍遊戲

本篇文章將介紹如何透過 Amazon Q Developer CLI 建構一款完整的 2D 平台跳躍遊戲,從初始生成、功能增強,到最終打造出具備多關卡、多樣互動元素的遊戲體驗。特別的是,過程中開發者並未撰寫任何一行程式碼,僅透過自然語言指令與 CLI 對話完成所有工作,實踐「Vibe Coding」( 氛圍編碼 )。 本文作者為 Haowen Huang, AWS Senior Developer Advocate. 擁有 20 年以上電信、互聯網以及雲端運算等行業架構設計、技術及創業管理等豐富經驗,曾任職於 Microsoft、Sun Microsystems 等企業,專注為遊戲、電商、媒體和廣告等企業客戶提供 AI/ML、數據分析和企業數字化轉型等解決方案諮詢服務。 引言 本篇文章 ( English Version ) 將介紹如何使用 Amazon Q Developer CLI ,以 無需撰寫任何程式碼 的方式,打造一款經典的 2D 平台跳躍遊戲。透過「Vibe Coding」( 氛圍編碼 ) 的開發流程,開發者可以藉由簡單的語言提示詞 (prompt),逐步完成從遊戲雛型、功能擴充到完整關卡設計的開發流程。 整體開發流程將分為三個步驟: 1. 生成遊戲雛型 2. 功能擴充強化與畫面調整 3. 導入參考架構建立完整遊戲 環境建置 使用者需先安裝並設定 Amazon Q Developer CLI 。對於 macOS 使用者,可透過下列步驟完成安裝: 下載並安裝 Amazon Q Developer CLI 登入 Builder ID 完成認證 開啟終端機控制與無障礙設定 執行 q doctor 指令檢查 Amazon Q Developer CLI 是否安裝成功: 遊戲開發方面,建議使用 Python 語言與 Pygame 套件,可透過下列指令完成安裝;Pygame 提供以下功能支援: 畫面與動畫渲染 音效播放 鍵盤與搖桿輸入控制 物理模擬與碰撞偵測 多種媒體格式支援(圖片與音效) $ q doctor $ pip install pygame 第一步驟:初步生成遊戲雛型 透過簡單的一句 prompt,Amazon Q Developer CLI 結合 Pyg...

利用 Jitsi 建立個人化的視訊會議平台

  近期因為疫情的關係,越來越多企業開始實施分流或在家工作,視訊會議的需求也日益增加。 在商用解決方案選擇上,有不少企業會選擇知名品牌的產品,例如  Cisco Webex 、 Google Meet 、 Microsoft Teams 、 Zoom  都是很不錯的方案。 KKBOX 集團在去年便試行及做好充分 work from home 的準備,今年五月也因應疫情升溫,全員 work from home 至今兩個月有餘。 當然,取之 Open Source,也要對社群有些貢獻。在這一屆 COSCUP,我們要來介紹 Open Source 圈中也很知名,效果也很不錯的一套視訊會議平台: Jitsi 。 除了基本的視訊會議功能外,在最後我們也會示範如何透過 Jitsi 畫面輸出到 YouTube/Twitch 或其他支援 RTMP 的平台進行直播。 由於篇幅有限,且 Jitsi 可以調整的細節非常多。今天我們純粹很快速的示範,如何簡單的建置出一個 Jitsi 環境,並提供單場會議內容錄影或直播。 Jitsi 的文件可以在 這裡 找到。 今天透過 AWS Lightsail 的 $10/month instance(1 core CPU + 2GB RAM + 60GB SSD),作業系統則是 Ubuntu 20.04 來示範。當然,使用其他 VPS 亦可,大同小異,這邊直接跳過 VPS 相關的建置過程。 *firewall 相關資料參考 這裡 及 這裡 。 針對系統做必要的更新 基本的 apt repository 更新: $ sudo apt update 因為後面要示範的會議錄影及直播需要使用 ALSA loopback device,如果是 EC2 or Lightsail 則需要額外安裝 generic kernel( 註 ): $ sudo apt install linux-image-generic linux-headers-generic linux-image-extra- virtual 接著做系統套件們的更新: $ sudo apt dist-upgrade $ sudo apt autoremove 如果是 AWS EC2 or Lightsail 則需要另外再將預設的 AWS optimized kernel...

你所不知道的 foodpanda

  2020 左右,隨著新冠疫情流行,台灣也逐漸流行起一股懶人旋風。懶懶躺在沙發上,動動手指滑滑螢幕,生鮮或美食就能快速又安全地由可愛的粉紅色熊貓外送員送達您門口。多數人知道 foodpanda 是台灣最大生鮮美食外送平台,也不少人知道 foodpanda 在台灣不斷擴張業務範圍,但 foodpanda 也有許多台灣科技圈所不知道的事。 例如,foodpanda 其實並非台灣本土廠商,也非只專注在亞洲區域。foodpanda 隸屬於德國 Delivery Hero 集團,業務橫跨歐洲、亞洲、美洲及北非,旗下更有十多個生鮮美食外送品牌。除此之外,foodpanda 於 2021 年時也在台灣正式成立全球第三個 Tech Hub。做為四大產品 RD 研發中心之一,台灣與德國柏林、新加坡及土耳其伊斯坦堡的人才緊密地合作,專注於打造 end-to-end 的顧客體驗。諸如月費方案 Panda Pro、外帶自取、餐廳內用 (目前仍未在台灣上市) 等功能。期待能持續吸收優秀人才、與其它三個跨國研發中心合作,打造後疫情時代新的成長引擎。 事實上,台灣的 foodpanda 研發團隊並不僅止於打造台灣本土產品。反之,我們所建立的平台及產品,已成功於近 20 個國家、10 個品牌上市。要在快速的步調下,打造持續進步且符合不同國家文化客戶需求的產品,我們依靠的是 專案團隊成員一條龍組合 從 Product Manager、Engineering Manager、iOS/Android/Web/Backend developer、QA、Product Designer、Product Analyst 全都在同一個 product line squad。讓相同產品的團隊成員能緊密合作、第一手快速了解市場、滿足需求。 國際專業團隊緊密合作 foodpanda 的 iOS/Android/Web/Backend 等專業工程師,都各自設有其跨 squad 的 chapter 組織。讓工程師能在專案團隊以外,有跨國跨團隊專業能力交流的機會。在 chapter 中,相同技術域領的專家們,會一起制定共同的實作標準、分享在專案中遇到類似的挑戰,並且找出可能的應對方案。因此,在 foodpanda 我們不只打產品專案團隊的速度戰、還打整個集團的整合能力團體戰,讓德國、新加坡、台灣、伊斯坦堡的工程師...