直播類APP功能實(shí)現(xiàn)及技術(shù)難點(diǎn)
目前市面上直播app有的基本功能
1、聊天:私聊、聊天室、點(diǎn)亮、推送、黑名單等;
2、禮物:普通禮物、豪華禮物、紅包、排行榜、第三方充值、內(nèi)購(gòu)、禮物動(dòng)態(tài)更新、提現(xiàn)等;
3、直播列表:關(guān)注、熱門、最新、分類直播用戶列表等;
4、自己直播:錄制、推流、解碼、播放、美顏、心跳、后臺(tái)切換、主播對(duì)管理員操作、管理員對(duì)用戶等;
5、房間邏輯:創(chuàng)建房間、進(jìn)入房間、退出房間、關(guān)閉房間、切換房間、房間管理員設(shè)置、房間用戶列表等;
6、用戶邏輯:普通登陸、第三方登陸、注冊(cè)、搜索、修改個(gè)人信息、關(guān)注列表、粉絲列表、忘記密碼、查看個(gè)人信息、收入榜、關(guān)注和取關(guān)、檢索等;
7、觀看直播:聊天信息、滾屏彈幕、禮物顯示、加載界面等;
8、統(tǒng)計(jì):APP業(yè)務(wù)統(tǒng)計(jì)、第三方統(tǒng)計(jì)等;
9、超管:禁播、隱藏、審核等;
一個(gè)完整直播app原理
直播原理:把主播錄制的視頻,推送到服務(wù)器,在由服務(wù)器分發(fā)給觀眾觀看。
直播環(huán)節(jié):推流端(采集、美顏處理、編碼、推流)、服務(wù)端處理(轉(zhuǎn)碼、錄制、截圖、鑒黃)、播放器(拉流、解碼、渲染)、互動(dòng)系統(tǒng)(聊天室、禮物系統(tǒng)、贊)
一個(gè)完整直播app實(shí)現(xiàn)流程
1.采集、2.濾鏡處理、3.編碼、4.推流、5.CDN分發(fā)、6.拉流、7.解碼、8.播放、9.聊天互動(dòng)
一個(gè)完整直播app架構(gòu)
一個(gè)完整直播app技術(shù)點(diǎn)
一、流媒體(直播需要用到流媒體)
流媒體開(kāi)發(fā):網(wǎng)絡(luò)層(socket或st)負(fù)責(zé)傳輸,協(xié)議層(rtmp或hls)負(fù)責(zé)網(wǎng)絡(luò)打包,封裝層(flv、ts)負(fù)責(zé)編解碼數(shù)據(jù)的封裝,編碼層(h.264和aac)負(fù)責(zé)圖像,音頻壓縮。
幀:每幀代表一幅靜止的圖像
GOP:(Group of Pictures)畫(huà)面組,一個(gè)GOP就是一組連續(xù)的畫(huà)面,每個(gè)畫(huà)面都是一幀,一個(gè)GOP就是很多幀的集合
直播的數(shù)據(jù),其實(shí)是一組圖片,包括I幀、P幀、B幀,當(dāng)用戶第一次觀看的時(shí)候,會(huì)尋找I幀,而播放器會(huì)到服務(wù)器尋找到最近的I幀反饋給用戶。因此,GOP Cache增加了端到端延遲,因?yàn)樗仨氁玫阶罱腎幀
GOP Cache的長(zhǎng)度越長(zhǎng),畫(huà)面質(zhì)量越好
碼率:圖片進(jìn)行壓縮后每秒顯示的數(shù)據(jù)量。
幀率:每秒顯示的圖片數(shù)。影響畫(huà)面流暢度,與畫(huà)面流暢度成正比:幀率越大,畫(huà)面越流暢;幀率越小,畫(huà)面越有跳動(dòng)感。
由于人類眼睛的特殊生理結(jié)構(gòu),如果所看畫(huà)面之幀率高于16的時(shí)候,就會(huì)認(rèn)為是連貫的,此現(xiàn)象稱之為視覺(jué)暫留。并且當(dāng)幀速達(dá)到一定數(shù)值后,再增長(zhǎng)的話,人眼也不容易察覺(jué)到有明顯的流暢度提升了。
分辨率:(矩形)圖片的長(zhǎng)度和寬度,即圖片的尺寸
壓縮前的每秒數(shù)據(jù)量:幀率X分辨率(單位應(yīng)該是若干個(gè)字節(jié))
壓縮比:壓縮前的每秒數(shù)據(jù)量/碼率 (對(duì)于同一個(gè)視頻源并采用同一種視頻編碼算法,則:壓縮比越高,畫(huà)面質(zhì)量越差。)
視頻文件格式:文件的后綴,比如.wmv,.mov,.mp4,.mp3,.avi,
主要用處,根據(jù)文件格式,系統(tǒng)會(huì)自動(dòng)判斷用什么軟件打開(kāi),
注意: 隨意修改文件格式,對(duì)文件的本身不會(huì)造成太大的影響,比如把a(bǔ)vi改成mp4,文件還是avi.
視頻封裝格式:一種儲(chǔ)存視頻信息的容器,流式封裝可以有TS、FLV等,索引式的封裝有MP4,MOV,AVI等,
主要作用:一個(gè)視頻文件往往會(huì)包含圖像和音頻,還有一些配置信息(如圖像和音頻的關(guān)聯(lián),如何解碼它們等):這些內(nèi)容需要按照一定的規(guī)則組織、封裝起來(lái).
注意:會(huì)發(fā)現(xiàn)封裝格式跟文件格式一樣,因?yàn)橐话阋曨l文件格式的后綴名即采用相應(yīng)的視頻封裝格式的名稱,所以視頻文件格式就是視頻封裝格式。
視頻封裝格式和視頻壓縮編碼標(biāo)準(zhǔn):就好像項(xiàng)目工程和編程語(yǔ)言,封裝格式就是一個(gè)項(xiàng)目的工程,視頻編碼方式就是編程語(yǔ)言,一個(gè)項(xiàng)目工程可以用不同語(yǔ)言開(kāi)發(fā)。
二、直播所用到的基礎(chǔ)知識(shí):
1.采集視頻、音頻
1.1 采集視頻、音頻編碼框架
AVFoundation:AVFoundation是用來(lái)播放和創(chuàng)建實(shí)時(shí)的視聽(tīng)媒體數(shù)據(jù)的框架,同時(shí)提供Objective-C接口來(lái)操作這些視聽(tīng)數(shù)據(jù),比如編輯,旋轉(zhuǎn),重編碼
1.2 視頻、音頻硬件設(shè)備
CCD:圖像傳感器: 用于圖像采集和處理的過(guò)程,把圖像轉(zhuǎn)換成電信號(hào)。
拾音器:聲音傳感器: 用于聲音采集和處理的過(guò)程,把聲音轉(zhuǎn)換成電信號(hào)。
音頻采樣數(shù)據(jù):一般都是PCM格式
視頻采樣數(shù)據(jù): 一般都是YUV,或RGB格式,采集到的原始音視頻的體積是非常大的,需要經(jīng)過(guò)壓縮技術(shù)處理來(lái)提高傳輸效率
2.視頻處理(美顏,水?。?/p>
視頻處理原理: 因?yàn)橐曨l最終也是通過(guò)GPU,一幀一幀渲染到屏幕上的,所以我們可以利用OpenGL ES,對(duì)視頻幀進(jìn)行各種加工,從而視頻各種不同的效果,就好像一個(gè)水龍頭流出的水,經(jīng)過(guò)若干節(jié)管道,然后流向不同的目標(biāo)
現(xiàn)在的各種美顏和視頻添加特效的app都是利用GPUImage這個(gè)框架實(shí)現(xiàn)的。
視頻處理框架
GPUImage : GPUImage是一個(gè)基于OpenGL ES的一個(gè)強(qiáng)大的圖像/視頻處理框架,封裝好了各種濾鏡同時(shí)也可以編寫(xiě)自定義的濾鏡,其本身內(nèi)置了多達(dá)120多種常見(jiàn)的濾鏡效果。
OpenGL:OpenGL(全寫(xiě)Open Graphics Library)是個(gè)定義了一個(gè)跨編程語(yǔ)言、跨平臺(tái)的編程接口的規(guī)格,它用于三維圖象(二維的亦可)。OpenGL是個(gè)專業(yè)的圖形程序接口,是一個(gè)功能強(qiáng)大,調(diào)用方便的底層圖形庫(kù)。
OpenGL ES:OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL三維圖形 API 的子集,針對(duì)手機(jī)、PDA和游戲主機(jī)等嵌入式設(shè)備而設(shè)計(jì)。
3.視頻編碼解碼
3.1 視頻編碼框架
FFmpeg:是一個(gè)跨平臺(tái)的開(kāi)源視頻框架,能實(shí)現(xiàn)如視頻編碼,解碼,轉(zhuǎn)碼,串流,播放等豐富的功能。其支持的視頻格式以及播放協(xié)議非常豐富,幾乎包含了所有音視頻編解碼、封裝格式以及播放協(xié)議。
-Libswresample:可以對(duì)音頻進(jìn)行重采樣,rematrixing 以及轉(zhuǎn)換采樣格式等操 作。
-Libavcodec:提供了一個(gè)通用的編解碼框架,包含了許多視頻,音頻,字幕流 等編碼/解碼器。
-Libavformat:用于對(duì)視頻進(jìn)行封裝/解封裝。
-Libavutil:包含一些共用的函數(shù),如隨機(jī)數(shù)生成,數(shù)據(jù)結(jié)構(gòu),數(shù)學(xué)運(yùn)算等。
-Libpostproc:用于進(jìn)行視頻的一些后期處理。
-Libswscale:用于視頻圖像縮放,顏色空間轉(zhuǎn)換等。
-Libavfilter:提供濾鏡功能。
X264:把視頻原數(shù)據(jù)YUV編碼壓縮成H.264格式
VideoToolbox:蘋(píng)果自帶的視頻硬解碼和硬編碼API,但是在iOS8之后才開(kāi)放。
AudioToolbox:蘋(píng)果自帶的音頻硬解碼和硬編碼API
3.2 視頻編碼技術(shù)
視頻壓縮編碼標(biāo)準(zhǔn):對(duì)視頻進(jìn)行壓縮(視頻編碼)或者解壓縮(視頻解碼)的編碼技術(shù),比如MPEG,H.264,這些視頻編碼技術(shù)是壓縮編碼視頻的
主要作用:是將視頻像素?cái)?shù)據(jù)壓縮成為視頻碼流,從而降低視頻的數(shù)據(jù)量。如果視頻不經(jīng)過(guò)壓縮編碼的話,體積通常是非常大的,一部電影可能就要上百G的空間。
注意:最影響視頻質(zhì)量的是其視頻編碼數(shù)據(jù)和音頻編碼數(shù)據(jù),跟封裝格式?jīng)]有多大關(guān)系
MPEG:一種視頻壓縮方式,它采用了幀間壓縮,僅存儲(chǔ)連續(xù)幀之間有差別的地方 ,從而達(dá)到較大的壓縮比
H.264/AVC:一種視頻壓縮方式,采用事先預(yù)測(cè)和與MPEG中的P-B幀一樣的幀預(yù)測(cè)方法壓縮,它可以根據(jù)需要產(chǎn)生適合網(wǎng)絡(luò)情況傳輸?shù)囊曨l流,還有更高的壓縮比,有更好的圖象質(zhì)量
注意1:如果是從單個(gè)畫(huà)面清晰度比較,MPEG4有優(yōu)勢(shì);從動(dòng)作連貫性上的清晰度,H.264有優(yōu)勢(shì)
注意2:由于264的算法更加復(fù)雜,程序?qū)崿F(xiàn)煩瑣,運(yùn)行它需要更多的處理器和內(nèi)存資源。因此,運(yùn)行264對(duì)系統(tǒng)要求是比較高的。
注意3:由于264的實(shí)現(xiàn)更加靈活,它把一些實(shí)現(xiàn)留給了廠商自己去實(shí)現(xiàn),雖然這樣給實(shí)現(xiàn)帶來(lái)了很多好處,但是不同產(chǎn)品之間互通成了很大的問(wèn)題,造成了通過(guò)A公司的編碼器編出的數(shù)據(jù),必須通過(guò)A公司的解碼器去解這樣尷尬的事情
H.265/HEVC:一種視頻壓縮方式,基于H.264,保留原來(lái)的某些技術(shù),同時(shí)對(duì)一些相關(guān)的技術(shù)加以改進(jìn),以改善碼流、編碼質(zhì)量、延時(shí)和算法復(fù)雜度之間的關(guān)系,達(dá)到最優(yōu)化設(shè)置。
H.265 是一種更為高效的編碼標(biāo)準(zhǔn),能夠在同等畫(huà)質(zhì)效果下將內(nèi)容的體積壓縮得更小,傳輸時(shí)更快更省帶寬
I幀:(關(guān)鍵幀)保留一副完整的畫(huà)面,解碼時(shí)只需要本幀數(shù)據(jù)就可以完成(因?yàn)榘暾?huà)面)
P幀:(差別幀)保留這一幀跟之前幀的差別,解碼時(shí)需要用之前緩存的畫(huà)面疊加上本幀定義的差別,生成最終畫(huà)面。(P幀沒(méi)有完整畫(huà)面數(shù)據(jù),只有與前一幀的畫(huà)面差別的數(shù)據(jù))
B幀:(雙向差別幀)保留的是本幀與前后幀的差別,解碼B幀,不僅要取得之前的緩存畫(huà)面,還要解碼之后的畫(huà)面,通過(guò)前后畫(huà)面的與本幀數(shù)據(jù)的疊加取得最終的畫(huà)面。B幀壓縮率高,但是解碼時(shí)CPU會(huì)比較累
幀內(nèi)(Intraframe)壓縮:當(dāng)壓縮一幀圖像時(shí),僅考慮本幀的數(shù)據(jù)而不考慮相鄰幀之間的冗余信息,幀內(nèi)一般采用有損壓縮算法
幀間(Interframe)壓縮:時(shí)間壓縮(Temporal compression),它通過(guò)比較時(shí)間軸上不同幀之間的數(shù)據(jù)進(jìn)行壓縮。幀間壓縮一般是無(wú)損的
muxing(合成):將視頻流、音頻流甚至是字幕流封裝到一個(gè)文件中(容器格式(FLV,TS)),作為一個(gè)信號(hào)進(jìn)行傳輸。
3.3 音頻編碼技術(shù)
AAC,mp3:這些屬于音頻編碼技術(shù),壓縮音頻用
3.4碼率控制
多碼率:觀眾所處的網(wǎng)絡(luò)情況是非常復(fù)雜的,有可能是WiFi,有可能4G、3G、甚至2G,那么怎么滿足多方需求呢?多搞幾條線路,根據(jù)當(dāng)前網(wǎng)絡(luò)環(huán)境自定義碼率。列如:常常看見(jiàn)視頻播放軟件中的1024,720,高清,標(biāo)清,流暢等,指的就是各種碼率。
3.5 視頻封裝格式
TS : 一種流媒體封裝格式,流媒體封裝有一個(gè)好處,就是不需要加載索引再播放,大大減少了首次載入的延遲,如果片子比較長(zhǎng),mp4文件的索引相當(dāng)大,影響用戶體驗(yàn)
FLV: 一種流媒體封裝格式,由于它形成的文件極小、加載速度極快,使得網(wǎng)絡(luò)觀看視頻文件成為可能,因此FLV格式成為了當(dāng)今主流視頻格式
4.推流
4.1 數(shù)據(jù)傳輸框架
librtmp:用來(lái)傳輸RTMP協(xié)議格式的數(shù)據(jù)
4.2 流媒體數(shù)據(jù)傳輸協(xié)議
RTMP:實(shí)時(shí)消息傳輸協(xié)議,Adobe Systems公司為Flash播放器和服務(wù)器之間音頻、視頻和數(shù)據(jù)傳輸開(kāi)發(fā)的開(kāi)放協(xié)議,因?yàn)槭情_(kāi)放協(xié)議所以都可以使用了。
chunk:消息包
RTMP協(xié)議用于對(duì)象、視頻、音頻的傳輸。
這個(gè)協(xié)議建立在TCP協(xié)議或者輪詢HTTP協(xié)議之上。
RTMP協(xié)議就像一個(gè)用來(lái)裝數(shù)據(jù)包的容器,這些數(shù)據(jù)可以是FLV中的視音頻數(shù)據(jù)。一個(gè)單一的連接可以通過(guò)不同的通道傳輸多路網(wǎng)絡(luò)流,這些通道中的包都是按照固定大小的包傳輸?shù)?/p>
5.流媒體服務(wù)器
5.1常用服務(wù)器
SRS:一款國(guó)人開(kāi)發(fā)的優(yōu)秀開(kāi)源流媒體服務(wù)器系統(tǒng)
BMS:也是一款流媒體服務(wù)器系統(tǒng),但不開(kāi)源,是SRS的商業(yè)版,比SRS功能更多
nginx:免費(fèi)開(kāi)源web服務(wù)器,常用來(lái)配置流媒體服務(wù)器。
5.2數(shù)據(jù)分發(fā)
CDN:(Content Delivery Network),即內(nèi)容分發(fā)網(wǎng)絡(luò),將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡(luò)”邊緣”,使用戶可以就近取得所需的內(nèi)容,解決 Internet網(wǎng)絡(luò)擁擠的狀況,提高用戶訪問(wèn)網(wǎng)站的響應(yīng)速度.
1.上傳流媒體數(shù)據(jù)到服務(wù)器(源站)
2.源站存儲(chǔ)流媒體數(shù)據(jù)
3.客戶端播放流媒體,向CDN請(qǐng)求編碼后的流媒體數(shù)據(jù)
4.CDN的服務(wù)器響應(yīng)請(qǐng)求,若節(jié)點(diǎn)上沒(méi)有該流媒體數(shù)據(jù)存在,則向源站繼續(xù)請(qǐng)求流媒體數(shù)據(jù);若節(jié)點(diǎn)上已經(jīng)緩存了該視頻文件,則跳到第6步。
5.源站響應(yīng)CDN的請(qǐng)求,將流媒體分發(fā)到相應(yīng)的CDN節(jié)點(diǎn)上
6.CDN將流媒體數(shù)據(jù)發(fā)送到客戶端
CDN:代理服務(wù)器,相當(dāng)于一個(gè)中介。
CDN工作原理:比如請(qǐng)求流媒體數(shù)據(jù)
回源:當(dāng)有用戶訪問(wèn)某一個(gè)URL的時(shí)候,如果被解析到的那個(gè)CDN節(jié)點(diǎn)沒(méi)有緩存響應(yīng)的內(nèi)容,或者是緩存已經(jīng)到期,就會(huì)回源站去獲取搜索。如果沒(méi)有人訪問(wèn),那么CDN節(jié)點(diǎn)不會(huì)主動(dòng)去源站拿。
帶寬:在固定的時(shí)間可傳輸?shù)臄?shù)據(jù)總量,
比如64位、800MHz的前端總線,它的數(shù)據(jù)傳輸率就等于64bit×800MHz÷8(Byte)=6.4GB/s
負(fù)載均衡: 由多臺(tái)服務(wù)器以對(duì)稱的方式組成一個(gè)服務(wù)器集合,每臺(tái)服務(wù)器都具有等價(jià)的地位,都可以單獨(dú)對(duì)外提供服務(wù)而無(wú)須其他服務(wù)器的輔助.
通過(guò)某種負(fù)載分擔(dān)技術(shù),將外部發(fā)送來(lái)的請(qǐng)求均勻分配到對(duì)稱結(jié)構(gòu)中的某一臺(tái)服務(wù)器上,而接收到請(qǐng)求的服務(wù)器獨(dú)立地回應(yīng)客戶的請(qǐng)求。
均衡負(fù)載能夠平均分配客戶請(qǐng)求到服務(wù)器列陣,籍此提供快速獲取重要數(shù)據(jù),解決大量并發(fā)訪問(wèn)服務(wù)問(wèn)題。
這種群集技術(shù)可以用最少的投資獲得接近于大型主機(jī)的性能。
QoS(帶寬管理):限制每一個(gè)組群的帶寬,讓有限的帶寬發(fā)揮最大的效用
6.拉流
直播協(xié)議選擇:
即時(shí)性要求較高或有互動(dòng)需求的可以采用RTMP,RTSP
對(duì)于有回放或跨平臺(tái)需求的,推薦使用HLS
直播協(xié)議對(duì)比 :
HLS:由Apple公司定義的用于實(shí)時(shí)流傳輸?shù)膮f(xié)議,HLS基于HTTP協(xié)議實(shí)現(xiàn),傳輸內(nèi)容包括兩部分,一是M3U8描述文件,二是TS媒體文件??蓪?shí)現(xiàn)流媒體的直播和點(diǎn)播,主要應(yīng)用在iOS系統(tǒng)
HLS是以點(diǎn)播的技術(shù)方式來(lái)實(shí)現(xiàn)直播
HLS是自適應(yīng)碼率流播,客戶端會(huì)根據(jù)網(wǎng)絡(luò)狀況自動(dòng)選擇不同碼率的視頻流,條件允許的情況下使用高碼率,網(wǎng)絡(luò)繁忙的時(shí)候使用低碼率,并且自動(dòng)在二者間隨意切
換。這對(duì)移動(dòng)設(shè)備網(wǎng)絡(luò)狀況不穩(wěn)定的情況下保障流暢播放非常有幫助。
實(shí)現(xiàn)方法是服務(wù)器端提供多碼率視頻流,并且在列表文件中注明,播放器根據(jù)播放進(jìn)度和下載速度自動(dòng)調(diào)整。
HLS與RTMP對(duì)比:HLS主要是延時(shí)比較大,RTMP主要優(yōu)勢(shì)在于延時(shí)低
HLS協(xié)議的小切片方式會(huì)生成大量的文件,存儲(chǔ)或處理這些文件會(huì)造成大量資源浪費(fèi)
相比使用RTSP協(xié)議的好處在于,一旦切分完成,之后的分發(fā)過(guò)程完全不需要額外使用任何專門軟件,普通的網(wǎng)絡(luò)服務(wù)器即可,大大降低了CDN邊緣服務(wù)器的配置要求,可以使用任何現(xiàn)成的CDN,而一般服務(wù)器很少支持RTSP。
HTTP-FLV:基于HTTP協(xié)議流式的傳輸媒體內(nèi)容。
相對(duì)于RTMP,HTTP更簡(jiǎn)單和廣為人知,內(nèi)容延遲同樣可以做到1~3秒,打開(kāi)速度更快,因?yàn)镠TTP本身沒(méi)有復(fù)雜的狀態(tài)交互。所以從延遲角度來(lái)看,HTTP-FLV要優(yōu)于RTMP。
RTSP:實(shí)時(shí)流傳輸協(xié)議,定義了一對(duì)多應(yīng)用程序如何有效地通過(guò)IP網(wǎng)絡(luò)傳送多媒體數(shù)據(jù).
RTP:實(shí)時(shí)傳輸協(xié)議,RTP是建立在UDP協(xié)議上的,常與RTCP一起使用,其本身并沒(méi)有提供按時(shí)發(fā)送機(jī)制或其它服務(wù)質(zhì)量(QoS)保證,它依賴于低層服務(wù)去實(shí)現(xiàn)這一過(guò)程。
RTCP:RTP的配套協(xié)議,主要功能是為RTP所提供的服務(wù)質(zhì)量(QoS)提供反饋,收集相關(guān)媒體連接的統(tǒng)計(jì)信息,例如傳輸字節(jié)數(shù),傳輸分組數(shù),丟失分組數(shù),單向和雙向網(wǎng)絡(luò)延遲等等。
7.解碼
7.1 解封裝
demuxing(分離):從視頻流、音頻流,字幕流合成的文件(容器格式(FLV,TS))中, 分解出視頻、音頻或字幕,各自進(jìn)行解碼。
7.2 音頻編碼框架
fdk_aac:音頻編碼解碼框架,PCM音頻數(shù)據(jù)和AAC音頻數(shù)據(jù)互轉(zhuǎn)
7.3 解碼介紹
硬解碼:用GPU來(lái)解碼,減少CPU運(yùn)算
優(yōu)點(diǎn):播放流暢、低功耗,解碼速度快
缺點(diǎn):兼容不好
軟解碼:用CPU來(lái)解碼
優(yōu)點(diǎn):兼容好
缺點(diǎn):加大CPU負(fù)擔(dān),耗電增加、沒(méi)有硬解碼流暢,解碼速度相對(duì)慢
8.播放
ijkplayer:一個(gè)基于FFmpeg的開(kāi)源Android/iOS視頻播放器
API易于集成;
編譯配置可裁剪,方便控制安裝包大?。?/p>
支持硬件加速解碼,更加省電
簡(jiǎn)單易用,指定拉流URL,自動(dòng)解碼播放.
9.聊天互動(dòng)
IM:(InstantMessaging)即時(shí)通訊:是一個(gè)實(shí)時(shí)通信系統(tǒng),允許兩人或多人使用網(wǎng)絡(luò)實(shí)時(shí)的傳遞文字消息、文件、語(yǔ)音與視頻交流。IM在直播系統(tǒng)中的主要作用是實(shí)現(xiàn)觀眾與主播、觀眾與觀眾之間的文字互動(dòng)。
原文鏈接:https://zhuanlan.zhihu.com/p/23713566