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