国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
設(shè)計(jì)并實(shí)現(xiàn)同時(shí)支持多種視頻格式的流媒體點(diǎn)播系統(tǒng)

設(shè)計(jì)并實(shí)現(xiàn)同時(shí)支持多種視頻格式的流媒體點(diǎn)播系統(tǒng)

  我之前有篇文章介紹過(guò)如果實(shí)現(xiàn)一個(gè)C/S模式的Flv點(diǎn)播系統(tǒng),F(xiàn)lv格式簡(jiǎn)單,處理起來(lái)也比較輕松,不過(guò),實(shí)際工作中,需要點(diǎn)播的影片,豈會(huì)只有Flv這一種格式。我們常見(jiàn)的幾種視頻格式,隨便哪一個(gè)都要比Flv復(fù)雜的多,尤其是本身設(shè)計(jì)的時(shí)候就沒(méi)有考慮到要通過(guò)網(wǎng)絡(luò)觀(guān)看的格式,要實(shí)現(xiàn)點(diǎn)播,自然要比Flv難的多。當(dāng)然,你可以把所有影片都轉(zhuǎn)成Flv格式來(lái)處理,可是,當(dāng)你擁有成千上萬(wàn)部影片的時(shí)候,不但得一個(gè)個(gè)轉(zhuǎn)換,還要一個(gè)個(gè)檢查是否轉(zhuǎn)換成功、轉(zhuǎn)換質(zhì)量如何等,那工作量可不是一點(diǎn)半點(diǎn)。從這點(diǎn)考慮出發(fā),做一個(gè)支持多種視頻格式的點(diǎn)播系統(tǒng),就顯得很有必要了。

  可是,視頻格式有很多,千差萬(wàn)別,有的格式里面,描述視頻信息的字段一大堆,而有的格式里卻幾乎沒(méi)什么描述的字段,這么個(gè)情況下,怎么能把它們?nèi)嗪系揭粋€(gè)系統(tǒng)中去呢?本人不才,做了這個(gè)嘗試,目前已經(jīng)支持AVI、TSFLV、F4V格式在同一個(gè)點(diǎn)播系統(tǒng)中的播放和拖動(dòng),而且不存在拖動(dòng)后花屏的現(xiàn)象。下面我介紹一下這個(gè)點(diǎn)播系統(tǒng)的設(shè)計(jì)方案和架構(gòu)。

 

一、設(shè)計(jì)方案

  點(diǎn)播系統(tǒng),最重要的考慮因素就是“拖動(dòng)”的處理,關(guān)鍵點(diǎn)就是要在客戶(hù)端播放器“拖動(dòng)”進(jìn)度條的時(shí)候,服務(wù)器給客戶(hù)端返回以關(guān)鍵幀起始的視頻流,否則,播放器很有可能會(huì)出現(xiàn)花屏,甚至無(wú)法播放的情況。用戶(hù)不是神仙,看影片的人才不會(huì)去關(guān)注一個(gè)片子里哪些時(shí)間點(diǎn)是關(guān)鍵幀的位置,用戶(hù)拖動(dòng)進(jìn)度條的位置,是非常隨意的,而視頻并非每一秒都是關(guān)鍵幀,所以,播放器必須要把拖動(dòng)后進(jìn)度條的位置,重新定位到離它關(guān)鍵幀之處(想想看,大家平時(shí)看片,都是這種體驗(yàn)吧)。

  在點(diǎn)播系統(tǒng)中,播放器想要實(shí)現(xiàn)上面所說(shuō)的定位關(guān)鍵幀的技術(shù),就要知道影片的關(guān)鍵幀列表,可是“點(diǎn)播”嘛,視頻在服務(wù)器上,是邊下邊看的,沒(méi)法自己解析,只能讓服務(wù)器告訴它。具體的獲知方式,我覺(jué)得,可以設(shè)計(jì)成以下3種方案,這3中方案,針對(duì)AVI, TS, FLV等很多格式,都可以適用:

  1. 每次拖動(dòng)之后時(shí),先發(fā)起一個(gè)請(qǐng)求,將拖動(dòng)位置告訴服務(wù)器,由服務(wù)器返回最近關(guān)鍵幀對(duì)應(yīng)的位置,然后播放器再以這個(gè)位置發(fā)起請(qǐng)求,服務(wù)器返回?cái)?shù)據(jù),播放。

    

 

  2. 將方案1的兩個(gè)請(qǐng)求合并為1個(gè),服務(wù)器返回關(guān)鍵幀位置+數(shù)據(jù),播放器播放。

    

 

  3. 在開(kāi)始點(diǎn)播一個(gè)視頻之前,先發(fā)起一個(gè)請(qǐng)求,服務(wù)器返回所有關(guān)鍵幀的位置,拖動(dòng)時(shí),播放器先定位到關(guān)鍵幀位置,然后直接請(qǐng)求數(shù)據(jù),播放。

    

  這個(gè)系統(tǒng)中,我選擇了方案三,原因就是處理簡(jiǎn)單~~

 

二、處理邏輯

  這里,以f4v文件為例。(其中,XVideoKFrame是視頻格式解析程序,作用是讀取AVI TS等視頻,并生成關(guān)鍵幀列表。)

    

    

 

三、程序架構(gòu)

1. Client端

  相對(duì)比較簡(jiǎn)單,當(dāng)然,原因是我采用了libvlc作為播放器內(nèi)核,vlc對(duì)于播放網(wǎng)絡(luò)流的支持,恐怕是最好的,這省去了你自己寫(xiě)播放器的工作。libvlc的接口比較簡(jiǎn)單,我就直接上代碼,大家一看就明白了。

  私有成員變量:

  操作libvlc進(jìn)行播放的方法:

 

2. Server端

  點(diǎn)播Server端,就是一個(gè)比較特殊的HttpServer,“特殊”主要是指在處理拖動(dòng)的請(qǐng)求上。

    

 

四、視頻格式解析器

   XVideoKFrame,負(fù)責(zé)讀取并分析輸入的視頻格式,然后Video.kframe文件,這里面包含了關(guān)鍵幀列表和其他媒體信息,是一個(gè)非常重要的程序/模塊,點(diǎn)播系統(tǒng)的工作基礎(chǔ)。在上面的處理邏輯圖里面,我把視頻解析這部分放在了單獨(dú)的程序當(dāng)中,主要是方便平時(shí)調(diào)試和增加格式解析的代碼。當(dāng)然也可以放到Server中,在視頻文件第一次被訪(fǎng)問(wèn)時(shí),生成.kframe文件。

  目前,該解析器已經(jīng)支持AVI格式解析TS格式解析、FLV格式解析F4V格式解析,正在寫(xiě)ASF格式解析,往后也還會(huì)增加。視頻格式解析,是點(diǎn)播系統(tǒng)中工作量最大的部分之一,除了要讀取數(shù)不清的字段,還要針對(duì)不同的編碼,做不同的處理。例如TS格式,是不是H264編碼,對(duì)于關(guān)鍵幀的查找方法是完全不一樣的。我就不把所有格式的解析方法寫(xiě)出來(lái)了,將來(lái)有機(jī)會(huì)再寫(xiě)文章介紹這些格式。

    

    

 

五、效果圖 

  最后,讓大家看一下效果圖,這個(gè)是點(diǎn)播ts文件的效果

    

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++

  

HaibinDev軟件工作室。(版權(quán)所有,轉(zhuǎn)載請(qǐng)注明作者和出處~)

+++++++++++++++++++++++++++++++++++++++++++++++++++++

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
轉(zhuǎn)換視頻格式的電腦軟件有哪些,怎么使用?
網(wǎng)頁(yè)中插入視頻視(avi、mpg、rmvb、rm、ram、wmv和Flv)的方法_生活積累...
手機(jī)的“暴風(fēng)影音”—全能視頻播放器
同一視頻文件不同格式的文件大小比較
親測(cè)好用的flv轉(zhuǎn)avi方法技巧
flv轉(zhuǎn)rmvb技巧
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服