亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Nginx技術的直播平臺

        2018-06-22 09:13:46連云港廣電傳媒集團
        視聽界(廣播電視技術) 2018年3期
        關鍵詞:服務器模塊用戶

        陸 亮 連云港廣電傳媒集團(臺)

        1.引言

        在移動互聯(lián)網(wǎng)快速發(fā)展的背景下,我國媒體融合發(fā)展已是大勢所趨。今年兩會,直播成為人民日報社新媒體中心的新亮點。人民日報社全媒體記者密切分工配合,在兩會現(xiàn)場搭建自有的直播系統(tǒng),實時提供高清直播信號,讓受眾直擊兩會現(xiàn)場。根據(jù)相關統(tǒng)計,人民日報新媒體中心共推出兩會直播48場,總觀看量超4360萬,總直播時長超50小時。直播無疑已成為媒體獲取觀看流量的主要抓手。

        直播流媒體服務架構如圖1所示,主要由推流端、拉流端、媒體服務器所示,三者由推流協(xié)議、拉流播放協(xié)議依次連接。在推、拉流協(xié)議的應用場景中,RTMP可以用在雙端,HLS只能用在拉流端。

        推流端即主播端,主要通過手機、攝像機、攝像頭采集視頻數(shù)據(jù),麥克風采集音頻數(shù)據(jù),經(jīng)過一系列前端信號采集和處理、編碼、封裝,然后推流到直播流媒體平臺,通過CDN網(wǎng)絡分發(fā),在拉流播放端的用戶可以通過多屏觀看及互動,直播流媒體服務組成如圖2所示。

        圖1 直播流媒體服務架構

        圖2 直播流媒體服務組成

        2.關鍵技術協(xié)議

        直播流媒體業(yè)務有兩種協(xié)議可供選擇:HLS 和RMTP。HLS是蘋果公司基于 HTTP 的流媒體傳輸協(xié)議,可支持流媒體的直播和點播,主要應用在iOS 系統(tǒng),為 iOS 設備(如 iPhone、iPad)提供音視頻直播和點播方案。RTMP是 Adobe Systems 公司為Flash 播放器和服務器之間音頻、視頻和數(shù)據(jù)傳輸開發(fā)的開放協(xié)議,RTMP 是一種設計用來進行實時數(shù)據(jù)通信的網(wǎng)絡協(xié)議,主要用來在 Flash/AIR 平臺和支持RTMP協(xié)議的流媒體/交互服務器之間進行音視頻和數(shù)據(jù)通信。

        2.1 HLS ( HTTP Live Streaming基于 HTTP 的流媒體傳輸協(xié)議)

        2.1.1 HLS工作原理

        當采集推流端將視頻流推送到流媒體服務器時,服務器將收到的流信息每緩存一段時間就封包成一個新的ts文件,同時在服務器建立一個m3u8的索引文件來維護最新幾個 ts 片段的索引。當播放端獲取直播時,從 m3u8 索引文件獲取最新的 ts 視頻文件片段播放,從而保證用戶在任何時候連接時都會看到較新的內容,實現(xiàn)近似直播的體驗。相對于常見的流媒體直播協(xié)議,HLS 最大的不同在于直播客戶端獲取到的并不是一個完整的數(shù)據(jù)流,而是連續(xù)的、短時長的媒體文件,客戶端不斷地下載并播放這些小文件。這種方式的理論最小延時為一個 ts 文件的時長,一般情況為 2-3 個 ts 文件的時長。HLS的分段策略,基本上推薦是 10 秒一個分片,因此,通常 HLS 直播延時會達到 20-30s,而高延時對于需要實時互動體驗的直播來說是不可接受的。HLS 基于短連接 HTTP,HTTP 是基于 TCP 的,這就意味著 HLS 需要不斷地與服務器建立連接,TCP 每次建立連接時的三次握手、慢啟動過程、斷開連接時的四次揮手都會產(chǎn)生消耗。HLS的優(yōu)點是,數(shù)據(jù)通過HTTP 協(xié)議傳輸,所以采用 HLS 時不用考慮防火墻或者代理的問題;使用短時長的分片文件來播放,客戶端可以平滑地切換碼率,以適應不同帶寬條件下的播放。

        圖3 直播協(xié)議分類

        圖4 nginx環(huán)境搭建

        2.2 RTMP(Real Time Messaging Protocol,實時消息傳送協(xié)議)

        RTMP是Adobe Systems公司為Flash播放器和服務器之間音頻、視頻和數(shù)據(jù)傳輸開發(fā)的開放協(xié)議。它有以下三種變種:

        (1)工作在TCP之上的明文協(xié)議,使用端口1935;

        (2)RTMPT封裝在HTTP請求之中,可穿越防火墻;

        (3)RTMPS類似RTMPT,但使用的是HTTPS連接;

        RTMP協(xié)議被Flash用于對象、視頻、音頻的傳輸。這個協(xié)議建立在TCP協(xié)議或者輪詢HTTP協(xié)議之上。RTMP協(xié)議就像一個用來裝數(shù)據(jù)包的容器,這些數(shù)據(jù)既可以是AMF格式的數(shù)據(jù),也可以是FLV中的視音頻數(shù)據(jù)。一個單一的連接可以通過不同的通道傳輸多路網(wǎng)絡流,這些通道中的包都是按照固定大小的包傳輸?shù)摹D3是直播協(xié)議的分類。

        3.直播平臺搭建

        近幾年,主流的開源直播軟件解決方案有Simple-RTMP-Server和nginx-rtmp-module。本文主要介紹nginx-rtmp-module,它依賴于nginx,以第三方模塊的形式提供直播功能,推流側使用RTMP協(xié)議,播放側使用HLS協(xié)議。

        3.1 Nginx

        圖5 RTMP statistics頁面

        圖6 OBS參數(shù)配置

        Nginx是一款輕量級的Web服務器/反向代理服務器及電子郵件代理服務器,并在一個BSD-like協(xié)議下發(fā)行。其特點是占有內存少,并發(fā)能力強。為了方便闡述,本文使用Windows環(huán)境下的nginx(事實上,linux環(huán)境下更能體現(xiàn)nginx的優(yōu)越性能)。我們在nginx官網(wǎng)下載nginx-1.8.1.zip,解壓在根目錄下。打開cmd命令窗口,進入nginx所在目錄,輸入啟動命令 start nginx ,在網(wǎng)頁中輸入localhost即可得nginx歡迎頁,如圖4所示,至此,nginx服務器搭建成功。

        3.2 部署nginx-rtmp-module

        通過官網(wǎng)github下載nginx-rtmp-module軟件包,解壓放置在nginx目錄下,修改conf目錄下的nginx.conf文件。這些配置參數(shù)很重要,是直播功能能否實現(xiàn)的關鍵。為此,我們給出了詳細的參數(shù)配置。worker_processes 1;

        events {

        worker_connections 8192;

        }

        rtmp {

        server{

        listen 1935; #服務端口--默認

        chunk_size 4096; #數(shù)據(jù)傳輸塊

        的大小--默認

        application vod { #設置直播的application名稱是 live

        play /opt/video/vod;

        }

        application live{

        live on; #live on表示開啟直播模式

        }

        }

        }

        http {

        include mime.types;

        default_type application/octet-stream;

        sendfile off;

        圖8 VLC拉流直播視頻

        圖9 PC端直播頁面

        圖10 移動端直播頁面

        server_names_hash_bucket_size 128;

        server {

        listen 80;

        server_name localhost;

        location /stat{

        rtmp_stat all;

        rtmp_stat_stylesheet stat.xsl;

        }

        location /stat.xsl{

        root nginx-rtmp-module/;

        }

        location / {

        root html;

        index index.html index.htm;

        }

        error_page 500 502 503 504 /50x.html;

        location = /50x.html {

        root html;

        }

        }

        }

        nginx.conf文件參數(shù)配置完成后,重啟nginx。訪問http://localhost/stat頁面,如果我們能得到圖5所示界面則配置成功。

        3.3 進行直播

        直播推流的工具有很多,諸如編碼器、推流軟件等。本文使用OBS實現(xiàn)推流功能。打開OBS配置參數(shù),如圖6 所示。圖7為OBS推流界面。

        通過VLC軟件拉流,如果可以看到直播視頻,直播服務器的搭建配置成功,如圖8所示。3.4 播放端優(yōu)化

        以上操作是從功能上完成直播拉流。目前,終端設備屏幕尺寸越來越多,不同設備的交互特質也有著巨大的差別,為了能夠快速部署以及在各種設備上都有良好的用戶體驗,我們搭建基于ThinkPHP框架的網(wǎng)站,配置PC、移動兩個模塊。在ThinkPHP框架的入口文件index.php中添加is_mobile函數(shù),用來實現(xiàn)PC端,移動端的自動切換,下文代碼用以實現(xiàn)上述功能。

        function is_mobile(){

        $user_agent = $_SERVER['HTTP_USER_AGENT'];

        $mobile_agents = Array("240x320","acer","phone","sy mbian","windows ce","zte");

        //意在說明情況,移動系統(tǒng)不做枚舉

        $is_mobile = false;

        foreach ($mobile_agents as $device) {

        //這里把值遍歷一遍,用于查找是否有上述字符串出現(xiàn)過

        if (stristr($user_agent, $device)) {

        //stristr 查找訪客端信息是否在上述數(shù)組中,不存在即為PC端

        $is_mobile = true;

        break;

        }

        }

        return $is_mobile;

        }

        //判斷

        if(is_mobile()){

        // 移動端模塊

        define('BIND_MODULE','Mobile');

        }else{

        // PC端模塊

        define('BIND_MODULE','Home');

        }}

        當用戶訪問網(wǎng)站時,系統(tǒng)根據(jù)訪問終端類型自動切換至相應的模塊,模塊調出匹配設備屏幕尺寸的網(wǎng)頁。通過這樣的機制,可以為用戶提供良好的視聽感受。

        4. CDN分發(fā)

        直播流暢效果受人數(shù)、地域、網(wǎng)絡狀況等因素影響,本地介紹的直播平臺支持最大并發(fā)數(shù)也是有限的。為了應對直播在線人數(shù)突增等諸多不穩(wěn)定因素,我們推薦使用CDN。

        CDN即Content Delivery Network (內容分發(fā)網(wǎng)絡),是一種新型網(wǎng)絡構建方式,它是為能在傳統(tǒng)的IP網(wǎng)發(fā)布寬帶豐富媒體而特別優(yōu)化的網(wǎng)絡覆蓋層。簡單地說,CDN是一個經(jīng)策略性部署的整體系統(tǒng),通過用戶就近性和服務器負載的判斷,CDN確保內容以一種極為高效的方式為用戶的請求提供服務。內容服務基于緩存服務器,它位于網(wǎng)絡的邊緣,距用戶僅有“一跳”(Single Hop)之遙。同時,代理緩存是內容提供商源服務器(通常位于CDN服務提供商的數(shù)據(jù)中心)的一個透明鏡像。這樣的架構使得CDN服務提供商能夠代表他們客戶,即內容供應商,向最終用戶提供盡可能好的體驗,為用戶提供盡可能少的網(wǎng)絡延遲服務。

        5.結束語

        網(wǎng)絡直播作為基于“互聯(lián)網(wǎng)+媒體”理念應運而生的新生事物,將互聯(lián)網(wǎng)技術運用到內容開發(fā)中來,重新樹立“內容為王”的傳播理念。網(wǎng)絡直播也使得媒體內容擁有更強的針對性、時效性、吸引力、影響力和感染力。

        猜你喜歡
        服務器模塊用戶
        28通道收發(fā)處理模塊設計
        “選修3—3”模塊的復習備考
        通信控制服務器(CCS)維護終端的設計與實現(xiàn)
        關注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        得形忘意的服務器標準
        關注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        計算機網(wǎng)絡安全服務器入侵與防御
        關注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        選修6 第三模塊 International Relationships
        如何獲取一億海外用戶
        中文字幕无线精品亚洲乱码一区| 中文字幕av无码免费一区| 一个人看的www免费视频中文| 色综合999| 一区二区三区亚洲免费| 午夜成人理论福利片| av香港经典三级级 在线| 国产精品27页| 黄片一级二级三级四级| av高清在线不卡直播| 日本牲交大片免费观看| 久久久久中文字幕精品无码免费| 激情一区二区三区视频| 亚洲最好看的中文字幕| 97人人模人人爽人人喊电影| 正在播放淫亚洲| 亚洲国产av中文字幕| 国产婷婷色一区二区三区深爱网| 粗大猛烈进出高潮视频| 欧美在线观看一区二区| 亚洲av日韩一区二三四五六七| 国产精品自线一区二区三区| 亚洲人午夜射精精品日韩| 蜜桃av在线播放视频| 免费人成网站在线观看| 精品高朝久久久久9999| 夜夜未满十八勿进的爽爽影院| 欧美乱人伦中文字幕在线不卡| 日本av一区二区三区四区| 吃奶摸下高潮60分钟免费视频| a亚洲va欧美va国产综合| 免费国产调教视频在线观看| 中文字幕乱码日本亚洲一区二区| 国产成人久久精品一区二区三区| 欧美国产亚洲日韩在线二区| 人妻中出中文字幕在线| 日韩精品人妻中文字幕有码| 国产亚洲视频在线观看网址| 一二三四中文字幕日韩乱码| 中文字幕免费人成在线网站 | 亚洲av天堂一区二区|