owned this note changed 6 years ago
Published Linked with GitHub

二次元直播 - 虛擬主播與 ReplayKit 的邂逅 - Han Chang

所有議程請見議程表

歡迎來到 https://hackmd.io/@iPlayground/2019 共筆 :mega:
點擊本頁上方的 開始用 Markdown 一起寫筆記!
手機版請點選上方 按鈕展開議程列表。

YouTube

Slide

使用 ReplayKit 將螢幕影像與聲音推流

大綱

17 直撥推流架構
螢幕直播推流架構
實作螢幕直撥遇到的問題

17 直播推流架構

原本的架構:直播主推到server server再推給觀眾
Server Clusters: 多台server做負載平衡,以及分散式運算

主播端:客製化的LFLiveKit

Fork 上面的分支,進行客製化的需求(如混音,濾鏡)

螢幕直播推流架構

使用App Entension, 無法單獨安裝,但是可以獨立開啟

實作螢幕直撥遇到的問題

extenstion 如何與 app 溝通

  • NSUserDefault
  • CFNotoficationCenter

觀眾聽不到主播的聲音

  • 混音: 以App Audio為主,因為錄製的時候有可能麥克風沒有開啟

ㄧ 有聲音但是畫面卡頓

  • call back 的頻率是0.5秒,導致處理聲音的時間太久
  • 解決方法 為聲音做不同的time stamp

螢幕轉橫就跑版了

  • 螢幕方向資訊

  • CMSampleBufferRef

    • RPVideoSampleOrientationKey
    • CGImagePropertyOrientation

  • 限制使用者版本為iOS 11以上,才能知道使用者的螢幕轉向了

總結

  • Server Clusters
  • ReplayKit 2 (Broadcast Upload Extension)
  • LFLiveKit

Reference

tags:iPlayground2019
Select a repo