啊用力?嗯?轻一点原神宵宫,尿口扩张videos,国产精品久久久久精品爆乳接种 ,荡公乱妇HD电影中文字幕


微博

QQ

融媒直播間視頻直播平臺的設計與實現

2022-04-24 張磊 龍向東 湖北廣播電視臺 依馬獅視聽工場


【摘要】 網絡直播技術是這兩年最受關注的互聯網技術之一。它也是融媒體發展和建設中必將使用到的技術。出于完善和擴展湖北廣播電臺融媒體直播間現有制作、播出的功能,我們設計和建設了這個融媒體直播間視頻直播平臺。

【關鍵詞】網絡直播  流媒體  推拉流  FFmpeg  NGINX


一.引言

在推動媒體深度融合,做大做強主流輿論的目標指引下,湖北廣播電臺的融媒體直播間近期已經正式投入使用。作為傳統廣播向新媒體領域發展的重要平臺,融媒體直播間成為了大家關注和使用的熱點。為了便于對直播間的使用進行管理,提高直播間的使用效率,我們考慮需要一個對直播機房視頻節目信號實時遠程監看的系統。一來可以實時掌握當前機房的使用情況,二來可以為節目制作人員提供多種終端的節目效果預覽的信號源。所以,一個基于流媒體直播技術的融媒體直播間視頻直播平臺的設計構想應運而生。

二.需求分析

初步設想,需要實現在播出區和辦公區的任何可接入到辦公內網的地點,使用包括PC、手機、平板等可連接使用互聯網的設備對融媒直播間的多路視頻信號進行監看。具體的需求整理如下:

(1)能對融媒體直播間3個機位的拍攝畫面和一臺大洋全能機的PGM信號進行監看。
(2)在播出區和辦公區的任何可接入到辦公內網的地點都可接入平臺進行監看。
(3)平臺系統能在包括PC、手機、平板等多種智能設備上使用,實現多屏融合。
(4)兼容ios、android、Windows系統。
(5)采用輕客戶端方案,使用H5技術,可使用包括chrome、Safari、 IE等瀏覽器以及微信進行訪問。

三.技術方案

一個完整的視頻直播過程,包括采集、處理、編碼、封裝、推流、傳輸、轉碼、分發、解碼、播放等環節。每個環節使用哪種技術去實現,之間又要如何去銜接,這是我們在系統設計之初需要確定的。一方面需要研究和對比分析各種技術的相關特性,另一方面還要綜合考慮現有設備、資源、需求等因素,然后才能設計出系統的技術方案。

本系統進行直播的流程首先是通過攝像機、手機、攝像頭等設備將視頻數據經過采集、處理、編碼、封裝等操作后,再基于直播協議發送到流媒體服務端,服務端接收到數據以后暫存到本地,另一端的用戶基于直播協議,請求服務端上的視頻數據到手機、平板或者PC,經過解碼等操作后即可播放觀看。系統的組成結構如下圖1:

融媒直播間視頻直播平臺的設計與實現

依據視頻數據傳輸過程,我們可以將視頻直播平臺簡單的分為推流端、流媒體服務器、拉流端三大部分構成。

1.推流端

該項目中的推流端包括了融媒直播間的3臺松下AJ-PX298MC攝像機、大洋全能機eStudio Go以及安裝了推流APP的手機或者平板等。這些設備作為本系統的推流端,將會負責完成以下功能:

(1)采集

圖像的采集過程主要由攝像機或者手機拍攝成 YUV 編碼的原始音視頻數據。

(2)處理

通過手機APP或者大洋全能機的編導軟件,可以對采集到的視頻或者音頻原始數據增加一些例如降噪、美顏、水印等額外的效果,一般會在將其編碼壓縮前進行處理。

(3)編碼

對流媒體傳輸來說,編碼非常重要,它的編碼性能、編碼速度和編碼壓縮比會直接影響整個流媒體傳輸的用戶體驗和傳輸成本。常見的視頻編碼器有H.264/AVC、HEVC/H.265、VP8、 VP9、FFmpeg。音頻編碼器有MP3、 AAC等。

(4)封裝

把編碼器生成的多媒體內容(視頻,音頻,字幕,章節信息等)混合封裝在一起。幾種常見的封裝格式包括有:AVI格式(后綴為.avi)、DV-AVI格式(后綴為.avi)、QuickTime File Format格式(后綴為.mov)、MPEG格式(文件后綴可以是.mpg.mpeg.mpe. dat.vob.asf.3gp.mp4等)、WMV格式(后綴為.wmv.asf)、Real Video格式(后綴為.rm.rmvb)、Flash Video格式(后綴為.flv)、Matroska格式(后綴為.mkv)、MPEG2-TS格式(后綴為.ts)。

目前,我們在流媒體傳輸,尤其是直播中主要采用的就是FLV和MPEG2-TS 格式,分別用于RTMP/HTTP-FLV和HLS協議。

(5)推流

推流是指使用帶有推流功能或軟件的設備把直播內容傳輸到服務器的過程。松下的AJ-PX298MC攝像機具有RTMP直推功能,可以將廣電級專業視頻直接推送到直播平臺。大洋全能機eStudio Go同樣也具備了RTMP的推流功能,可以將PGM信號推送到流媒體服務器上。而蘋果或安卓手機在安裝了相應的直播推流APP后也可對系統的流媒體服務器進行推流。所以以上提到的包括采集、處理、編碼、封裝、推流在內的幾個流程都可以由現有軟硬件直接完成,無需再進行開發。

2.流媒體服務器

流媒體服務器在本系統中的作用主要是轉碼和分發。

(1)轉碼

視頻直播拉流端的碼率是根據推流端決定的,即拉流端的碼率在理想情況下是與推流端的碼率保持一致的。但是在實際的應用中,如果遇到網絡帶寬低于所選碼率的最低要求網絡帶寬時,就需要調整拉流端或者推流端的相應設置。如果是推流端與流媒體服務器間的網絡帶寬過低,那么將導致視頻出現卡頓的現象。需要調低推流端的拍攝分辨率和碼率。同時,如果拉流端所設置的分辨率和碼率高于推流端的設置,那么播放效果必然無法達到預期值。反之,如果是拉流端與流媒體服務器間的網絡帶寬過低,那么就需要流媒體服務器提供多種碼率的播流地址以供拉流端播放器切換使用。所以,流媒體服務器的轉碼過程可以理解為將視頻源轉換成多種碼率和分辨率的視頻數據的過程。

(2)分發

流媒體服務器的另一個作用是負責直播流的發布和轉播分發功能。根據前文所列需求,用戶能在包括PC、手機、平板等多種智能設備上使用,實現多屏融合的需求可以看出,拉流終端的設備硬件、操作系統、播放軟件都存在多種可能性。那么首先是在RTMP、RTSP以及HLS這三種常用流媒體直播協議中選擇合適的使用。它們其各自都具有不同的優缺點和適用的場景。

RTMP(Real Time Message Protocol實時信息傳輸協議)協議是由Ad o be公司提出的一種應用層的協議,用來解決多媒體數據傳輸流的多路復用(Multiplexing)和分包(packetizing)的問題。其特點是穩定性高,在PC平臺上flash播放的最穩定方式是RTMP,而且一般主流編碼器都支持該協議,使用較為方便。加上推流使用的協議也是RTMP,所以在服務器端無需進行轉換。做為本系統PC機(windows系統)拉流端的協議是合適的。

HLS(HTTP Live Streaming)是一個由蘋果公司提出的基于HTTP的流媒體網絡傳輸協議。是蘋果公司QuickTime X和iPhone軟件系統的一部分。它的工作原理是把整個流分成一個個小的基于HTTP的文件來下載,每次只下載一些。當媒體流正在播放時,客戶端可以選擇從許多不同的備用源中以不同的速率下載同樣的資源,允許流媒體會話適應不同的數據速率。在開始一個流媒體會話時,客戶端會下載一個包含元數據的extended M3U(m3u8) playlist文件,用于尋找可用的媒體流。其基于HT TP協議的特性使其在與H5技術結合后具有不錯的跨平臺特性。對于iOS和Android上的瀏覽器都可實現拉流播放。甚至在PC上亦可通過相應的插件使其支持HLS協議。當然,其延遲較長的缺點也是比較突出的。不過綜合來看,對于本系統的移動端需求而言,目前沒有更好的直播協議可以選擇;再者,本系統對于直播的延時并沒有很高的要求。所以,本系統的移動端拉流的直播協議選擇采用HLS協議。

綜合以上要素,考慮通用性、穩定性因素,流媒體服務器將使用FFmpeg+NGINX+RTMP模塊的組建方案。

FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,并能將其轉化為視頻流的開源計算機程序。FFmpeg有非常強大的功能,包括視頻采集功能、視頻格式轉換、視頻編碼、視頻抓圖、視頻加水印等。不僅可以采集視頻采集卡或USB攝像頭的圖像,還可以進行屏幕錄制,同時還支持以RTP方式將視頻流傳送給支持RTSP的流媒體服務器,支持直播應用。

Nginx是一款輕量級服務器、反向代理服務器及電子郵件代理服務器。其特點是占用內存少,并發能力強。與apache相比,其占用更少的內存及資源。nginx處理請求是異步非阻塞的,而apache則是阻塞型的,在高并發下,nginx能保持低資源低消耗高性能,用它來做hls或者rtmp流媒體服務器是非常不錯的選擇。
本系統的可使用范圍被限定于本地的辦公網,用戶數和并發量都比較有限,所以沒有做CDN的配置和部署。

3.拉流端

拉流端即用戶用來播放視頻的移動終端或PC。用戶要獲取直播視頻資源時,首先使用終端的瀏覽器或者微信APP訪問本系統的內容發布服務器。在通過身份驗證后,服務程序會返回相應的直播拉流地址與播放頁面給用戶所使用的客戶端。

因為采用了基于HT T P協議的HLS協議,HLS只請求基本的HTTP報文,與實時傳輸協議(RTP)不同, HLS可以穿過任何允許HTTP數據通過的防火墻或者代理服務器,無論是iOS還是Android系統的手機都可以支持。再加上這些年HTM5技術的不斷發展和完善,我們現在完全可以使用H5頁面來完成流媒體的播放功能,同時也實現了輕客戶端的設計。這樣既免去了用戶下載安裝APP的麻煩,也實現了一次開發,多平臺共用的便利。而對于PC端而言,在安裝了Flash 視頻播放插件后,就可以支持RTMP協議的流媒體視頻播放。如前文所提到的,這將帶來更低的直播延時。不過,對于服務器端來說,雖然PC端同樣是采用H5頁面播放的形式,但在頁面中還需要內嵌video.js播放器的方式才能完成拉流播放。Video. js是一款優秀的HTML5 Web視頻播放器。它同時支持HTM5和Flash視頻,支持在桌面和移動設備上的視頻播放,截至目前,大概有40W的站點在使用Video.js作為web播放器。

依照以上方案內容,系統架構將如下圖2所示:

融媒直播間視頻直播平臺的設計與實現

圖2

四.系統功能實現

1.流媒體服務器的安裝與配置

本系統使用的是F F m p e g+NGINX+RTMP模塊組建的流媒體服務器。雖然可以跨平臺安裝使用,但Linux在性能、安全性、易于維護、開源等方面都具有明顯的優勢。所以本系統使用了Ubuntu 18.10作為流媒體服務器的操作系統。

在安裝完NGINX、FFmpeg以及其相關依賴后,再通過配置nginx.conf文件,就可以設定需要的推流地址以及轉碼參數。本系統的部分配置內容如下圖3所示:

融媒直播間視頻直播平臺的設計與實現

圖3

文件中通過application開啟了數個直播通道并以live_加數字命名。同時,還用exec加入了命令行的執行,調用FFmpeg對原rtmp協議直播流進行分辨率和碼率重設后,作為HLS協議直播流的數據源。

2.拉流端的實現

如前文所述,因為使用了HLS協議,在移動終端的拉流播放就完全可以使用HTML5的頁面播放流媒體視頻了。這意味著我們開發的程序天然地兼容ios、android兩大手機操作系統的瀏覽器,甚至可以使用包括微信在內的支持網頁瀏覽的APP也能播放本系統的直播視頻。我們省去了在大量可能要花在重復開發個兼容性調試方面的時間。也給用戶的使用上帶來很大的便利。

融媒直播間視頻直播平臺的設計與實現

圖4

在具體開發中,我們使用了MUI框架,以求在最終效果與體驗上能最接近原生APP,同時也不會消耗終端太多性能。部分代碼如圖4所示。在代碼中只需使用<video>標簽即可調用播放插件,非常簡便。同時配合相應的js代碼實現分布加載,減少頁面空白時間。而最終的使用效果也是令人滿意的。移動端客戶端頁面及拉流播放效果如圖5所示:

融媒直播間視頻直播平臺的設計與實現

圖5

在PC端的拉流播放因為使用的是RTMP協議,需要使在網頁中內嵌Video. js來實現播放。效果如下圖6所示:

融媒直播間視頻直播平臺的設計與實現

圖6

3.手機直播推流

除了融媒直播間的攝像機和大洋全能機可以直接推流以外,目前在蘋果和安卓手機上都有免費的推流APP可以安裝使用。配合融媒體直播間的直播平臺就可以將手機的直播畫面傳回到融媒直播間的大洋全能機上了。效果下如圖7所示,其中手機采用豎屏模式拍攝。

融媒直播間視頻直播平臺的設計與實現

圖7

五.結束語

可以說網絡直播技術是這兩年最受關注的互聯網技術之一。傳統媒體要走向融合,走向互聯網,那么對網絡直播技術的應用就不可或缺。那么作為媒體技術工作者,對網絡直播技術的學習和了解無疑會對今后在融媒時代的工作有所幫助。開發組人員起初是出于完善湖北廣播電臺融媒直播間日常制作播出業務功能的目的而提出了這個融媒體直播間節目信號監看系統的開發構想。而整個開發過程也是我們對融媒相關技術的探索和實踐。B&P

網絡直播 流媒體 推拉流 FFmpeg NGINX

視聽科技視頻號 廣告
發表評論
主站蜘蛛池模板: 日本吃奶摸下激烈视频无遮挡| 妓女脱精光裸体无遮挡日BB| 大白屁股一区二区视频| 99ri国产在线观看| 一级毛片免费高清视频| 看黄网站免费| 又大又粗欧美黑人AAAAA片| eutopia动漫完整版观看| 无码人妻一区二区三区尽卡亚| ysl水蜜桃86官方官网| 欧美一区二区三区gg高清影视 | 又粗又硬又长太猛太爽受不了| 国产女人下面毛多水多| 乱炖系列| 亚洲无线一二三四区手机| 最好看的2018中文字幕小说| 催眠侵犯の奶水授乳羞羞漫画 | 国产毛片久久久久久国产毛片| 一级做a爰毛片A片 9 1免费| 91免费国产| 真实亂伦wwwhd| 韩国产理伦片在线观看| 老熟女亂伦一区二区三区| 亚洲S色大片在线观看播放| 亚洲韩国日本欧美一区二区三区| 久久久久久精品无码色情| 艳春荡女淫完整版| www久久日本无码夜色| 真人一级毛片免费播高清| 91免费精品国偷自产在线在线| 亚洲一区二区三区亚瑟| 欧美三根一起进三P| 麻豆精品国产片在线观看| 国产一级一片免费播放| www.九色视频| 欧美另类亚洲| 公交车被多人伦?好爽| 亚洲xx视频| 欧美gay巨大粗又长| 中国高清色视频www| 国产?欧美?日韩成人|