多媒體播放方法、裝置及終端的制作方法
【專利摘要】本發(fā)明公開了一種多媒體播放方法、裝置及終端,屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】。所述方法包括:將多媒體文件中不被圖形處理器GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式,所述格式為音頻編碼格式和文件格式中的一種或兩種;將轉(zhuǎn)碼后的所述多媒體文件發(fā)送給所述GPU,使所述GPU播放所述多媒體文件。本發(fā)明解決了多媒體文件的格式不被GPU識(shí)別時(shí),GPU不能播放該多媒體文件的問(wèn)題,達(dá)到了擴(kuò)大GPU可以播放的多媒體文件的范圍的效果。
【專利說(shuō)明】多媒體播放方法、裝置及終端
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別涉及一種多媒體播放方法、裝置及終端。
【背景技術(shù)】
[0002]多媒體文件本質(zhì)上就是容納多媒體數(shù)據(jù)的文件,它根據(jù)相關(guān)的規(guī)范將視頻、音頻以及字幕等數(shù)據(jù)封裝在一個(gè)文件內(nèi)。因此,多媒體文件的格式包含外部的文件格式以及內(nèi)層的編碼格式兩個(gè)方面,其中,文件格式是指多媒體數(shù)據(jù)的封裝方式,例如AV1、MOV、MKV,RMVB和MP4等;編碼格式是指多媒體數(shù)據(jù)自身的壓縮算法,例如H.264、VP8、MPEG-4、WMV9等都是常見的視頻編碼格式,MP3、AAC、AC-3、AMR等是常見的音頻編碼格式。并且,文件格式與編碼格式之間屬于松散的稱合關(guān)系,不必 對(duì)應(yīng)。例如MP4、MKV等文件格式可以容納不同類型的數(shù)據(jù)編碼。但是,也有少數(shù)文件格式與唯一指定的視頻或音頻編碼格式配套使用,例如RMVB、WebM等。
[0003]基于上述多媒體文件的格式,播放視頻文件主要經(jīng)過(guò)媒體分離、媒體解碼和媒體渲染這三個(gè)階段。媒體分離是通過(guò)內(nèi)部的分離器識(shí)別多媒體文件的文件格式,分離出視頻、音頻與字幕等編碼數(shù)據(jù),將其交給解碼器。媒體解碼是指解碼器對(duì)視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行解碼,得到還原的未壓縮視頻數(shù)據(jù)幀和音頻數(shù)據(jù)幀。媒體渲染是將解碼后的視頻數(shù)據(jù)幀和音頻數(shù)據(jù)幀經(jīng)由顯示設(shè)備以圖像方式展示出來(lái)。這三個(gè)步驟中,媒體解碼通常是計(jì)算消耗最多的一個(gè)步驟,遠(yuǎn)遠(yuǎn)大于分離與渲染,也大于音頻數(shù)據(jù)的處理。而手機(jī)等設(shè)備的CPU(Central Processing Unit,中央處理器)處理能力比較有限,因而在用戶使用手機(jī)等設(shè)備播放高分辨率視頻時(shí)經(jīng)常出現(xiàn)播放不流暢的情況,為了彌補(bǔ)CPU視頻播放能力的不足,大多數(shù)智能手機(jī)會(huì)內(nèi)置支持常規(guī)格式多媒體文件解碼的GPU (Graphic Processing Unit,圖形處理器)芯片,通過(guò)GPU調(diào)用多媒體播放的系統(tǒng)函數(shù)可以播放多媒體文件。
[0004]現(xiàn)有技術(shù)中,GPU獲取指定格式的多媒體文件,通過(guò)分離器分離出多媒體文件的編碼數(shù)據(jù),通過(guò)解碼器對(duì)編碼數(shù)據(jù)進(jìn)行解碼,并對(duì)解碼后的數(shù)據(jù)幀進(jìn)行播放。
[0005]在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問(wèn)題:
[0006]GPU播放的多媒體文件需要文件格式、視頻編碼格式和音頻編碼格式都滿足GPU指定的格式才行,文件格式比較固定,限制了 GPU可以播放的多媒體文件的范圍。
【發(fā)明內(nèi)容】
[0007]為了解決多媒體文件的格式不被GPU識(shí)別時(shí),GPU不能播放該多媒體文件的問(wèn)題,本發(fā)明實(shí)施例提供了一種多媒體播放方法、裝置及終端。所述技術(shù)方案如下:
[0008]第一方面,本發(fā)明實(shí)施例提供了一種多媒體播放方法,所述方法包括:
[0009]將多媒體文件中不被圖形處理器GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式,所述格式為音頻編碼格式和文件格式中的一種或兩種;
[0010]將轉(zhuǎn)碼后的所述多媒體文件發(fā)送給所述GPU,使所述GPU播放所述多媒體文件。
[0011]進(jìn)一步地,所述將多媒體文件中不被圖形處理器GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式,包括:
[0012]切割所述多媒體文件,并將當(dāng)前切割得到的文件作為當(dāng)前切片文件;
[0013]將所述當(dāng)前切片文件中不被所述GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式;
[0014]相應(yīng)的,將轉(zhuǎn)碼后的所述多媒體文件發(fā)送給所述GPU,使所述GPU播放所述多媒體文件,包括:
[0015]將轉(zhuǎn)碼后的所述當(dāng)前切片文件發(fā)送給所述GPU,使所述GPU播放所述當(dāng)前切片文件。
[0016]進(jìn)一步地,所述切割所述多媒體文件,并將當(dāng)前切割得到的文件作為當(dāng)前切片文件,包括:
[0017]確定所述多媒體文件的第一切片點(diǎn);
[0018]基于所述第一切片點(diǎn)向后定位T時(shí)長(zhǎng)的播放時(shí)刻,檢測(cè)大于或等于所述播放時(shí)刻的第一個(gè)關(guān)鍵幀,將所述第一個(gè)關(guān)鍵幀對(duì)應(yīng)的播放時(shí)刻作為第二切片點(diǎn);
[0019]將所述第一切片點(diǎn)和所述第二切片點(diǎn)之間的多媒體文件切割為所述當(dāng)前切片文件。
[0020]進(jìn)一步地,所述確定所述多媒體文件的第一切片點(diǎn),包括:
[0021]確定所述多媒體文件的起始播放時(shí)刻為所述當(dāng)前切片文件的第一切片點(diǎn);或者,
[0022]確定前一切片文件的第二切片點(diǎn)為所述當(dāng)前切片文件的第一切片點(diǎn);或者,
[0023]獲取用戶指定的播放時(shí)刻,檢測(cè)大于或等于所述指定的播放時(shí)刻的第一個(gè)關(guān)鍵幀,確定所述第一個(gè)關(guān)鍵幀對(duì)應(yīng)的播放時(shí)刻為所述當(dāng)前切片文件的第一切片點(diǎn)。
[0024]進(jìn)一步地,所述將轉(zhuǎn)碼后的所述當(dāng)前切片文件發(fā)送給所述GPU之后,還包括:
[0025]如果所述當(dāng)前切片文件的第二切片點(diǎn)不是所述多媒體文件的最后播放時(shí)刻,則基于所述第二切片點(diǎn)切割下一切片文件,并對(duì)所述下一切片文件進(jìn)行轉(zhuǎn)碼。
[0026]進(jìn)一步地,每一個(gè)切片文件對(duì)應(yīng)的T時(shí)長(zhǎng)相同或不同,且根據(jù)當(dāng)前T時(shí)長(zhǎng)切割的所述當(dāng)前切片文件的轉(zhuǎn)碼時(shí)間小于根據(jù)前一 T時(shí)長(zhǎng)切割的前一切片文件在所述GPU中的剩余播放時(shí)間。
[0027]進(jìn)一步地,所述將多媒體文件中不被圖形處理器GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式之前,還包括:
[0028]檢測(cè)所述多媒體文件中的視頻編碼格式、音頻編碼格式和文件格式是否被所述GPU識(shí)別;
[0029]若所述音頻編碼格式和/或文件格式不被所述GPU識(shí)別,則執(zhí)行將多媒體文件中不被所述GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式的步驟;
[0030]若所述視頻編碼格式不被所述GPU識(shí)別,則通過(guò)識(shí)別所述視頻編碼格式的應(yīng)用程序播放所述視頻文件。
[0031]第二方面,本發(fā)明實(shí)施例提供了一種多媒體播放裝置,所述裝置包括:
[0032]轉(zhuǎn)碼模塊,用于將多媒體文件中不被圖形處理器GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式,所述格式為音頻編碼格式和文件格式中的一種或兩種;
[0033]發(fā)送模塊,用于將轉(zhuǎn)碼后的所述多媒體文件發(fā)送給所述GPU,使所述GPU播放所述多媒體文件。
[0034]進(jìn)一步地,所述轉(zhuǎn)碼模塊包括:電于確定所述多媒體文件的起始播放時(shí)刻前一切片文件的第二切片點(diǎn)為所述當(dāng)前切改時(shí)刻,檢測(cè)大于或等于所述指定的播放時(shí)的播放時(shí)刻為所述當(dāng)前切片文件的第一切
發(fā)送模塊將轉(zhuǎn)碼后的所述當(dāng)前切片文件發(fā)二切片點(diǎn)不是所述多媒體文件的最后播放,并對(duì)所述下一切片文件進(jìn)行轉(zhuǎn)碼。
長(zhǎng)相同或不同,且根據(jù)當(dāng)前I時(shí)長(zhǎng)切割的所切割的前一切片文件在所述中的剩余
文件中不被所述識(shí)別的格式轉(zhuǎn)碼為所3的視頻編碼格式、音頻編碼格式和文件格【專利附圖】
【附圖說(shuō)明】
[0052]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0053]圖1是本發(fā)明實(shí)施例一提供的多媒體播放方法的方法流程圖;
[0054]圖2是本發(fā)明實(shí)施例二提供的多媒體播放方法的方法流程圖;
[0055]圖3是本發(fā)明實(shí)施例三提供的多媒體播放裝置的結(jié)構(gòu)示意圖;
[0056]圖4是本發(fā)明實(shí)施例四提供的多媒體播放裝置的結(jié)構(gòu)示意圖;
[0057]圖5是本發(fā)明實(shí)施例四提供的切割單元的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0058]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0059]實(shí)施例一
[0060]請(qǐng)參考圖1,其示出了本發(fā)明實(shí)施例一提供的多媒體播放方法的方法流程圖。該多媒體播放方法可以用于包含有GPU和CPU的終端中,該終端可以是智能電視、智能手機(jī)或者平板電腦等等。該多媒體播放方法,包括:
[0061 ] 步驟102:將多媒體文件中不被GPU識(shí)別的格式對(duì)應(yīng)轉(zhuǎn)碼為GPU識(shí)別的格式,該格式為音頻編碼格式和文件格式中的一種或兩種;
[0062]其中,當(dāng)多媒體文件的音頻編碼格式不被GPU識(shí)別時(shí),將該多媒體文件的音頻編碼格式轉(zhuǎn)碼為GPU識(shí)別的音頻編碼格式;當(dāng)多媒體文件的文件格式不被GPU識(shí)別時(shí),將該多媒體文件的文件格式轉(zhuǎn)碼為GPU識(shí)別的文件格式;多媒體文件的音頻編碼格式和文件格式均不被GPU識(shí)別時(shí),將該多媒體文件的音頻編碼格式和文件格式對(duì)應(yīng)轉(zhuǎn)碼為GPU識(shí)別的音頻編碼格式和文件格式。
[0063]步驟104:將轉(zhuǎn)碼后的多媒體文件發(fā)送給GPU,使GPU播放該多媒體文件。
[0064]綜上所述,本發(fā)明實(shí)施例提供的多媒體播放方法,通過(guò)將多媒體文件中不被GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式,所述格式為音頻編碼格式和文件格式中的一種或兩種;將轉(zhuǎn)碼后的所述多媒體文件發(fā)送給所述GPU,使所述GPU播放所述多媒體文件,解決了多媒體文件的格式不被GPU識(shí)別時(shí),GPU不能播放該多媒體文件的問(wèn)題,達(dá)到了擴(kuò)大GPU可以播放的多媒體文件的范圍的效果。
[0065]實(shí)施例二
[0066]請(qǐng)參考圖2,其示出了本發(fā)明實(shí)施例二提供的多媒體播放方法的方法流程圖。該多媒體播放方法可以用于包含有GPU和CPU的終端中,該終端可以是智能電視、智能手機(jī)或者平板電腦等等。該多媒體播放方法,包括:
[0067]步驟202:檢測(cè)多媒體文件中的視頻編碼格式、音頻編碼格式和文件格式是否被GPU識(shí)別;
[0068]終端對(duì)多媒體文件的文件格式進(jìn)行轉(zhuǎn)碼的資源開銷較小,適用于所有多媒體文件文件。而對(duì)多媒體文件的編碼格式進(jìn)行轉(zhuǎn)碼時(shí),CPU需要對(duì)多媒體文件進(jìn)行解碼,將解碼后的數(shù)據(jù)編碼為GPU指定編碼格式的多媒體文件,再將轉(zhuǎn)碼后的該多媒體文件發(fā)送給GPU播放。此時(shí),CPU對(duì)多媒體文件進(jìn)行編碼格式轉(zhuǎn)化的資源開銷是CPU播放該多媒體文件的2倍以上。當(dāng)多媒體文件為音頻文件時(shí),由于音頻文件的數(shù)據(jù)量相對(duì)較小,可以將音頻編碼格式轉(zhuǎn)碼為GPU指定的音頻編碼格式,通過(guò)GPU播放轉(zhuǎn)碼后的音頻文件,以節(jié)省終端的資源,提高播放性能。當(dāng)媒體文件為視頻文件時(shí),由于視頻文件的數(shù)據(jù)量較大,對(duì)視頻編碼格式進(jìn)行轉(zhuǎn)碼的資源開銷遠(yuǎn)大于CPU播放該視頻文件的資源開銷,不適合通過(guò)GPU播放該視頻文件。因此,終端需要檢測(cè)多媒體文件中的視頻編碼格式、音頻編碼格式和文件格式是否被GPU識(shí)別。
[0069]具體地,可以獲取視頻文件的元數(shù)據(jù),元數(shù)據(jù)用來(lái)描述多媒體文件的編碼格式和文件格式。
[0070]步驟204:若音頻編碼格式和/或文件格式不被GPU識(shí)別,則切割多媒體文件,并將當(dāng)前切割得到的文件作為當(dāng)前切片文件;
[0071]終端可以對(duì)多媒體文件進(jìn)行整體轉(zhuǎn)碼,此時(shí)對(duì)存儲(chǔ)空間要求較高。優(yōu)選地,終端還可以對(duì)多媒體文件進(jìn)行切割,每次轉(zhuǎn)碼切割得到的切片文件,這樣可以減少存儲(chǔ)空間。
[0072]具體地,切割多媒體文件,并將當(dāng)前切割得到的文件作為當(dāng)前切片文件,可以包括:
[0073]確定多媒體文件的第一切片點(diǎn);
[0074]基于第一切片點(diǎn)向后定位T時(shí)長(zhǎng)的播放時(shí)刻,檢測(cè)大于或等于播放時(shí)刻的第一個(gè)關(guān)鍵幀,將第一個(gè)關(guān)鍵幀對(duì)應(yīng)的播放時(shí)刻作為第二切片點(diǎn);
[0075]將第一切片點(diǎn)和第二切片點(diǎn)之間的多媒體文件切割為當(dāng)前切片文件。
[0076]當(dāng)對(duì)多媒體文件進(jìn)行切割時(shí),終端可以預(yù)先定義當(dāng)前切片文件對(duì)應(yīng)的T時(shí)長(zhǎng),基于當(dāng)前多媒體文件的第一切片點(diǎn)向后定位T時(shí)長(zhǎng)的播放時(shí)刻,判斷該播放時(shí)刻是否為關(guān)鍵幀對(duì)應(yīng)的播放時(shí)刻,如果是,將該播放時(shí)刻作為第二切片點(diǎn),將第一切片點(diǎn)與第二切片點(diǎn)之間的多媒體文件切割為當(dāng)前切片文件;如果否,檢測(cè)該播放時(shí)刻之后的第一個(gè)關(guān)鍵幀,將該第一個(gè)關(guān)鍵幀對(duì)應(yīng)的的播放時(shí)刻作為第二切片點(diǎn),將第一切片點(diǎn)與第二切片點(diǎn)之間的多媒體文件切割為當(dāng)前切片文件,以保證當(dāng)前切片文件的起始幀為關(guān)鍵幀。其中,關(guān)鍵幀為一幀畫面的原圖,保存有該畫面的實(shí)體,播放器從關(guān)鍵幀起始才能正常播放多媒體文件。
[0077]其中,每一個(gè)切片文件對(duì)應(yīng)的T相同或不同,且根據(jù)當(dāng)前T時(shí)長(zhǎng)切割的當(dāng)前切片文件的轉(zhuǎn)碼時(shí)間小于根據(jù)前一 T時(shí)長(zhǎng)切割的前一切片文件在GPU中的剩余播放時(shí)間。優(yōu)選地,還可以根據(jù)播放情況調(diào)整T時(shí)長(zhǎng)的大小。比如,剛開始對(duì)切片文件進(jìn)行轉(zhuǎn)碼時(shí),設(shè)置T較短,以保證在起始播放或者拖動(dòng)播放時(shí)轉(zhuǎn)碼時(shí)間較短。隨著播放的持續(xù)進(jìn)行,T可以適當(dāng)延長(zhǎng)。比如,如果在轉(zhuǎn)碼當(dāng)前切片文件的同時(shí)播放前一切片文件,則當(dāng)前切片文件的轉(zhuǎn)碼時(shí)間必須小于前一切片文件在GPU中的剩余播放時(shí)間,否則多媒體文件的播放會(huì)斷續(xù)。通常設(shè)置T小于3秒,即使用戶拖動(dòng)播放進(jìn)度也能快速播放用戶指定播放時(shí)刻之后的多媒體文件,不影響用戶的體驗(yàn)。
[0078]具體地,確定多媒體文件的第一切片點(diǎn),可以包括:確定多媒體文件的起始播放時(shí)刻為當(dāng)前切片文件的第一切片點(diǎn);或者,確定前一切片文件的第二切片點(diǎn)為當(dāng)前切片文件的第一切片點(diǎn);或者,獲取用戶指定的播放時(shí)刻,檢測(cè)大于或等于指定的播放時(shí)刻的第一個(gè)關(guān)鍵幀,確定第一個(gè)關(guān)鍵幀對(duì)應(yīng)的播放時(shí)刻為當(dāng)前切片文件的第一切片點(diǎn)。
[0079]如果當(dāng)前切片文件為多媒體文件的第一個(gè)切片文件,將該多媒體文件的起始播放時(shí)刻作為當(dāng)前切片文件的第一切片點(diǎn);或者,如果當(dāng)前切片文件不是多媒體文件的第一個(gè)切片文件且順序播放切片文件,將前一切片文件的第二切片點(diǎn)作為當(dāng)前切片文件的第一切片點(diǎn);或者,如果用戶拖動(dòng)多媒體文件的播放進(jìn)度,丟棄當(dāng)前正在轉(zhuǎn)碼的當(dāng)前切片文件和正在播放的前一切片文件,判斷用戶指定的播放點(diǎn)是否為關(guān)鍵幀對(duì)應(yīng)的播放時(shí)刻,如果是,將該播放時(shí)刻作為當(dāng)前切片文件的第一切片點(diǎn);如果否,將該播放時(shí)刻之后的第一個(gè)關(guān)鍵幀對(duì)應(yīng)的播放時(shí)刻作為當(dāng)前切片文件的第一切片點(diǎn)。
[0080]需要補(bǔ)充說(shuō)明的是,若視頻編碼格式不被GPU識(shí)別,則通過(guò)識(shí)別視頻編碼格式的應(yīng)用程序播放視頻文件。
[0081]步驟206:將當(dāng)前切片文件中不被GPU識(shí)別的格式轉(zhuǎn)碼為GPU識(shí)別的格式。
[0082]具體地,當(dāng)多媒體文件的音頻編碼格式不被GPU識(shí)別時(shí),將該多媒體文件的音頻編碼格式轉(zhuǎn)碼為GPU識(shí)別的音頻編碼格式;當(dāng)多媒體文件的文件格式不被GPU識(shí)別時(shí),將該多媒體文件的文件格式轉(zhuǎn)碼為GPU識(shí)別的文件格式;多媒體文件的音頻編碼格式和文件格式均不被GPU識(shí)別時(shí),將該多媒體文件的音頻編碼格式和文件格式對(duì)應(yīng)轉(zhuǎn)碼為GPU識(shí)別的音頻編碼格式和文件格式。
[0083]當(dāng)多媒體文件為視頻文件時(shí),終端可以將該文件格式轉(zhuǎn)碼為GPU指定的文件格式,比如,GPU指定的視頻編碼格式可以包括H.264、文件格式可以包括MP4,則可以將視頻編碼格式為H.264的視頻文件由Mkv格式轉(zhuǎn)碼為MP4格式。當(dāng)多媒體文件為音頻格式時(shí),終端可以將該音頻文件中不被GPU識(shí)別的格式轉(zhuǎn)碼為GPU可以識(shí)別的格式。比如,GPU指定的音頻編碼格式可以包括AAC、文件格式可以包括MP4,則可以將音頻編碼格式為AAC的音頻文件由Mkv格式轉(zhuǎn)碼為MP4格式;或者,可以將文件格式為MP4的音頻文件由AC3格式轉(zhuǎn)碼為AAC格式;或者,將音頻文件由Mkv格式轉(zhuǎn)碼為MP4格式且將AC3格式轉(zhuǎn)碼為AAC格式等。
[0084]步驟208:將轉(zhuǎn)碼后的當(dāng)前切片文件發(fā)送給GPU,使GPU播放當(dāng)前切片文件。
[0085]GPU接收到當(dāng)前切片之后,對(duì)其進(jìn)行媒體分離、媒體解碼和媒體渲染,此為現(xiàn)有技術(shù),此處不贅述。
[0086]優(yōu)選地,將轉(zhuǎn)碼后的當(dāng)前切片文件發(fā)送給GPU之后,還可以包括:
[0087]如果當(dāng)前切片文件的第二切片點(diǎn)不是多媒體文件的最后播放時(shí)刻,則基于第二切片點(diǎn)切割下一切片文件,并對(duì)下一切片文件進(jìn)行轉(zhuǎn)碼。
[0088]當(dāng)CPU對(duì)下一切片文件進(jìn)行轉(zhuǎn)碼時(shí),可以通過(guò)GPU播放當(dāng)前切片文件,當(dāng)該當(dāng)前切片文件播放完成時(shí),將下一切片文件發(fā)送給GPU進(jìn)行播放,并對(duì)下一切片文件之后的多媒體文件進(jìn)行切片和轉(zhuǎn)碼,依此類推,直至完成對(duì)多媒體文件的播放。
[0089]進(jìn)一步地,還可以以流媒體的方式獲取網(wǎng)絡(luò)上的切片文件,對(duì)該切片文件的格式進(jìn)行識(shí)別,如果該切片文件的音頻編碼格式和/或文件格式不被GPU識(shí)別,則對(duì)該切片文件進(jìn)行轉(zhuǎn)碼,并將轉(zhuǎn)碼后的切片文件發(fā)送給GPU,使GPU播放該切片文件;如果該切片文件的視頻編碼格式不被GPU識(shí)別,則通過(guò)識(shí)別該視頻編碼格式的應(yīng)用程序播放該切片文件。
[0090]綜上所述,本發(fā)明實(shí)施例提供的多媒體播放方法,通過(guò)將多媒體文件中不被圖形處理器GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式,所述格式為音頻編碼格式和文件格式中的一種或兩種;將轉(zhuǎn)碼后的所述多媒體文件發(fā)送給所述GPU,使所述GPU播放所述多媒體文件,解決了多媒體文件的格式不被GPU識(shí)別時(shí),GPU不能播放該多媒體文件的問(wèn)題,達(dá)到了擴(kuò)大GPU可以播放的多媒體文件的范圍的效果。另外,如果所述當(dāng)前切片文件的第二切片點(diǎn)不是所述多媒體文件的最后播放時(shí)刻,則通過(guò)基于所述第二切片點(diǎn)切割下一切片文件,并對(duì)所述下一切片文件進(jìn)行轉(zhuǎn)碼,可以在轉(zhuǎn)碼下一切片文件的同時(shí)播放當(dāng)前切片文件,達(dá)到提高播放效率的效果。
[0091]實(shí)施例三
[0092]請(qǐng)參考圖3,其示出了本發(fā)明實(shí)施例三提供的多媒體播放裝置的結(jié)構(gòu)方框圖。該多媒體播放方法可以用于包含有GPU和CPU的終端中,該終端可以是智能電視、智能手機(jī)或者平板電腦等等。該多媒體播放裝置,包括:轉(zhuǎn)碼模塊320和發(fā)送模塊340。
[0093]轉(zhuǎn)碼模塊320,用于將多媒體文件中不被GPU識(shí)別的格式轉(zhuǎn)碼為GPU識(shí)別的格式,所述格式為編碼格式和文件格式中的一種或兩種。
[0094]發(fā)送模塊340,用于將轉(zhuǎn)碼后的多媒體文件發(fā)送給GPU,使GPU播放該多媒體文件。
[0095]綜上所述,本發(fā)明實(shí)施例提供的多媒體播放裝置,通過(guò)將多媒體文件中不被圖形處理器GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式,所述格式為音頻編碼格式和文件格式中的一種或兩種;將轉(zhuǎn)碼后的所述多媒體文件發(fā)送給所述GPU,使所述GPU播放所述多媒體文件,解決了多媒體文件的格式不被GPU識(shí)別時(shí),GPU不能播放該多媒體文件的問(wèn)題,達(dá)到了擴(kuò)大GPU可以播放的多媒體文件的范圍的效果。
[0096]實(shí)施例四
[0097]請(qǐng)參考圖4,其示出了本發(fā)明實(shí)施例四提供的多媒體播放裝置的結(jié)構(gòu)方框圖,該多媒體播放方法可以用于包含有GPU和CPU的終端中,該終端可以是智能電視、智能手機(jī)或者平板電腦等等。該多媒體播放裝置,包括:轉(zhuǎn)碼模塊320和發(fā)送模塊340。
[0098]轉(zhuǎn)碼模塊320,用于將多媒體文件中不被GPU識(shí)別的格式轉(zhuǎn)碼為GPU識(shí)別的格式,所述格式為編碼格式和文件格式中的一種或兩種。
[0099]發(fā)送模塊340,用于將轉(zhuǎn)碼模塊320轉(zhuǎn)碼后的多媒體文件發(fā)送給GPU,使GPU播放該多媒體文件。
[0100]在本發(fā)明實(shí)施例的第一種可能的實(shí)現(xiàn)方式下,轉(zhuǎn)碼模塊320可以包括:
[0101]切割單元322,用于切割多媒體文件,并將當(dāng)前切割得到的文件作為當(dāng)前切片文件;
[0102]轉(zhuǎn)碼單元324,用于將切割單元322切割的當(dāng)前切片文件中不被GPU識(shí)別的格式轉(zhuǎn)碼為GPU識(shí)別的格式;
[0103]相應(yīng)的,發(fā)送模塊340,具體用于將轉(zhuǎn)碼后的當(dāng)前切片文件發(fā)送給GPU,使GPU播放該當(dāng)前切片文件。
[0104]請(qǐng)參考圖5,其示出了本發(fā)明實(shí)施例四提供的切割單元的結(jié)構(gòu)方框圖,在本發(fā)明實(shí)施例的第二種可能的實(shí)現(xiàn)方式下,切割單元322可以包括:
[0105]第一確定子單元420,用于確定多媒體文件的第一切片點(diǎn);
[0106]第二確定子單元440,用于基于第一確定子單元420確定的第一切片點(diǎn)向后定位T時(shí)長(zhǎng)的播放時(shí)刻,檢測(cè)大于或等于播放時(shí)刻的第一個(gè)關(guān)鍵幀,將該第一個(gè)關(guān)鍵幀對(duì)應(yīng)的播放時(shí)刻作為第二切片點(diǎn);[0107]切割子單元460,用于將第一確定子單元420確定的第一切片點(diǎn)和第二確定子單元440確定的第二切片點(diǎn)之間的多媒體文件切割為當(dāng)前切片文件。
[0108]在本發(fā)明實(shí)施例的第三種可能的實(shí)現(xiàn)方式下,第一確定子單元420,具體用于確定多媒體文件的起始播放時(shí)刻為當(dāng)前切片文件的第一切片點(diǎn);或者,確定前一切片文件的第二切片點(diǎn)為當(dāng)前切片文件的第一切片點(diǎn);或者,獲取用戶指定的播放時(shí)刻,檢測(cè)大于或等于指定的播放時(shí)刻的第一個(gè)關(guān)鍵幀,確定第一個(gè)關(guān)鍵幀對(duì)應(yīng)的播放時(shí)刻為當(dāng)前切片文件的第一切片點(diǎn)。
[0109]在本發(fā)明實(shí)施例的第四種可能的實(shí)現(xiàn)方式下,轉(zhuǎn)碼模塊320,還用于發(fā)送模塊340將轉(zhuǎn)碼后的當(dāng)前切片文件發(fā)送給GPU之后,如果當(dāng)前切片文件的第二切片點(diǎn)不是多媒體文件的最后播放時(shí)刻,則基于第二切片點(diǎn)切割下一切片文件,并對(duì)下一切片文件進(jìn)行轉(zhuǎn)碼。
[0110]在本發(fā)明實(shí)施例的第五種可能的實(shí)現(xiàn)方式下,每一個(gè)切片文件對(duì)應(yīng)的T時(shí)長(zhǎng)相同或不同,且根據(jù)當(dāng)前T時(shí)長(zhǎng)切割的所述當(dāng)前切片文件的轉(zhuǎn)碼時(shí)間小于根據(jù)前一 T時(shí)長(zhǎng)切割的前一切片文件在所述GPU中的剩余播放時(shí)間。
[0111]請(qǐng)參考圖4,在本發(fā)明實(shí)施例的第六種可能的實(shí)現(xiàn)方式下,該裝置還可以包括:
[0112]檢測(cè)模塊360,用于轉(zhuǎn)碼模塊320將多媒體文件中不被GPU識(shí)別的格式轉(zhuǎn)碼為GPU識(shí)別的格式之前,檢測(cè)所述多媒體文件中的視頻編碼格式、音頻編碼格式和文件格式是否被所述GPU識(shí)別;
[0113]轉(zhuǎn)碼模塊320,還用于若所述音頻編碼格式和/或文件格式不被所述GPU識(shí)別,則將多媒體文件中不被所述GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式;
[0114]播放模塊380,用于若所述視頻編碼格式不被所述GPU識(shí)別,則通過(guò)識(shí)別編碼格式的應(yīng)用程序播放視頻文件。
[0115]綜上所述,本發(fā)明實(shí)施例提供的多媒體播放裝置,通過(guò)將多媒體文件中不被圖形處理器GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式,所述格式為音頻編碼格式和文件格式中的一種或兩種;將轉(zhuǎn)碼后的所述多媒體文件發(fā)送給所述GPU,使所述GPU播放所述多媒體文件,解決了多媒體文件的格式不被GPU識(shí)別時(shí),GPU不能播放該多媒體文件的問(wèn)題,達(dá)到了擴(kuò)大GPU可以播放的多媒體文件的范圍的效果。另外,如果所述當(dāng)前切片文件的第二切片點(diǎn)不是所述多媒體文件的最后播放時(shí)刻,則通過(guò)基于所述第二切片點(diǎn)切割下一切片文件,并對(duì)所述下一切片文件進(jìn)行轉(zhuǎn)碼,可以在轉(zhuǎn)碼下一切片文件的同時(shí)播放當(dāng)前切片文件,達(dá)到提高播放效率的效果。
[0116]需要說(shuō)明的是:上述實(shí)施例提供的多媒體播放裝置在播放多媒體文件時(shí),僅以上述各功能模塊的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將多媒體播放裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的多媒體播放裝置與多媒體播放方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過(guò)程詳見方法實(shí)施例,這里不再贅述。
[0117]上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
[0118]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過(guò)硬件來(lái)完成,也可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
[0119]以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種多媒體播放方法,其特征在于,所述方法包括: 將多媒體文件中不被圖形處理器GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式,所述格式為音頻編碼格式和文件格式中的一種或兩種; 將轉(zhuǎn)碼后的所述多媒體文件發(fā)送給所述GPU,使所述GPU播放所述多媒體文件。
2.根據(jù)權(quán)利要求1所述的多媒體播放方法,其特征在于,所述將多媒體文件中不被圖形處理器GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式,包括: 切割所述多媒體文件,并將當(dāng)前切割得到的文件作為當(dāng)前切片文件; 將所述當(dāng)前切片文件中不被所述GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式; 相應(yīng)的,將轉(zhuǎn)碼后的所述多媒體文件發(fā)送給所述GPU,使所述GPU播放所述多媒體文件,包括: 將轉(zhuǎn)碼后的所述當(dāng)前切片文件發(fā)送給所述GPU,使所述GPU播放所述當(dāng)前切片文件。
3.根據(jù)權(quán)利要求2所述的多媒體播放方法,其特征在于,所述切割所述多媒體文件,并將當(dāng)前切割得到的文件作為當(dāng)前切片文件,包括: 確定所述多媒體文件的第一切片點(diǎn); 基于所述第一切片點(diǎn)向后定位T時(shí)長(zhǎng)的播放時(shí)刻,檢測(cè)大于或等于所述播放時(shí)刻的第一個(gè)關(guān)鍵幀,將所述第一個(gè)關(guān)鍵幀對(duì)應(yīng)的播放時(shí)刻作為第二切片點(diǎn); 將所述第一切片點(diǎn)和所述第二切片點(diǎn)之間的多媒體文件切割為所述當(dāng)前切片文件。
4.根據(jù)權(quán)利要求3所述的多媒體播放方法,其特征在于,所述確定所述多媒體文件的第一切片點(diǎn),包括: 確定所述多媒體文件的起始播放時(shí)刻為所述當(dāng)前切片文件的第一切片點(diǎn);或者, 確定前一切片文件的第二切片點(diǎn)為所述當(dāng)前切片文件的第一切片點(diǎn);或者, 獲取用戶指定的播放時(shí)刻,檢測(cè)大于或等于所述指定的播放時(shí)刻的第一個(gè)關(guān)鍵幀,確定所述第一個(gè)關(guān)鍵幀對(duì)應(yīng)的播放時(shí)刻為所述當(dāng)前切片文件的第一切片點(diǎn)。
5.根據(jù)權(quán)利要求3所述的多媒體播放方法,其特征在于,所述將轉(zhuǎn)碼后的所述當(dāng)前切片文件發(fā)送給所述GPU之后,還包括: 如果所述當(dāng)前切片文件的第二切片點(diǎn)不是所述多媒體文件的最后播放時(shí)刻,則基于所述第二切片點(diǎn)切割下一切片文件,并對(duì)所述下一切片文件進(jìn)行轉(zhuǎn)碼。
6.根據(jù)權(quán)利要求5所述的多媒體播放方法,其特征在于,每一個(gè)切片文件對(duì)應(yīng)的T時(shí)長(zhǎng)相同或不同,且根據(jù)當(dāng)前T時(shí)長(zhǎng)切割的所述當(dāng)前切片文件的轉(zhuǎn)碼時(shí)間小于根據(jù)前一 T時(shí)長(zhǎng)切割的前一切片文件在所述GPU中的剩余播放時(shí)間。
7.根據(jù)權(quán)利要求1所述的多媒體播放方法,其特征在于,所述將多媒體文件中不被圖形處理器GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式之前,還包括: 檢測(cè)所述多媒體文件中的視頻編碼格式、音頻編碼格式和文件格式是否被所述GPU識(shí)別; 若所述音頻編碼格式和/或文件格式不被所述GPU識(shí)別,則執(zhí)行將多媒體文件中不被所述GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式的步驟; 若所述視頻編碼格式不被所述GPU識(shí)別,則通過(guò)識(shí)別所述視頻編碼格式的應(yīng)用程序播放所述視頻文件。
8.一種多媒體播放裝置,其特征在于,所述裝置包括:轉(zhuǎn)碼模塊,用于將多媒體文件中不被圖形處理器GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式,所述格式為音頻編碼格式和文件格式中的一種或兩種; 發(fā)送模塊,用于將轉(zhuǎn)碼后的所述多媒體文件發(fā)送給所述GPU,使所述GPU播放所述多媒體文件。
9.根據(jù)權(quán)利要求8所述的多媒體播放裝置,其特征在于,所述轉(zhuǎn)碼模塊包括: 切割單元,用于切割所述多媒體文件,并將當(dāng)前切割得到的文件作為當(dāng)前切片文件; 轉(zhuǎn)碼單元,用于將所述當(dāng)前切片文件中不被所述GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式; 相應(yīng)的,所述發(fā)送模塊,具體用于將轉(zhuǎn)碼后的所述當(dāng)前切片文件發(fā)送給所述GPU,使所述GPU播放所述當(dāng)前切片文件。
10.根據(jù)權(quán)利要求9所述的多媒體播放裝置,其特征在于,所述切割單元包括: 第一確定子單元,用于確定所述多媒體文件的第一切片點(diǎn); 第二確定子單元,用于基于所述第一切片點(diǎn)向后定位T時(shí)長(zhǎng)的播放時(shí)刻,檢測(cè)大于或等于所述播放時(shí)刻的第一個(gè)關(guān)鍵幀,將所述第一個(gè)關(guān)鍵幀對(duì)應(yīng)的播放時(shí)刻作為第二切片占.切割子單元,用于將所述第一切片點(diǎn)和所述第二切片點(diǎn)之間的多媒體文件切割為所述當(dāng)前切片文件。
11.根據(jù)權(quán)利要求10所述的多媒體播放裝置,其特征在于,所述第一確定子單元,具體用于確定所述多媒體文件的起始播放時(shí)刻為所述當(dāng)前切片文件的第一切片點(diǎn);或者,確定前一切片文件的第二切片點(diǎn)為所述當(dāng)前切片文件的第一切片點(diǎn);或者,獲取用戶指定的播放時(shí)刻,檢測(cè)大于或等于所述指定的播放時(shí)刻的第一個(gè)關(guān)鍵幀,確定所述第一個(gè)關(guān)鍵幀對(duì)應(yīng)的播放時(shí)刻為所述當(dāng)前切片文件的第一切片點(diǎn)。
12.根據(jù)權(quán)利要求10所述的多媒體播放裝置,其特征在于,所述轉(zhuǎn)碼模塊,還用于所述發(fā)送模塊將轉(zhuǎn)碼后的所述當(dāng)前切片文件發(fā)送給所述GPU之后,如果所述當(dāng)前切片文件的第二切片點(diǎn)不是所述多媒體文件的最后播放時(shí)刻,則基于所述第二切片點(diǎn)切割下一切片文件,并對(duì)所述下一切片文件進(jìn)行轉(zhuǎn)碼。
13.根據(jù)權(quán)利要求12所述的多媒體播放裝置,其特征在于,每一個(gè)切片文件對(duì)應(yīng)的T時(shí)長(zhǎng)相同或不同,且根據(jù)當(dāng)前T時(shí)長(zhǎng)切割的所述當(dāng)前切片文件的轉(zhuǎn)碼時(shí)間小于根據(jù)前一 T時(shí)長(zhǎng)切割的前一切片文件在所述GPU中的剩余播放時(shí)間。
14.根據(jù)權(quán)利要求9所述的多媒體播放裝置,其特征在于,所述裝置還包括: 檢測(cè)模塊,用于所述轉(zhuǎn)碼模塊將多媒體文件中不被所述GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式之前,檢測(cè)所述多媒體文件中的視頻編碼格式、音頻編碼格式和文件格式是否被所述GPU識(shí)別; 所述轉(zhuǎn)碼模塊,還用于若所述音頻編碼格式和/或文件格式不被所述GPU識(shí)別,則將多媒體文件中不被所述GPU識(shí)別的格式轉(zhuǎn)碼為所述GPU識(shí)別的格式; 播放模塊,用于若所述視頻編碼格式不被所述GPU識(shí)別,則通過(guò)識(shí)別所述編碼格式的應(yīng)用程序播放所述視頻文件。
15.一種移動(dòng)終端,其特征在于,所述終端包括如權(quán)利要求8至14中任一項(xiàng)所述的多媒體播放裝置。
【文檔編號(hào)】H04N21/43GK103841451SQ201210492929
【公開日】2014年6月4日 申請(qǐng)日期:2012年11月28日 優(yōu)先權(quán)日:2012年11月28日
【發(fā)明者】胡鵬, 黃慧 申請(qǐng)人:騰訊科技(深圳)有限公司