• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于IPv6的視頻直播性能分析與優(yōu)化

    2019-01-09 03:12:28胡景文劉芮汐周小明宗巍陽(yáng)劉專焦敏
    中國(guó)教育網(wǎng)絡(luò) 2018年11期
    關(guān)鍵詞:客戶端編碼服務(wù)器

    文 /胡景文 劉芮汐 周小明 宗巍陽(yáng) 劉專 焦敏

    視頻直播技術(shù)是實(shí)現(xiàn)通過(guò)設(shè)備采集音視頻信息,壓縮轉(zhuǎn)碼后傳送到服務(wù)器,然后客戶端通過(guò)解碼來(lái)重現(xiàn)音視頻信息這一過(guò)程的技術(shù)。視頻直播技術(shù)目前廣泛應(yīng)用于工作、娛樂(lè)中,在教育教學(xué)領(lǐng)域的應(yīng)用發(fā)展前景尤為值得關(guān)注。在教育領(lǐng)域,遠(yuǎn)程教學(xué)、教學(xué)信息化這樣的字眼隨著新技術(shù)更新正不斷豐富。網(wǎng)絡(luò)實(shí)時(shí)交互同步教學(xué),在利用現(xiàn)代先進(jìn)通訊技術(shù)打破教育教學(xué)的地域與時(shí)間限制、緩解教育資源分布不均,縮小教育差距上發(fā)揮了有力作用。

    目前,國(guó)內(nèi)出現(xiàn)了許多在線課堂教育平臺(tái),不過(guò)他們大多都只是分享課程的課件和已經(jīng)錄制好的課程視頻,而在教學(xué)過(guò)程中和老師進(jìn)行互動(dòng)才能更好地幫助學(xué)生集中精力、理解知識(shí),從而提高學(xué)習(xí)效率。為了能更好地滿足視頻直播技術(shù)在教育以及其他方面的需求,進(jìn)一步提高視頻直播的性能就成為了一個(gè)重要的研究問(wèn)題。

    目前各大在線教學(xué)平臺(tái)均使用IPv4作為其網(wǎng)絡(luò)傳輸協(xié)議。IPv4網(wǎng)絡(luò)設(shè)計(jì)于20世紀(jì)70年代后期,互聯(lián)網(wǎng)已經(jīng)經(jīng)歷了多年的發(fā)展,IPv4的地址已經(jīng)消耗殆盡?;贗Pv6網(wǎng)絡(luò)傳輸數(shù)據(jù)與基于IPv4相比具有很多優(yōu)點(diǎn),因此將進(jìn)行基于IPv6的視頻直播性能分析與優(yōu)化。

    視頻直播技術(shù)及性能分析(以工程為例)

    所有視頻直播的過(guò)程都有異曲同工之妙。首先,視頻采集設(shè)備將景物通過(guò)鏡頭投射到圖像傳感器上,轉(zhuǎn)化為模電信號(hào),然后經(jīng)過(guò)A/D轉(zhuǎn)換,通過(guò)數(shù)字信號(hào)芯片的處理,從與計(jì)算機(jī)連接的端口(如USB接口)傳遞到計(jì)算機(jī)里,音頻設(shè)備的采集與上述過(guò)程類(lèi)似。接下來(lái),對(duì)原始的視頻和音頻數(shù)據(jù)進(jìn)行壓縮和編碼,使之體積在很大程度上變小,然后按照指定的協(xié)議格式進(jìn)行打包,通過(guò)網(wǎng)絡(luò)連接傳輸?shù)搅髅襟w服務(wù)器端。最后,客戶端通過(guò)解碼從服務(wù)器收到的數(shù)據(jù)還原視頻和音頻。[1]

    圖1 Red5流媒體工作原理

    RTMP

    RTMP協(xié)議作為一種應(yīng)用層協(xié)議,它的設(shè)計(jì)目的是解決多媒體數(shù)據(jù)流的多路復(fù)用以及其他問(wèn)題。利用RTMP協(xié)議傳輸數(shù)據(jù)時(shí),首先建立基于傳輸層協(xié)議的鏈路,然后客戶端和服務(wù)器被要求通過(guò)基于傳輸層鏈接“握手”建立鏈接,并在其上傳輸一些控制信息。存在相關(guān)命令創(chuàng)建一個(gè)流鏈接來(lái)傳輸音頻視頻數(shù)據(jù)以及控制該數(shù)據(jù)傳輸?shù)拿钚畔?。RTMP協(xié)議傳輸數(shù)據(jù)時(shí)自己將數(shù)據(jù)進(jìn)行格式化得到的數(shù)據(jù)我們稱之為消息。傳輸時(shí), 消息被發(fā)送端分成帶有不同標(biāo)記的塊,每個(gè)塊可能是一個(gè)單獨(dú)完整的消息,或是消息的一部分。接收端通過(guò)塊中的數(shù)據(jù)長(zhǎng)度、標(biāo)記和消息的長(zhǎng)度將塊還原成完整的消息。這就是信息收發(fā)的過(guò)程。[2]類(lèi)似于數(shù)據(jù)包的容器,數(shù)據(jù)可以是AMF格式或FLV格式的音視頻數(shù)據(jù),RTMP保持與終端的永久連接,允許實(shí)時(shí)通信。[3]

    Red5[4]

    Red5流媒體服務(wù)器的主要功能與Flash Media Server差不多。它不僅提供基于Flash的流媒體服務(wù),使用RTMP作為流媒體傳輸協(xié)議,而且與FMS完全兼容,支持了視頻直播應(yīng)用。Red5支持直播的功能如下,它能夠流化FLV、MP3文件,實(shí)時(shí)地錄制客戶端流并將其轉(zhuǎn)化為FLV文件,發(fā)布現(xiàn)場(chǎng)直播流。因?yàn)镽ed5是一種免費(fèi)的開(kāi)源服務(wù)器,與Flash Media Server相比具有可替代性,所以在Flash視頻網(wǎng)站、Flash直播系統(tǒng)、視頻會(huì)議系統(tǒng)等領(lǐng)域有著廣泛應(yīng)用。HTTP通信服務(wù)、rtmp通信服務(wù)也是Red5的一部分。Red5提供的rtmp通訊服務(wù)幫助實(shí)現(xiàn)了直播應(yīng)用。其架構(gòu)主要由Jetty6、Mina和Spring組成。它們分別負(fù)責(zé)HTTP的部分通信和Java Servelet的承載調(diào)度,RTMP協(xié)議的通信和實(shí)現(xiàn),兩部分的有機(jī)結(jié)合和相關(guān)調(diào)度。

    圖2 基于IPv6和IPv4直播課堂系統(tǒng)實(shí)現(xiàn)

    案例(支持IPv6及IPv4的直播課堂系統(tǒng))

    接下來(lái),以我們實(shí)現(xiàn)的一個(gè)支持IPv6及IPv4的直播課堂Web系統(tǒng)為例對(duì)視頻直播技術(shù)進(jìn)行說(shuō)明。

    1.系統(tǒng)功能

    該Web系統(tǒng)功能主要分為兩部分:教師端的功能實(shí)現(xiàn),包括就教師登錄、教師個(gè)人中心,教師開(kāi)課申請(qǐng),教師開(kāi)始直播,課程即時(shí)反饋,課程作業(yè)及公告發(fā)布等,另一部分是學(xué)生端的主要功能實(shí)現(xiàn),包括登錄及個(gè)人中心、搜索課程,申請(qǐng)聽(tīng)課,進(jìn)入聽(tīng)課,作業(yè)提交以及發(fā)表評(píng)論等功能。系統(tǒng)實(shí)現(xiàn)主要基于Java和jsp兩門(mén)語(yǔ)言,對(duì)于學(xué)生或者老師的請(qǐng)求,通過(guò)jsp提交到后臺(tái)服務(wù)器,服務(wù)器根據(jù)數(shù)據(jù)庫(kù)的和請(qǐng)求計(jì)算出結(jié)果反饋給客戶端,客戶端獲取信息后再顯示在界面上,完成動(dòng)態(tài)信息獲取的目的。

    2.視頻、音頻采集轉(zhuǎn)碼與推流的實(shí)現(xiàn)

    直播編碼的實(shí)現(xiàn):

    ActionScript采用Sorenson Spark 或 On2 VP6 編解碼器編碼的FLV文件。On2 VP6視頻編解碼器比之前使用的帶寬少,并且提供了額外的馬賽克消除濾鏡和色度去環(huán)濾鏡。

    VP6編碼器的基本原理,將很大的原始視頻編碼成很小的視頻文件,其核心就是去掉視頻文件中的冗余信息。

    VP6主要采用了H.264標(biāo)準(zhǔn),其編碼過(guò)程包含以下幾點(diǎn):

    (1) 幀內(nèi)預(yù)測(cè)編碼

    幀內(nèi)編碼主要用于減少圖片的空間冗余,在給定幀中盡可能地利用相鄰宏塊的空間相關(guān)性。

    (2) 幀間預(yù)測(cè)編碼

    幀間預(yù)測(cè)編碼通過(guò)連續(xù)幀中的時(shí)間冗余來(lái)進(jìn)行運(yùn)動(dòng)估計(jì)和補(bǔ)償。

    (3) 整數(shù)變換

    (4) 量化

    (5) 熵編碼

    ActionScript中提供了NetStream類(lèi)來(lái)進(jìn)行播放FLV文件的流,并提供了類(lèi)VP6VideoStreamSettings,可以為每一個(gè)NetSteam設(shè)置指定視頻壓縮設(shè)置,來(lái)實(shí)現(xiàn)直播編碼的實(shí)現(xiàn)。

    服務(wù)器推流及客戶端接受的實(shí)現(xiàn):

    在推流方面使用了ActionScript來(lái)處理RTMP流,ActionScript中有已經(jīng)封裝好的流文件和現(xiàn)成的接口函數(shù),可以用于直接調(diào)用。

    圖3 視頻、音頻采集轉(zhuǎn)碼與推流的實(shí)現(xiàn)

    圖4 Vp6編解碼器

    ActionScript中進(jìn)行客戶端推送RTMP:

    (1)先建立網(wǎng)絡(luò)連接,客戶端連接上流媒體服務(wù)器

    nc = new NetConnection()

    nc.connect(“rtmp://[流媒體服務(wù)器的IPv6地址]:1935/live”)

    (2)建立網(wǎng)絡(luò)流

    ns = new NetStream(nc)

    (3)添加攝像頭與音頻

    ns.attachCamera(cam) // 添加攝像頭 , 可以關(guān)于cam進(jìn)行參數(shù)設(shè)置

    ns.attachAudio(mic) // 添加音頻 , 可以關(guān)于mic 進(jìn)行參數(shù)設(shè)置

    (4)網(wǎng)絡(luò)流的上傳

    ns.publish(“直播間名”, ”live”)

    Actionscript中進(jìn)行客戶端視頻播放:

    (1) 先建立網(wǎng)絡(luò)連接,客戶端連接上流媒體服務(wù)器

    nc = new NetConnection()

    nc.connect(“rtmp://[流媒體服務(wù)器的IPv6地址]:1935/live”)

    (2) 建立網(wǎng)絡(luò)流

    ns = new NetStream(nc)

    (3) 播放網(wǎng)絡(luò)流

    ns.play(“想要觀看的直播間名”) // 即可進(jìn)行觀看

    3.IPv6網(wǎng)絡(luò)的支持

    配置IPv6環(huán)境的流媒體服務(wù)器,選取了centos系統(tǒng)和nginx服務(wù)器來(lái)進(jìn)行配置。

    關(guān)于IPv6環(huán)境的配置,對(duì)于校園網(wǎng)服務(wù)器的IPv6的DNS服務(wù)器已經(jīng)配置好,不用再配置、對(duì)于非校園網(wǎng)的服務(wù)器,則需要先配置IPv6的隧道,然后再在服務(wù)器上配置路由。

    關(guān)于流媒體服務(wù)器的搭建,檢查nginx服務(wù)器的IPv6模塊是否配置,如果沒(méi)有配置,則需要安裝IPv6模塊。

    然后配置流媒體服務(wù)器,對(duì)nginx服務(wù)器安裝rtmp module,并在配置文件中進(jìn)行以下部署,配置app:

    rtmp {

    server {

    listen 1935;

    chunk_size 4096;

    application live {

    live on;

    max_connections 1024;

    }

    application hls{

    live on;

    hls on;

    hls_path /usr/local/var/www/hls;

    hls_fragment 1s;

    }

    }

    }

    以上配置同時(shí)包含了rtmp直播協(xié)議和hls直播協(xié)議,使流媒體服務(wù)器同時(shí)支持兩者。

    通過(guò)上述步驟,我們最終能完成視頻直播應(yīng)用的搭建。

    視頻直播的性能優(yōu)化

    視頻直播的過(guò)程包括獲取音視頻數(shù)據(jù),用Vp6編碼器編碼,然后推送rtmp流到Red5流媒體服務(wù)器,客戶端接收流并用Vp6解碼,還原音視頻信息。在不同的環(huán)節(jié)都有其對(duì)應(yīng)的優(yōu)化策略,針對(duì)數(shù)據(jù)傳輸和數(shù)據(jù)編碼的環(huán)節(jié)進(jìn)行優(yōu)化。

    利用IPv6網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸

    從網(wǎng)絡(luò)傳輸方面來(lái)看,IPv6網(wǎng)絡(luò)具有諸多優(yōu)點(diǎn)。IPv6與IPv4在流媒體應(yīng)用方面進(jìn)行比較,IPv6有以下幾方面的優(yōu)越性:

    1.地址容量的問(wèn)題得以解決,優(yōu)化了地址結(jié)構(gòu),一定程度上適應(yīng)了流媒體通信大信息傳輸?shù)男枰?/p>

    2.關(guān)于服務(wù)質(zhì)量,它能根據(jù)緊急程度和服務(wù)類(lèi)別提供各類(lèi)多媒體信息的數(shù)據(jù)包優(yōu)先級(jí)信息。

    3.組播功能增強(qiáng),很多流媒體應(yīng)用都因其有了發(fā)展機(jī)會(huì)。4.采用必選的IPSec,很好地保證了網(wǎng)絡(luò)安全。

    目前,IPv6協(xié)議的基本框架已經(jīng)成熟,并且不斷地被推廣。支持IPv6網(wǎng)絡(luò),并將其用于數(shù)據(jù)傳輸,不僅提升了安全性能,并且在一定程度上保證了信息傳輸,優(yōu)化了性能。[5]

    從表1中可以看出,基于IPv6網(wǎng)絡(luò)進(jìn)行傳輸?shù)难訒r(shí)在obs推流和網(wǎng)頁(yè)flash推流的情況下均比基于IPv4網(wǎng)絡(luò)的要低,性能更優(yōu)。IPv6的數(shù)據(jù)包在同IPv4的數(shù)據(jù)包有著很大不同,其在首部新添加一個(gè)8位的業(yè)務(wù)流類(lèi)別和一個(gè)20位的流標(biāo)記。而將業(yè)務(wù)流類(lèi)別和流標(biāo)記應(yīng)用在多媒體的實(shí)時(shí)應(yīng)用中,將會(huì)大大提升多媒體應(yīng)用的服務(wù)質(zhì)量,同時(shí)也大大降低其延遲。IPv6進(jìn)行業(yè)務(wù)優(yōu)先級(jí)處理。其優(yōu)先級(jí)可以分為兩類(lèi):一是用于起始節(jié)點(diǎn)對(duì)其提供的擁塞控制的信息傳輸,二是用于在發(fā)生擁堵時(shí)不退讓的信息傳輸。其具體應(yīng)用在多媒體流的傳播上,可以通過(guò)在起始節(jié)點(diǎn)給多媒體流分配高的優(yōu)先級(jí),讓其得到優(yōu)先處理,使得多媒體流傳播速度得到提升。同一數(shù)據(jù)流的會(huì)被標(biāo)記,由于流是一個(gè)從特定起始點(diǎn)到一個(gè)特定目的地的分組序列,這些序列在傳播過(guò)程中會(huì)經(jīng)過(guò)許多路由器,同時(shí)需要這些路由器對(duì)其進(jìn)行特殊處理。在IPv6環(huán)境下,起始點(diǎn)可以對(duì)流分配一個(gè)流標(biāo)記,在經(jīng)過(guò)節(jié)點(diǎn)路由器的時(shí)候,路由器可以通過(guò)對(duì)流標(biāo)記去記住對(duì)應(yīng)的處理步驟,同時(shí)對(duì)在由對(duì)流標(biāo)記的跟蹤,直接對(duì)后面的標(biāo)記有該流標(biāo)記的數(shù)據(jù)分組實(shí)現(xiàn)直接轉(zhuǎn)發(fā),從而實(shí)現(xiàn)數(shù)據(jù)流后續(xù)分組的快速交換,節(jié)省了時(shí)間,同時(shí)提升了服務(wù)質(zhì)量。[6]

    表1 IPv4與IPv6的性能對(duì)比

    利用Vp6編解碼器進(jìn)行數(shù)據(jù)編碼

    Vp6編解碼器使用H.264視頻編碼標(biāo)準(zhǔn),它使用高效和準(zhǔn)確的運(yùn)動(dòng)估計(jì)預(yù)測(cè)方法。H.264繼承了H.263和MPEG1/2/4視頻編碼協(xié)議的優(yōu)點(diǎn),保留了變換編碼技術(shù)和運(yùn)動(dòng)補(bǔ)償,并在此基礎(chǔ)上增加了DCT整數(shù)變換,CAVLC,CABAC等新技術(shù),讓編碼算法的壓縮效率和圖像回放質(zhì)量在很大程度上得以提高。[7]基于靈活分割宏塊的運(yùn)動(dòng)矢量估計(jì)、多幀預(yù)測(cè)、幀內(nèi)預(yù)測(cè)編碼模式等多種技術(shù)特點(diǎn)決定了H.264編碼效率的高效及Vp6編解碼器的高效。

    結(jié)束語(yǔ)

    目前已經(jīng)有很多學(xué)者對(duì)編解碼技術(shù)的優(yōu)化提出了很多具體的優(yōu)化措施,現(xiàn)僅以具體事例來(lái)簡(jiǎn)單分析基于IPv6的直播技術(shù)及在傳統(tǒng)模型上的優(yōu)化。對(duì)于直播技術(shù)而言,IPv6網(wǎng)絡(luò)和編解碼技術(shù)都同等重要。IPv6網(wǎng)絡(luò)在安全和穩(wěn)定傳輸方面提供了保障,高性能的編碼技術(shù)保證了視頻流盡可能小且保證了音視頻的質(zhì)量。IPv6網(wǎng)絡(luò)的充分利用和更加高效的編解碼技術(shù)在未來(lái)會(huì)被更加重視。

    猜你喜歡
    客戶端編碼服務(wù)器
    基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達(dá)圖像配準(zhǔn)
    《全元詩(shī)》未編碼疑難字考辨十五則
    子帶編碼在圖像壓縮編碼中的應(yīng)用
    電子制作(2019年22期)2020-01-14 03:16:24
    通信控制服務(wù)器(CCS)維護(hù)終端的設(shè)計(jì)與實(shí)現(xiàn)
    Genome and healthcare
    縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
    孵化垂直頻道:新聞客戶端新策略
    基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
    得形忘意的服務(wù)器標(biāo)準(zhǔn)
    計(jì)算機(jī)網(wǎng)絡(luò)安全服務(wù)器入侵與防御
    龙川县| 尼勒克县| 仁怀市| 衡阳市| 遂宁市| 满洲里市| 台安县| 施甸县| 华安县| 通榆县| 铜川市| 凉城县| 曲阜市| 开化县| 伊吾县| 鹤岗市| 偃师市| 牙克石市| 扎赉特旗| 岢岚县| 江都市| 乌苏市| 安溪县| 灵石县| 雷山县| 新野县| 平湖市| 通化县| 金乡县| 龙井市| 平江县| 夏津县| 湖北省| 万州区| 海林市| 合水县| 平安县| 酒泉市| 新津县| 通州市| 新河县|