日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从直播答题看背后的移动音视频开发

發布時間:2024/4/11 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从直播答题看背后的移动音视频开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


直播答題經歷了火山噴發式的火爆,展曉凱和他的團隊也經歷了在短短數周內完成產品開發、測試、上線、運營、迭代的過程,他從產品邏輯、技術實現、難點突破等方面給出了自己的方案與經驗。本文來自全民快樂研發高級總監展曉凱在2018年1月《LiveVideoStack Meet:移動音視頻開發進階暨新書分享會》上的分享,活動邀請了展曉凱新書《音視頻開發進階指南》的粉絲參與。


文 / 展曉凱

整理 / LiveVideoStack


大家好,今天非常感謝大家前來聆聽我的分享,也非常感謝LiveVideoStack社區為我們搭建這樣一個探討前沿技術的平臺。我認為在音視頻或者其他任何一個技術領域,能有這樣為我們廣大開發者服務的社區都是彌足珍貴的。


在此之前我在線上分享過一種類似于抖音或者Musical.ly還有國外Funimate這樣為短視頻添加特效的平臺。今天前來我想分享另外一些我最近正在做的具有一定技術門檻的技術 ,與大家一起探討交流。



今天我向大家分享的是《從直播答題來看背后的移動音視頻開發》。直播答題應該是最近非常流行的一種網絡直播新玩法,最開始提出這一概念的應該是王思聰的沖頂大會,緊接著各家直播平臺百花齊放。


首先我們需要大致了解一下直播答題的場景。


一、場景



直播答題每場次一般有12個題目,用戶全部答對的話可以平分本場的獎金。直播開始主持人會向用戶介紹答題規則,鼓勵大家將自己的邀請碼分享出去以換取復活卡,這是一種獲取新用戶的手段。在這之后根據主持人的介紹,系統以答題卡的形式下發題目,觀眾便可以進行答題。每道題會有ABC三個選項,用戶進行作答提交答案,但只能提交一次且不能更改,最后公布本題目的正確答案。如果用戶答對了就有機會答下一題,如果答錯了可以使用一次復活卡獲得答下一題的機會,如果用戶12題全部答對了便能分得獎金。


二、國內廠商



國內舉辦這項活動的第一個品牌應該是王思聰的沖頂大會,緊接著映客上線了芝士超人。芝士超人是我的一個同事和他的團隊用了短短三天時間開發的一款獨立APP,僅用了一天測試便匆匆上線,導致第一版有很多Bug,當然這樣做是為了爭取行業第一的位置,出現bug也情有可原。在此之后是今日頭條旗下西瓜視頻推出的的百萬英雄,花椒在映客上線芝士超人后也開發了百萬贏家……各個廠家都有不同的入局直播答題的方案。因為我所在的公司也是做直播業務的,主要面向印度的消費者,我們公司的業務重心是印度市場。既然中國的直播答題市場不容小覷,印度也會有同樣的市場需求(當年的電影貧民窟的百萬富翁是多么火爆),并且印度消費者對直播也非常感興趣,所以說我們打算在印度推廣直播答題。


三、盈利模式



雖然我們主要探討的是技術,但需要確保我們做的事情是有意義的。因此接下來我簡單分析一下直播答題的盈利模式:


盈利模式1:直播答題本身就是直播平臺一種獲取新用戶的手段。對于國內市場,每一家公司在安卓平臺需要通過購買渠道等方式獲取新用戶,采用上線積分墻或者在各種市場進行推廣的方法吸引新用戶進入平臺;如果是國外市場,公司可能需要在Facebook、Instagram 等社交平臺采購一些廣告的流量來拉攏消費者。與其把公司這些用來買流量的錢付給各種渠道或者傳媒公司,不如直接分給用戶,同時可達到精準定位消費群體從而進行差異化精準營銷的效果。如果我們使用傳統的獲取新用戶的手段也就是通過渠道運作,假設獲取一個用戶的成本是5元,那么通過直播答題的形式獲取一個用戶可能只需要2~3元,直播答題獲取新用戶相對于傳統方式大幅減少成本。


盈利模式2:線下可以和電視臺等傳統傳媒業合作制作網紅和IP。例如花椒曾與《一站到底》進行合作,花椒也設計過一個美團的專場,美團通過付費來獲取這一場用戶的流量。


盈利模式3:直播答題中可以通過設計背景幕布、主持人T恤、視頻廣告等形式穿插硬廣。前提是這些廣告不能對用戶體驗造成嚴重的破壞。


盈利模式4:一些運營的手段,例如由某個廠商對直播答題進行冠名從而獲取贊助等。因為直播答題能帶來非常可觀流量,例如半小時平臺同時在線可達到10萬甚至20萬人,如果此時任何一家廠商在平臺上投放廣告,都能為其帶來非常明顯的 曝光效果與品牌受益。


四、技術實現



接下來讓我們簡單了解一下實現直播答題需要什么樣的技術手段。當然像剛才列舉的幾個廠家,他們實現直播答題的技術手段肯定是不一而然了,例如花椒使用的是即構科技提供的技術。直播答題背后的技術手段具體是什么呢?


1、技術組成


圖片中間的是Server部分,首先是Web ?Server。我們可以簡單理解為Web Server提供API接口的同時也提供一個運營后臺,運營后臺可以給我們運營人員使用,而API接口自然是直接給我們的終端用戶進行調用;接下來的Socket ?Server部分負責長連接,進入任何一個直播間都需要經過長連接的服務器;第三個必不可少的就是Live ?Server流媒體服務器。圖片右側Audience表示我們最終的用戶,左側OP表示我們的運營人員,Host表示我們的主持人。


2、技術原理


當用戶通過外界的Push、Banner、分享Link等跳轉進入答題房間后,第1步需要獲得比賽的信息,例如目前有幾張復活卡、單場比賽的獎學金額是多少、本場比賽的時間等等,總而言之就是用戶通過短連接服務器(Web ?server)獲得本場比賽的信息。


直播開始,首先主持人介紹比賽規則。此時設備會把主持人的實時語音和畫面傳送到流媒體服務器,這一步稱為直播內容推流。直播內容推流的技術現在已經非常成熟了,可以通過PC上的OBS軟件實現。使用OBS將主持人的音畫推到流媒體服務器,但主持直播離不開臺本,故需要通過類似于提詞器的設備將實時響應訊息呈現給主持人,這就存在一位負責給主持人翻臺本的運營人員提供直播互動訊息,例如第一題答完之后A選項、B選項、C選項各有多少人或者是本輪淘汰了多少人、本輪有多少人用了復活卡……主持人收到實時反饋后再面對鏡頭把這些訊息傳遞給用戶。OBS便負責把以上整個內容上傳到流媒體服務器,這樣我們的觀眾就可以通過流媒體服務器獲取視頻的內容。


接下來主持人會為參賽者閱讀第一題,此時需要我們的運營人員利用Web Server提供的運營后臺下發題目。下發題目的過程實際上Web Server會實時調用Socket Server,Socket Server下發題目給所有的觀眾,觀眾們就會看到下發的答題卡。看到答題卡后所有觀眾就可以選擇一個題目,如果他不選擇系統會判定該用戶超時。用戶選擇題目并作答,提交答案會直接請求連接服務器。在這里的Socket Server只用來當作一個通道或一個廣播,并不負責業務邏輯。我們使用Web ?Server控制業務邏輯以及數據存儲,而Socket Server只被當作一個通道(這樣一來可以提高并發)。


提交了答案之后主持人會用10s到30s對題目進行解釋,緊接著會公布正確答案。公布答案的過程實際上是運營人員在后臺控制答案的公布,此時Web ?Server又會實時調用Socket Server,最終使正確的答案公示在客戶端上。用戶便知道自己的答案是否正確,并且根據是否答對來控制接下來的狀態(比如是否使用復活卡,是否可以繼續答題)。之后進行下一題的作答,也就是循環圖中的3-1 下發題目、3-2 提交答案、3-3公布答案直到十二道題作答完畢。在答題中主持人會控制節奏,穿插一些介紹玩法引導用戶分享出去獲得復活卡,或者播放增加緊張感的視頻(例如倒計時)烘托整體氣氛。


到了最后主持人會在12道題作答完畢后公布比賽結果。此時運營人員會在后臺控制公布比賽結果,最后廣播給所有的觀眾。例如所有觀看本場直播的一萬人,每個人獲得2元或5元,最終點擊直播結束,整個流程終止。


上周我們做了5天的直播答題活動,總體來看效果還可以,沒有出現什么大紕漏。當然這里會有一些技術難點,這些之后會講到。在公布答案這一環節,我們也可以將題目答案打到視頻流里面去呈現給觀眾,現在即構科技和花椒合作的項目便在嘗試這種方案。但是我相信這種方案在我們團隊中實現起來成本會比較高。這樣也會有另外一個問題就是你必須要保證視頻的流暢性以及多客戶端視頻同步性,當然無論如何我們要保證多個客戶端的視頻同步性。


五、技術難點



1、解決錄音棚內的場景搭建與推流的難點


1)采集與推流的過程:這些對于從事攝像工作的專業人員來說并不難,但是對于之前完全沒有從事過專業攝像工作的我們來講具有一定難度。因為攝像機需要通過視頻采集卡對畫面進行采集;如果是多機位則需要經過導播臺再到錄機,再通過視頻采集卡供給電腦,之后通過電腦OBS進行推流。


2)專業打光效果與場景布置:簡單的話可以給主持人后放置一塊帶有LOGO的幕布,要想做得好也可以通過使用綠幕摳圖技術實現動態背景的效果。


2、解決保持視頻和題目同步的難點


例如主持人說:“下面我們來看第一題。” 他說完“第一題”這三個字時答題卡剛好出現,可以給觀眾更好的視聽體驗;如果主持人說:“下面讓我們來看第一題,第一題的內容是‘LiveVideoStack社區是不是給大家提供了很大的幫助?A是、B不是、C當然是。” 如果此時答題卡才出現便會破壞觀眾的視聽體驗。因此我們必須保證主持人主持的視頻和答題卡的同步性。


3、保證多個客戶端觀看視頻同步性的難點:控制多個客戶端觀看視頻的時間差在2s甚至1s以內。


4、保證多個客戶端下發題目同步性的難點:控制時間差在1s以內,否則實時性得不到保障就會失去比賽的公平性。


只有保證多個客戶端觀看視頻的同步性以及多個客戶端下發題目的同步性才能帶來完善的用戶體驗。


那么基于我們現有的技術,怎樣才能克服這些技術難點從而完善我們的產品體驗呢?


六、解決技術難點


1、解決錄音棚內場景搭建與推流的難點



首先我們需要攝像機、燈光、三腳架、幕布等設備搭建起一個小型攝影棚。

其次選擇合適的視頻采集方法,如果使用視頻采集卡比較常用的有BMD(BlackMagicDesign),但是會存在一些兼容性問題。還有一些其他的視頻采集方法例如通過SDI/HDMI將1080p的視頻信號直接輸入后通過USB3.0/Thunderbolt輸出到PC,使得PC獲取視頻流。


接下來進行電腦推流。為視頻設置合適的分辨率、碼率、幀率、GOP、x264 opts等參數,而后使用OBS軟件進行推流與切換視頻源,如果有專業老師控制的導播臺則可以達到更好的切換效果。OBS里可以實現基本的切換功能,例如先放一段娛樂視頻中間再放一段引導視頻最后放一段倒計時,三段視頻切換完成后再切回主持人的畫面,可以達到硬切無縫的效果。而PC連接有線網絡可以保證網絡的穩定。


2、解決多個客戶端觀看視頻同步性的難點



我們的解決方案是使用OBS推流到一個RTMP地址——一個我們自研的服務器,推流完成后流媒體服務器會把視頻流轉至CDN(我們的CDN對接的是Akamai);之后再從CDN拉流至客戶端播放給觀眾。這樣的過程從主播端到觀眾端的整體延遲大約是3~5s,并且如果拉流卡頓之后延遲會越來越大,所以在播放器端需要進行一些調整。


1)首先我們來看在推流端。例如現在設置一個分辨率是540×960、碼率是900Kbps的視頻,一秒一個關鍵幀并且不使用B幀,至于音頻參數因為人聲居多故設置為Mono 96Kbps,這些完全可以在OBS的選項里進行設置。


2)在服務器端我們需要做切片。1s一個切片也就是1s一個關鍵幀,之后轉推CDN。因為Akamai是不支持RTMP所以需要切片后轉給Akamai(實際上Akamai主動拉我們)。另外我們的服務器還會轉碼為低碼率碼流進行分發。因為我們公司開發的直播答題主要面向印度消費者,印度的網絡環境比中國的網絡環境還要復雜,所以我們要將900Kbps的原始碼流額外轉一路400Kbps這樣的低碼率碼流。當然客戶端會自適應這種碼流變化,如果監測到網絡環境不好可以切換為低碼率碼流進行播放。這樣畫面會稍顯模糊但最起碼用戶可以聽到主持人的說話。


3)接下來在播放器端。a、從CDN拉流時一定要做追趕的操作,如果檢測到分片信息比較落后可以立馬去追趕,這也就是為什么我們能保證視頻在多個客戶端上播放的時間差在1~2s。b、根據網絡自適應拉取對應的碼流,可能是原始碼率的碼流,也有可能是400Kbps這樣低碼率的碼流,這同樣是為了保證多個客戶端觀看視頻的同步性。


3、解決保持視頻和題目同步的難點。



剛才我提到的負責發題與公布答案的運營人員會在另外一個房間將自己當作一位觀眾,拿至少兩臺設備觀看主持人說到哪里。有時運營人員會和主持人約定一個手勢或者一處暗示,例如當主持人打一個響指時運營人員去控制下發題目。從點擊按鈕到觀眾從設備上看到題目,Web Server以及Socket Server可以將時間控制在1s以內,運營人員就是這樣根據當前客戶端播放的視頻內容控制題目下發的;當觀眾提交答案時提交到Web Server端,服務器會設置一個超時時間例如20s,20s后用戶再去提交答案即使正確也會因超時而作廢;運營人員聽到主持人即將讀出題目或者看到約定的信號出現時可去點擊下發題目、公布答案、公布結果或結束直播,這些是保證視頻和題目內容同步的手段。


4、解決保證多個客戶端題目下發同步性的難點



如果我們單純靠一個運營人員在另外一個房間以用戶的角度看到主持人說“下發題目”后點擊發題按鈕,那接下來就是保證多個客戶端題目下發的同步性。在這里我只列舉一個不太困難并且實現起來比較不錯的一個思路,運營后臺的任何一個按鈕都要通知到長連接服務器。大家可以直接在自己的服務器內部去完成,例如發送消息等。長連接服務器將這個消息立即透傳給房間內的所有人員,包括下發題目、下發答案、公布結果、比賽結束等。


5、解決視頻摳圖與添加背景的難點



例如我們剛才說到為LiveVideoStack設計直播答題系統,最簡單是我們將一個印有LiveVideoStack標志的幕布作為背景,主持人會在幕布前說話以及與觀眾互動,這樣達到了靜態背景的效果;但如果我們要實現動態背景,比如說國內各大答題廠商都有在主持人背后設計動態背景,那如何來實現這一點呢?


首先主持人需要站在一個綠色的幕布前,當然藍色的幕布也可以實現,但是因為在CMOS或者攝像機傳感器的拜耳陣列中感知綠色的單元是最多的,故而綠幕的效果最好。關于這一點我們可以在很多影視作品的拍攝過程中看到綠幕的運用,一般用于拍攝需要添加電腦特效的鏡頭時,演員背后的布景會呈現綠色。使用綠幕拍攝時主持人不能穿綠色衣服佩戴綠色首飾以及其他任何與背景顏色相似的東西,否則摳圖過程容易出現問題。


其次我們在OBS里增加一個效果濾鏡——色值,并將關鍵顏色類型選擇為綠色。根據不同場景調整參數,例如這里我將相似度設置為-800、平滑度設置為-13、不透明度設置為-100,這樣就可以把主持人從背景中分離出來。而后在OBS的場景中主持人Layer后邊添加一個動態的視頻背景,而這個動態背景內容可以是市場部拉來的廣告,也可以是自己產品的品牌展示,這樣不用打印幕布也不需要任何LED顯示屏,直接把視頻放在后面就可以實現動態背景效果。將要添加的視頻背景同時展示出來,這樣動態視頻的擴展性會更強。


6、實現生動的多媒體類型題目



如果在直播答題中呈現給觀眾的都是普通的文字類型題目,對觀眾而言花費時間讀題未免會太過枯燥,這也是我們期待為直播答題添加多媒體類型題目的原因。例如我們可以給觀眾聽一段音樂,之后出題考查觀眾是否知道這首歌曲的原唱;或者給觀眾看一段電影片段,之后出題考查觀眾是否知道此電影的導演。這種直播內容與圖片音頻視頻的切換不需要在客戶端中進行,而是完全通過 OBS切換:當答題卡下發時我們會把視頻縮小成30%大小并放在畫面右下角,這樣既不會影響答題卡的下發也不會因為視頻畫面太小而不能讓用戶看到整個視頻內容;或者我們可以把視頻內容換成一張圖片或者換成另外一個視頻,甚至添加一條音軌,這些在OBS中都可以輕松實現。OBS的擴展性非常優秀,完全不用改動任何的客戶端代碼或者服務端代碼。


以上是我結合遇到的技術難點和關注的問題總結分享的全部內容,希望能為你提供有價值的幫助,謝謝。


LiveVideoStackCon 2018講師招募



LiveVideoStackCon 2018是音視頻技術領域的綜合技術大會,今年是在10月19-20日在北京舉行。大會共設立16個專題,預計邀請超過80位技術專家。如果你在某一領域獨當一面,歡迎申請成為LiveVideoStackCon 2018的講師,讓你的經驗幫到更多人,你可以通過speaker@livevideostack.com 提交演講信息。了解大會更多詳情,請點擊『閱讀原文』訪問LiveVideoStackCon 2018官網,即刻享受6折優惠。

總結

以上是生活随笔為你收集整理的从直播答题看背后的移动音视频开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。