tft每日頭條

 > 科技

 > 流媒體開發教學

流媒體開發教學

科技 更新时间:2025-01-25 19:48:35
1. 流媒體概念

不知道你發現沒有,我們的生活正慢慢的向着“實時”發生轉變。我們獲取、分享信息,乃至日常中的衣食住行,都在變成像“自來水”那樣源源不斷“流體”服務,我們無需提前儲備,隻需實時按需取用。這個轉變依賴于科技的進步,計算機科技在曆經了文件(File)、頁面(Web)時代後,今天來到了以“流(Flows/Streams)”為單位的時代。我們的生活就在各種信息流、數據流、媒體流中節奏越來越快,速度為王,質量靠邊站。

向“流”轉變最初最典型的應用就是流媒體(Streaming Midea)技術,它指的是在網絡上采用流式傳輸技術來發布音頻、視頻以及其他多媒體文件。所謂的流式傳輸就是将音頻、視頻多媒體文件經過一定算法編碼壓縮成一個個很小的壓縮包,流媒體服務器通過特定網絡協議進行連續、實時的傳送,用戶端接收到壓縮包後由播放軟件實時解壓縮實現播放的過程。而所謂的流媒體則特指一切采用這種流失傳輸的媒體文件。

流媒體技術的出現改變了我們還未曾忘記的那種需要将整個音視頻文件下載到本地計算機才能進行觀看,為此要等上漫長時間的傳統媒體播放方式。我們今天通過互聯網看視頻、看直播、聽音樂,通過各種盒子(IPTV/OTT)看電視、聽廣播如此的方便,一鍵觀看即點即用,其背後就是有着流媒體系統的支撐。

2.流式傳輸特點

以往傳統看視頻的方式是将整個視頻文件下載到本地計算機硬盤,再通過本地播放器程序進行觀看。而流式傳輸則是将連續視音頻經壓縮編碼、數據打包後連續、實時的傳送給接收設備,用戶端在後續源源不斷的數據包到達的同時對接收到的數據進行解壓和播放。這個過程中,隻需要等待幾秒或幾十秒的啟動時間就可以正常觀看視頻了,剩餘的部分就像“水流”一樣在一邊觀看的同時一邊下載。下圖描繪了流式傳輸的過程。

流媒體開發教學(音開發從入門到出家-流媒體原理)1

在對于音視頻的傳輸分發上,我們會經常聽到HTTP漸進式、HTTP流、RTMP、RTSP、HLS、HDS、DASH、Websocket等等專業術語。對于傳輸協議後續文章會專門讨論,實際上,從傳輸方式上大緻可以分發傳統文件下載、HTTP漸進式下載、HTTP流式傳輸、實時流媒體傳輸四大類。

HTTP漸進式是指通過支持Seek,終端播放器可從沒下載完成部分中任意選取一個時間點開始播放,如此來滿足不用等整個文件下載完快速播放的需求,一般MP4和FLV格式文件支持較好,打開一個視頻拖拽到中部,短暫緩沖即可播放,點擊暫停後文件仍将被持續下載就是典型的漸進式下載,目前大型點播網站如YouTube、優酷等均采用這種方式。

HTTP流式傳輸或者HTTP流化技術,不同廠商有不同做法,但主要思路都是在服務端将媒體文件分割成一個個很小的獨立切片文件,文件分片時需要同時産生用于跟蹤切片的索引文件(描述文件),播放器再通過HTTP協議向服務端請求一個個小的媒體切片實現點播或直播的播放,我們平常聽到的HLS(Apple)、HDS(Adobe)、MSS(Microsoft) 、DASH(MPEG通用标準)均屬于HTTP流的範疇。下表總結了不同傳輸方式的特點:

流媒體開發教學(音開發從入門到出家-流媒體原理)2

3. 流媒體系統構成

流媒體文件從采集到最終播放的路徑就是一套完整的流媒體系統所需的組成部分。

從系統層面來看,編碼層負責對音視頻文件編碼壓縮(h.264/h.265/VP9/AAC等);封裝層負責對數據包進行容器封裝(flv/ts等);協議層負責網絡打包(RTMP/HTTP等);傳輸層負責網絡傳輸(socket/st等);播放層負責對圖像進行解碼顯示(FLASH/VLS/VIDEO JS等)。

從我們所熟知的産品服務層面,一套完整的流媒體系統所需的組件一般包括:

(1)編碼器:用于流媒體文件生成的編碼工具;

(2)流媒體數據;直播信号、點播文件;

(3)流媒體服務器:用于控制、傳送流媒體數據的流媒體服務器;

(4)傳輸網絡:能夠支持特定流式數據傳輸協議的傳輸網絡;

(5)多終端播放器:各操作平台用于顯示流式數據的播放器。

以上5大組件是一個流媒體系統所必須要的基本組件,随着近年來的迅猛發展,能夠承載大規模流媒體應用的内容分發網絡(CDN)也有必要納入流媒體系統的範疇了。除了這些基本系統外,大型的運營及流媒體系統還會有流媒體内容制作生産、内容管理控制、數據監控等周邊系統和中間件等。

4. 流媒體涉及技術

流媒體技術誕生的主要目的是要在目前“盡力而為”的Internet上傳輸數據量非常大的音視頻文件,所以流媒體技術最核心的就是音視頻編解碼技術和流式傳輸技術。

然而,在今天這個“體驗為王”的時代,我們需要面臨的流媒體,不論從用戶量級上還是應用場景上來說都是極為複雜的。靠堆砌幾台流媒體服務器,架個開源的OBS和播放器簡單實現功能的時代早已過去。從當下成熟的大型流媒體系統來看,要完成一個支撐高體驗大規模的流媒體系統,必要要考慮的技術層面有:

(1)雲計算基礎服務相關技術

這幾年視音頻技術、終端硬件平台、用戶需求極速增長的同時,骨幹網、跨運營商等基礎設施的建設卻明顯沒有跟上趟。這種現狀下,要實現高穩定、高并發、低延時的流媒體應用,基于雲架構的計算、網絡、存儲、CDN等底層基礎服務已經變成了必須。硬件虛拟化,網絡虛拟化能夠最大程度保障視音頻播放的穩定性;CDN内容分發網絡能夠有效應對高并發和突增流量的需求,對流媒體傳輸所有環節進行針對性優化能夠大幅降低延時;對象存儲滿足了流媒體數據的大規模存儲要求。

(2)視音頻相關技術

這個層面包括了視音頻的編/解碼、4K、VR等視音頻核心技術能力,尤其是在新形勢下移動端編碼和播放的優化。這裡面包括了對不同硬件平台、操作系統的實踐,固網移動網等不同網絡環境下的理解,以及在弱網情況下的解決方案等。另外,4K、VR、AR等新技術的發展能提升提升用戶觀看體驗,甚至引發全新應用場景;新的編碼标準如H.265等能進一步提升視音頻編碼效率,降低對網絡帶寬、CDN的消耗。

(3)場景化應用相關技術

雖說流媒體的核心隻是音視頻編解碼和流媒體傳輸,但針對當下不同垂直領域對于流媒體的應用,其中一些場景化功能需求,流媒體系統也不得不去考慮。比如秀場娛樂直播的實時錄制,實時水印,實時鑒黃;社交直播的連麥;IPTV/OTT的時移回看;現場直播的雲端導播;視頻網站的版權保護等等。

相關視頻推薦:

90分鐘搞定直播邏輯-推流-流媒體服務器-拉流|ffmpeg|webrtc|rtmp|rtsp_哔哩哔哩_bilibili

聊聊音視頻直播RTSP/RTMP推流那些坑|流媒體|c/c |ffmpeg|零聲學院_哔哩哔哩_bilibili

【免費】FFmpeg/WebRTC/RTMP/NDK/Android音視頻流媒體高級開發-學習視頻教程-騰訊課堂

需要更多ffmpeg/webrtc..音視頻流媒體開發學習資料加群812855908領取

流媒體開發教學(音開發從入門到出家-流媒體原理)3

5.流媒體的應用

(1)功能方面

流媒體技術實質上就是用流式傳輸來分發音視頻,所以從功能上來講,流媒體主要應用也就是點播和直播。

■ 點播:

音視頻的點播已經非常成熟,其業務流程一般為上傳-轉碼-編輯制作-入庫-用戶請求-網絡分發-播放。類型上可以簡單分為如下幾類:一是以優酷、愛奇藝等為代表的音視頻點播網站,特點是少量上傳海量點播;二是以監控、秀場直播錄制為代表的錄像點播,特點是海量上傳少量點播;三是以短視頻網站,特點是海量上傳海量點播。針對不同類型的點播應用,需要架構不同的流媒體系統。

需要說明的是,如前文所述目前點播大多以HTTP漸進式方式分發,或者以HLS切片方式分發(點播的HLS隻下載一次M3U8索引,後續就是.ts文件下載了),它更接近文件分發。

而我們後續文章将要着重論述的流媒體,主要是真正的實時流式傳輸,所以後續内容主要讨論的是流媒體在音視頻直播方面的應用, 這也是觀止雲團隊優勢所在。

■ 直播:

流媒體技術在音視頻直播的應用,大概可以這樣分類,一是廣電新媒體網台/IPTV直播/OTT直播為代表的以電視直播業務為主,特點是延時容忍度高,但穩定性、清晰度要求高;二是秀場/遊戲直播/體育直播/移動直播/教育直播等為代表的互動直播,特點是延時要求高;三是以視頻會議為代表的音視頻通訊業務,特點是延時要求極高,音頻質量要求高。

随着互動直播的興起和相關的技術服務市場競争加劇,流媒體直播系統對底層基礎資源服務、CDN分發網絡、視音頻技術等都提出了全新的挑戰。

(2)應用場景方面

我們研究流媒體,或許有很多人會擔心直播市場來得越快跌得越慘。其實大可不必這麼想,至少有三條比較明顯的趨勢。一是不論市場變幻莫測,看直播的總需求量目前還在低點未來很長一段時間仍是上行通道;二是目前的直播主要還是集中在娛樂領域,未來将出現更多如在線教育、電商直播等将直播作為一項工作工具的垂直領域,他們會有着明确的商業模式;三是随着更多VR這樣的新技術不斷湧現,視頻永遠會作為信息傳遞的最佳載體。所以,學點技術,吃不了太大的虧。至少,以下這些領域眼下就看得見他們對于直播的需求:

■ 在線教育

在線教育場景中主要是學生通過觀看點播、直播課程來獲取課程内容。流媒體功能除了直播信号采集、點播文件上傳、轉碼、存儲、全網分發、多終端播放六大主幹功能外,一般對版權保護要求非常高。另外,在線教育場景中,場景化功能需要也比較集中,如多分屏、課件制作、白闆等等。

在線教育直播,目前主要以新東方這類綜合培訓機構主導,未來會有更多垂直培訓組織如藝術培訓、專業技能培訓等上線直播。另外,跨國遠程學習如留學、語言類也将是未來趨勢。

■ 電子商務

目前電商的商品展示依然是圖片為主,随着天貓、聚美等上線直播,不難想象未來的電子商務産品呈現上會引入更多的視頻,尤其是互動直播的方式。這可不是噱頭,電子商務發展到今天,在攻克了消息對稱、信任、支付、物流幾項大課題後,唯一還未解決的就是遠程體驗了,互動直播無疑為遠程體驗帶來了新的曙光。

未來趨勢中,電子商務尤其要關注VR、AR、全程溯源幾方面對于流媒體技術的應用。

■ 泛娛樂

娛樂是目前點播、直播應用的紅海區域,也是将流媒體技術應用最前沿的陣地。這裡面,演藝直播、遊戲直播、美女秀場、移動社交直播、體育直播等不同特定場景對功能、技術的要求也有差異。現場大型直播需要專業編碼器等硬件設備支持,移動端尤其需要對不同機型和平台作推流和播放的适配,體育直播和遊戲直播還會涉及跨國傳輸等。

未來,泛娛樂仍将是直播增量最重要的一方面,畢竟,線下太多的娛樂都還未被搬上網絡呢。

■ 廣電

電視慢慢在轉變成IPTV/OTT/智能電視,形象一點說就是連着操作系統的顯示器,它本身就是流媒體的應用。

之後的發展中,廣電系手握資源和政策紅利,不會簡單的在互聯網點播直播的沖擊下束手就擒,在争奪“客廳娛樂”方面,廣電依然很有希望獲得主動權,所以未來,廣電系統對流媒體技術的需求還會放量增長。

■ 媒體/營銷

随着紙媒的沒落,媒體集體往線上遷移,而視頻是其中占比較大的一塊。所以,未來所有的新聞機構、營銷機構都會注重視頻的建設,由于新聞營銷都有較強的時效性,所以對直播的運用值得關注。

■ 視頻會議

即便是到今天,很多企業很多人依然沒有使用上視頻會議系統,原因就在于傳統的辦公室視頻會議系統安裝複雜,價格高昂,缺乏對移動辦公的支持等。所以,未來基于互聯網的、更輕量級、價格便宜的視頻辦公将會産生大量需求。在流媒體技術方面需要關注更高效的編解碼方式、更低的延遲、更好的音頻質量、數據更安全、對移動辦公更兼容等方面,另外,也有在線教育那樣的大量場景化需求需要考慮。

■ 視頻監控

除了我們以往熟悉的安防、交通、建築等常規監控外,智慧醫療、智慧家庭、智慧農業、景區監控等為視頻監控帶來了更多拓展的空間。未來的發展,我們除了讓監控成為物聯網的影像傳感器外,還要盡可能去讓它連上網,甚至互動起來,這裡面都需要流媒體技術去攻克難題。

6. 國内外大型流媒體系統

我們說的大型流媒體系統是指包括了完整流媒體組件,支持直播、點播應用,提供完善的開發者組件的流媒體平台。這裡面包括大型商用系統,也包括優秀的開源系統。

商用系統中,Microsoft公司的Windows Media家族、Apple公司的Quick Time家族、Real Networks公司的RealMedia家族、Adobe公司的Flash家族都提供了一整套商用流媒體系統,其中涵蓋了媒體制作工具、服務器系統、播放器軟件、流媒體傳輸、數字版權保護等在内的系列企業級和個人級産品。除了IT巨頭,還有美國Wowza Media等專注于流媒體的公司也提供完整産品,觀止雲團隊作為國内專注流媒體技術研發公司,也提供廣電級編碼器、BMS流媒體服務器、多終端播放器以及流媒體周邊系統。

開源方面,服務端早期較為出色的項目有由前暴雪核心員工領隊發起的Red 5 Media Server,live555;目前應用最廣泛的Nginx流媒體模塊Nginx-Rtmp,觀止雲團隊發起的國内優秀的專注互聯網視頻的SRS。其它還有不少開源項目,包括開源編碼工具、播放器、媒體制作工具,如大名鼎鼎的開源編碼工具ffmpeg、OBS,播放器VLC,音頻領域的Speex等等。

7.總結

流媒體技術的目标是在“盡力而為”的互聯網上更好的傳輸視音頻媒體,其最明顯的技術進步性在于通過流式傳輸協議實現了實時播放直播信号及無需等待播放點播文件。我們今天所面臨的流媒體技術應用環境難度更大,需要在新挑戰下優化與架構新一代流媒體系統。市場需求高漲的同時,由于流媒體實現環節較多、技術門檻較高、技術人才缺乏,一般垂直領域不具備獨立搭建大型流媒體系統的能力,所以流媒體技術正在基于雲架構以雲服務的形态成為第三方服務。

新環境下,我們應該多去思考能提高效率、能帶來全新應用場景的新技術。另外,技術隻是工具,面臨競争,我們更應該多去思考新的創意和内容,以及新的商業模式。

流媒體開發教學(音開發從入門到出家-流媒體原理)4

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部
暗域網

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved