楊萃潔
(廣西生態(tài)工程職業(yè)技術(shù)學(xué)院,廣西柳州,545004)
在網(wǎng)絡(luò)技術(shù)迅速發(fā)展的現(xiàn)在,移動互聯(lián)網(wǎng)已經(jīng)成為信息采集、共享、處理和傳播的主要平臺。在移動終端設(shè)備的硬件性能逐步升級的當(dāng)下,人們已經(jīng)將自身的工作、生活和學(xué)習(xí)融入移動互聯(lián)網(wǎng)。以短視頻為表現(xiàn)形式的教學(xué)視頻資源——微課便是基于這樣一種生活模式和生活需求而誕生的。微課的出現(xiàn)滿足了快節(jié)奏生活下的碎片化知識資源需求,讓網(wǎng)絡(luò)用戶可以隨時隨地進(jìn)行碎片化的學(xué)習(xí)。但是,由于其基礎(chǔ)為無線通信技術(shù),微課的服務(wù)質(zhì)量和使用情況將受流媒體的流量影響,如果網(wǎng)絡(luò)帶寬不佳,終端就會發(fā)生頻繁的畫面卡頓和數(shù)據(jù)緩沖,對用戶的移動學(xué)習(xí)過程造成阻礙。因此,要給學(xué)習(xí)者提供最佳的用戶體驗,就需要構(gòu)建終端動態(tài)碼流自適應(yīng)的微課支持系統(tǒng),通過對碼率等級自動化調(diào)整,減少卡頓、緩沖的發(fā)生。
微課是一種將教學(xué)信息碎片化、密集化呈現(xiàn)的授課方式,而自適應(yīng)移動流媒體,則是流媒體類型的一種。首先,流媒體的實質(zhì)是一種流式數(shù)據(jù)包,它的特點是能夠在網(wǎng)絡(luò)環(huán)境中同時實現(xiàn)數(shù)據(jù)信息下載和數(shù)據(jù)信息播放兩種功能。這使得流媒體的便捷性要遠(yuǎn)遠(yuǎn)超過其他的媒體類型,也因為如此,流媒體是當(dāng)前主要的微課載體。早期的流媒體技術(shù)以RTSP/RTP為代表,不過,因為移動智能終端的自身特性,RTSP流媒體沒法滿足跨防火墻的服務(wù)需求和CDN應(yīng)用需要。因此,為適應(yīng)其動態(tài)信息的傳遞需求,又誕生了HTTP無連接技術(shù)。該技術(shù)協(xié)議可以有效滿足CDN應(yīng)用,實現(xiàn)原RTSP技術(shù)沒法實現(xiàn)的功能。不過,因為HTTP是漸進(jìn)式下載,在隱私保護(hù)上功能欠佳,同時也不具備直播能力,所以,在HTTP無連接技術(shù)的基礎(chǔ)上,又誕生了HTTP自適應(yīng)流媒體技術(shù)。該技術(shù)同時結(jié)合了RTSP流媒體技術(shù)和HTTP無連接技術(shù)兩種技術(shù)的優(yōu)勢,擁有碼率自調(diào)節(jié)能力,它會甄別使用者的終端網(wǎng)絡(luò)狀況,然后選擇能夠符合其網(wǎng)絡(luò)帶寬情況的碼率等級,保證用戶在觀看視頻時的暢通無阻。因此,在微課制作中,HTTP自適應(yīng)流媒體技術(shù)已經(jīng)成為主要的開發(fā)應(yīng)用技術(shù)。[1]
該技術(shù)方案的推出者是蘋果公司,它的原理是以HTTP為載體,在此基礎(chǔ)上為移動終端提供直播和點播功能。HLS技術(shù)的服務(wù)器是Web,具有出色的數(shù)據(jù)備份、處理能力,因此,在使用過程中可以較好地為使用者提供方便快捷的數(shù)據(jù)傳輸、存儲能力,在時間戳和數(shù)據(jù)恢復(fù)能力上也十分出色。以Web服務(wù)器為基礎(chǔ),因該服務(wù)器已經(jīng)具有了兼容現(xiàn)有網(wǎng)絡(luò)設(shè)施的能力,在運行時該服務(wù)器會穿越防火墻和路由器,并應(yīng)用CDN,因此HLS技術(shù)不需要再構(gòu)建額外的流媒體服務(wù)器。這讓HLS技術(shù)的可靠性和部署簡潔性要遠(yuǎn)高于其他的流媒體系統(tǒng)。
一般來說,HLS流媒體系統(tǒng)的組件可分成Server、Distribution和Client三個部分。其中,Server端組件負(fù)責(zé)HLS流媒體系統(tǒng)的分段與封裝,當(dāng)用戶在觀看視頻時,Server端組件就會把文件進(jìn)行轉(zhuǎn)碼分段,使其成為適合在客戶端傳輸?shù)男∑?;Distribution組件則負(fù)責(zé)HLS流媒體系統(tǒng)的傳輸功能,它是三個架構(gòu)中和Web服務(wù)器關(guān)聯(lián)最密切的一部分,其功能依托Web服務(wù)器展開,在遵守HTTP協(xié)議的原則上向移動客戶端由Server端組件完成轉(zhuǎn)碼和分段后的文件,譬如索引文件、短視頻、相關(guān)教育資源等;Client組件則負(fù)責(zé)完成移動客戶端的流媒體請求,它會在接收到Distribution組件所傳遞的數(shù)據(jù)后將其進(jìn)行重組、播放預(yù)處理,以此保障微課內(nèi)容的正常播放。[2]
使用HLS流媒體系統(tǒng)制作微課的優(yōu)勢是顯而易見的。當(dāng)前的移動終端用戶體驗不僅包括授課內(nèi)容、價值成分、情感體驗,也包括微課的直接呈現(xiàn)方式和效果。從邏輯上看,微課的順利播放將會直接影響用戶對微課的直觀感受,也就是情感體驗。這說明微課的呈現(xiàn)方式與效果會決定微課的好與壞。傳統(tǒng)的流媒體技術(shù)沒法根據(jù)移動終端確定合適的數(shù)據(jù)碼流,不僅容易出現(xiàn)視頻卡頓的問題,還有很高的概率造成傳輸差錯、數(shù)據(jù)包丟失,致使媒體文件的畫面出現(xiàn)不連貫、幀數(shù)缺失的情況,導(dǎo)致用戶沒法享受到完整的學(xué)習(xí)體驗。
特別是當(dāng)下,我國的網(wǎng)絡(luò)用戶數(shù)量激增,通過微課完成學(xué)習(xí)任務(wù)的群體數(shù)量也越來越多,在這種情況下無線網(wǎng)絡(luò)陷入了碼流增長、鏈路不穩(wěn)定的困擾中。而HLS流媒體系統(tǒng)則可以根據(jù)網(wǎng)絡(luò)帶寬的變化及運行管理平臺的基本情況對碼率進(jìn)行動態(tài)化調(diào)整,實現(xiàn)對多種碼流的切換與支持,確保生成不同等級的獨立碼流文件,以此為使用不同網(wǎng)絡(luò)帶寬的用戶提供最佳的服務(wù)體驗。
HLS技術(shù)主要由微課采集服務(wù)器、多碼流微課服務(wù)器和Web服務(wù)器這三個部分構(gòu)成,它的所有內(nèi)容都是依靠這三者生成和分發(fā)的。HLS技術(shù)的服務(wù)器采取B/S結(jié)構(gòu),這是一種基于C/S結(jié)構(gòu)的升級系統(tǒng),它基于Internet技術(shù),通過WWW瀏覽器來實現(xiàn)數(shù)據(jù)處理,只有極少部分?jǐn)?shù)據(jù)邏輯是在前端實現(xiàn)的。因此,HLS技術(shù)可以幫助客戶端支持直播和點播功能。HLS技術(shù)在有了客戶機(jī)和數(shù)據(jù)服務(wù)器兩層體系結(jié)構(gòu)的基礎(chǔ)上,又增加了We服務(wù)器。也就是說,在B/S型結(jié)構(gòu)中擁有兩個服務(wù)器,一個是數(shù)據(jù)服務(wù)器,另一個是We服務(wù)器,其結(jié)構(gòu)也呈現(xiàn)為接口、We服務(wù)器、數(shù)據(jù)服務(wù)器三層體系。其中,第一層體系是接口。接口是實現(xiàn)用戶和系統(tǒng)連接的基礎(chǔ),也是實現(xiàn)數(shù)據(jù)雙向溝通的必要組成部分。由于B/S型結(jié)構(gòu)的目的是具備更快、更強(qiáng)、更精準(zhǔn)的數(shù)據(jù)信息處理能力,因此B/S型結(jié)構(gòu)的第一層體系與第二層體系保持緊密的關(guān)聯(lián)。B/S型結(jié)構(gòu)的第二層體系是Web服務(wù)器,它的運作原理是:當(dāng)用戶開始使用B/S型結(jié)構(gòu)的相應(yīng)程序?qū)g覽器進(jìn)行連接,執(zhí)行上網(wǎng)、數(shù)據(jù)傳輸?shù)炔僮鲿r,B/S型結(jié)構(gòu)的接口會發(fā)出服務(wù)請求,Web服務(wù)器在接收到這層請求信息之后,會對此進(jìn)行相應(yīng)的回復(fù),同時通過HTML代碼將對應(yīng)信息反饋給使用者。用戶在獲得反饋信息后,便能完成對數(shù)據(jù)信息的獲取和處理。此時,用戶能夠依靠B/S型結(jié)構(gòu)的第三層體系,也就是數(shù)據(jù)服務(wù)器對數(shù)據(jù)進(jìn)行提取和保存操作,實現(xiàn)信息處理的精準(zhǔn)化、效率化。[3]
微課采集服務(wù)器則負(fù)責(zé)具體直播行為,它會通過將實時音視頻輸入編碼器組件的方式以實現(xiàn)對音視頻文件的編碼,編碼格式為H.264/AAC格式。完成編碼之后的音視頻便會成為支持點播功能的文件形式,之后會被存儲并推送到多碼流微課服務(wù)器中進(jìn)行封裝。
多碼流微課服務(wù)器的作用則是通過封裝使文件成為符合MPEG-2標(biāo)準(zhǔn)的TS流,在依靠流分割器組件對TS流進(jìn)行分段。雖然經(jīng)歷了分段的TS流會成為獨立的文件,但彼此之間還是保持著連續(xù)性。分段是實現(xiàn)動態(tài)碼率調(diào)整的重要一步,這些經(jīng)過分割的小片段會被Web服務(wù)器所儲存。同時,原分割組件會創(chuàng)建一個索引文件,即用戶經(jīng)??吹降臄U(kuò)展名為.m3u8的文件。這個文件的作用是把已經(jīng)分段的媒體文件片段在Web服務(wù)器中的位置進(jìn)行記錄,它會隨小片段文件的增多而不斷地更新自身。于是,當(dāng)用戶觀看微課時,客戶端發(fā)出數(shù)據(jù)請求,Web服務(wù)器向后臺請求擴(kuò)展名為.m3u8的索引文件。這些文件被返回客戶端,客戶端便可以根據(jù)文件所提供的路徑引導(dǎo),將儲存于Web服務(wù)器中的TS片段流進(jìn)行有序的下載,這樣便實現(xiàn)了HLS技術(shù)的動態(tài)碼率調(diào)節(jié)功能。
要實現(xiàn)微課移動流媒體系統(tǒng),就必須對服務(wù)器端的微課流媒體系統(tǒng)加以重視。從HLS技術(shù)的架構(gòu)及組件組成可以看出,其在線下載、動態(tài)調(diào)整碼率和直播點播的功能都來自微課視頻采集服務(wù)器端,而該服務(wù)器端在處理微課直播時是依靠DirectShow技術(shù)對視頻進(jìn)行采集。DirectShow是目前HLS技術(shù)中常用的流媒體處理開發(fā)包,對現(xiàn)在常用的Mp4、ASF、Mpeg、AVI等視頻格式都能予以支持,通過DirectShow完成視頻釆集后,才能對其進(jìn)行編碼,而文件的轉(zhuǎn)碼功能則由FFmpeg完成。FFmpeg是一種采用LGPLGPL許可協(xié)議的開源程序,這使得它同時包含了視頻編解碼庫和libavcodec音頻等功能。當(dāng)進(jìn)行微課播放時,依靠FFmpeg的輪循程序,就能完成音視頻文件的編碼和封包,并存儲為.ts文件格式,之后依靠流分割器組件對TS流進(jìn)行分割生成.m3u8的索引文件,再基于HTTP與服務(wù)器進(jìn)行交互,通過向終端反饋網(wǎng)絡(luò)帶寬和系統(tǒng)資源狀況,請求m3u8索引數(shù)據(jù)和m3u8索引指向的微課視頻數(shù)據(jù),服務(wù)器端便會響應(yīng)自適應(yīng)碼流的微課視頻,由播放器封裝、解碼呈現(xiàn)給用戶,保障用戶在觀看視頻的過程中不會出現(xiàn)緩沖和卡頓等問題。
在信息技術(shù)飛速發(fā)展的當(dāng)下,用戶對流媒體的視頻服務(wù)要求也越來越高,HLS技術(shù)是在HTTP的基礎(chǔ)上進(jìn)行自適應(yīng)流媒體傳輸?shù)?,對于移動網(wǎng)絡(luò)的資源有限和帶寬不穩(wěn)定的問題可以智能地進(jìn)行感知,并適時切換碼流,為用戶提供適合自己所在網(wǎng)絡(luò)環(huán)境的最佳流式文件,從而為用戶帶去最好的用戶體驗。