本發(fā)明涉及計算機技術領域,尤其涉及一種視頻片段的截取方法和裝置。
背景技術:
近年以來,多媒體信息技術發(fā)展快速,用戶越來越習慣于手持終端來播放視頻,當用戶在觀看視頻的過程中,對視頻的某個片段很感興趣時,用戶有從播放的視頻中截取一段視頻存儲下來的需要。而現(xiàn)有技術中存在有圖像截取的技術方案,用戶會提交截圖命令給終端,終端需要停止當前播放的視頻,并保存當前停止播放的視頻圖像,這種視頻截取方案只能夠?qū)崿F(xiàn)對視頻某個畫面的及時抓取,這顯然無法滿足用戶對視頻片段截取的需要。
為了能夠?qū)崿F(xiàn)對視頻片段的截取,中國專利申請公布號CN103747362A公開了一種截取視頻片段的方法和裝置,該專利中公開的截取視頻片段的方法包括如下步驟:接收截取開始命令,根據(jù)預設的視頻截取參數(shù),從當前播放視頻中獲取正在播放的視頻圖像;對所述獲取的視頻圖像進行截取,得到所述獲取的視頻圖像的截圖;接收截取結(jié)束命令,根據(jù)截取每張視頻圖像的順序以及所述預設的視頻截取參數(shù),將所述每張視頻圖像的截圖生成第一視頻片段?,F(xiàn)有技術中該技術方案通過截取多張視頻圖像,再按照截取視頻圖像的順序來對隊長視頻圖像進行組合,最后得到截取的視頻片段。
本發(fā)明的發(fā)明人在實現(xiàn)本發(fā)明的過程中發(fā)現(xiàn):現(xiàn)有的上述方案對多個視頻圖像的截圖合并得到截取的視頻片段,這種視頻片段的截取方法只適用于需要截取時長較短、僅由少數(shù)視頻畫面組合的視頻片段,若用戶需要截取的是時間跨度大的視頻片段時,按照上述方法就需要截圖特別多的視頻圖像,因此視頻片段的截取效率很低。另外,現(xiàn)有的上述方案中截取視頻圖像的頻率該怎樣控制也很難把握,若截取視頻圖像的頻率很低,那么組合得到的視頻片段會出現(xiàn)播放斷續(xù),若截取視頻圖像的頻率很大,那么就需要截取很多 的視頻圖像,處理起來也很復雜。
技術實現(xiàn)要素:
本發(fā)明實施例提供了一種視頻片段的截取方法和裝置,用于提高視頻片段截取的處理效率。
為解決上述技術問題,本發(fā)明實施例提供以下技術方案:
第一方面,本發(fā)明實施例提供一種視頻片段的截取方法,包括:
接收用戶通過當前播放終端發(fā)送的視頻截取指令,所述視頻截取指令包括:所述用戶確定的需要截取視頻的截取開始時間點和截取結(jié)束時間點、所述用戶在所述當前播放終端的播放界面中劃定的視頻截取區(qū)域以及所述用戶選擇的目標用途;
從播放時間為所述截取開始時間點開始,根據(jù)所述視頻截取指令獲取與當前正在播放的視頻文件中與所述視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù),直至播放時間為所述截取結(jié)束時間點為止,停止獲取與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù);
從所述截取結(jié)束時間點開始,根據(jù)所述視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼,生成從所述視頻文件中截取出的視頻片段;
根據(jù)所述目標用途將所述視頻片段輸出。
第二方面,本發(fā)明實施例還提供一種視頻片段的截取裝置,包括:
接收模塊,用于接收用戶通過當前播放終端發(fā)送的視頻截取指令,所述視頻截取指令包括:所述用戶確定的需要截取視頻的截取開始時間點和截取結(jié)束時間點、所述用戶在所述當前播放終端的播放界面中劃定的視頻截取區(qū)域以及所述用戶選擇的目標用途;
視頻數(shù)據(jù)獲取模塊,用于從播放時間為所述截取開始時間點開始,根據(jù)所述視頻截取指令獲取與當前正在播放的視頻文件中與所述視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù),直至播放時間為所述截取結(jié)束時間點為止,停止獲取與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù);
文件編碼模塊,用于從所述截取結(jié)束時間點開始,根據(jù)所述視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼,生成從所述視頻文件中截 取出的視頻片段;
視頻片段輸出模塊,用于根據(jù)所述目標用途將所述視頻片段輸出。
從以上技術方案可以看出,本發(fā)明實施例具有以下優(yōu)點:
在本發(fā)明實施例中,用戶通過當前播放終端發(fā)送視頻截取指令時,首先接收視頻截取指令,視頻截取指令中可包括截取開始時間點和截取結(jié)束時間點、用戶劃定的視頻截取區(qū)域和用戶選擇的目標用途,終端中的播放界面開始播放視頻文件后,當播放時間達到截取開始時間點之后,可以獲取與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù),在截取結(jié)束時間點還未達到之前,仍需要繼續(xù)獲取與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù),根據(jù)視頻截取指令可以獲取到多個已解碼視頻數(shù)據(jù),在截取結(jié)束時間點到達之后,根據(jù)視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼,從而可以生成從視頻文件中截取出的視頻片段,在生成截取到的視頻片段后還可以根據(jù)用戶選擇的目標用途輸出。本發(fā)明中是通過獲取正在播放的視頻文件對應的已解碼視頻數(shù)據(jù),然后再對已解碼視頻數(shù)據(jù)進行文件格式編碼的方式得到需要截取的視頻片段,而不是通過抓取多張的視頻圖像來組合得到視頻片段,本發(fā)明中即使需要截取時間跨度大的視頻片段,只需要由用戶設置截取開始時間點和截取結(jié)束時間點即可,視頻片段的截取處理效率也很高。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域的技術人員來講,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種視頻片段的截取方法的流程方框示意圖;
圖2為本發(fā)明實施例中視頻截取區(qū)域的獲取方式示意圖;
圖3為本發(fā)明實施例中一種視頻片段的截取流程示意圖;
圖4為本發(fā)明實施例提供的已解碼視頻數(shù)據(jù)的處理流程示意圖;
圖5-a為本發(fā)明實施例提供的一種終端的組成結(jié)構示意圖;
圖5-b為本發(fā)明實施例提供的一種視頻數(shù)據(jù)獲取模塊的組成結(jié)構示意圖;
圖5-c為本發(fā)明實施例提供的另一種視頻片段的截取裝置的組成結(jié)構示意圖;
圖5-d為本發(fā)明實施例提供的另一種視頻片段的截取裝置的組成結(jié)構示意圖;
圖5-e為本發(fā)明實施例提供的另一種視頻片段的截取裝置的組成結(jié)構示意圖;
圖5-f為本發(fā)明實施例提供的另一種視頻片段的截取裝置的組成結(jié)構示意圖;
圖6為本發(fā)明實施例提供的視頻片段的截取方法應用于終端的組成結(jié)構示意圖。
具體實施方式
本發(fā)明實施例提供了一種視頻片段的截取方法和裝置,用于提高視頻片段截取的處理效率。
為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,下面所描述的實施例僅僅是本發(fā)明一部分實施例,而非全部實施例?;诒景l(fā)明中的實施例,本領域的技術人員所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明的說明書和權利要求書及上述附圖中的術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,以便包含一系列單元的過程、方法、系統(tǒng)、產(chǎn)品或設備不必限于那些單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設備固有的其它單元。
以下分別進行詳細說明。
本發(fā)明視頻片段的截取方法的一個實施例,具體可以應用于視頻播放的終端中需要截取視頻片段的場景中,請參閱圖1所示,本發(fā)明一個實施例提供的視頻片段的截取方法,可以包括如下步驟:
101、接收用戶通過當前播放終端發(fā)送的視頻截取指令。
其中,視頻截取指令包括:截取開始時間點和截取結(jié)束時間點、用戶在當前播放終端的播放界面中劃定的視頻截取區(qū)域以及用戶選擇的目標用途。
在本發(fā)明實施例中,用戶在操作終端進行視頻播放時,用戶在觀看到很感謝興趣的視頻時,用戶可以操作終端上的截取視頻按鈕,從而觸發(fā)終端執(zhí)行視頻片段的截取,例如,終端的觸摸屏幕上顯示一個截取視頻按鈕,當用戶需要截取視頻時,用戶點擊觸摸屏幕上的截取視頻按鈕,用戶向終端發(fā)送一個視頻截取指令,該視頻截取指令包括用戶需要的截取開始時間點,當用戶不需要繼續(xù)截取視頻時,用戶可以再次點擊觸摸屏幕上的截取視頻按鈕,用戶可以再向終端發(fā)送一個視頻截取指令,該視頻截取指令包括用戶需要的截取結(jié)束時間點。不限制的是,在本發(fā)明實施例中,用戶直接可以確定需要截取的視頻時長,則用戶可以向終端發(fā)送一個視頻截取指令,在該視頻截取指令中包括截取開始時間點、截取結(jié)束時間點,終端可以確定從哪個時間點開始截取視頻,以及該截取多長時間段的視頻,通過截取開始時間點和截取結(jié)束時間點可以確定需要截取的視頻時長。
另外,在本發(fā)明實施例中,當用戶需要對當前播放終端的播放界面的部分畫面區(qū)域進行截取,而不需要截取整個播放界面的視頻畫面時,用戶設備可以在當前播放終端的播放界面中劃定一個視頻截取區(qū)域,那么在該視頻截取區(qū)域以外的畫面不做截取,此時用戶設備也可以在視頻截取指令中攜帶用戶從播放界面中劃定的視頻截取區(qū)域。另外,用戶通過視頻截取指令還可以選擇目標用途,以指示終端截取到視頻片段會按照特定的目標用途來輸出視頻片段,例如用戶將截取到的視頻片段存檔,或者存檔后分享到QQ空間或者微信中,目標用途指明了用戶需要輸出的視頻片段的特定用途,則本發(fā)明中視頻截取得到的視頻片段可以滿足用戶對上述目標用途的要求。
在本發(fā)明的一些實施例中,用戶發(fā)送給終端的視頻截取指令除了包括截取開始時間點、截取結(jié)束時間點、用戶劃定的視頻截取區(qū)域和用戶選擇的目標用途之外,還可以包括用戶需要指示終端的其它信息,例如,用戶可以指示終端應該輸出滿足什么樣視頻參數(shù)要求的視頻片段,即本發(fā)明中還可以進一步的對截取輸出的視頻片段按照用戶要求的視頻參數(shù)來輸出相應的視頻片段,從而可以滿足用戶對截取視頻的更多要求。
具體的,在本發(fā)明的一些實施例中,視頻截取指令還可以具體包括用戶選擇的目標文件格式,即用戶可以指示終端輸出視頻參數(shù)為目標文件格式的視頻片段,其中,文件格式是指視頻文件的文件本身的格式,例如可以是MP4、mkv等,目標文件格式指明了用戶需要輸出的特定文件格式,則本發(fā)明中視頻截取得到的視頻片段可以滿足用戶對上述目標文件格式的要求。
在本發(fā)明的一些實施例中,視頻截取指令還可以具體包括用戶選擇的目標分辨率,即用戶可以指示終端輸出視頻參數(shù)為目標分辨率的視頻片段,其中,分辨率是指視頻文件的顯示多少信息的設置,通常寬和高都以16倍數(shù)為步進單位,例如可以是即16×n(n=1,2,3,....),例如176×144,352×288等,目標分辨率指明了用戶需要輸出的特定分辨率,則本發(fā)明中視頻截取得到的視頻片段可以滿足用戶對上述目標分辨率的要求。
在本發(fā)明的一些實施例中,視頻截取指令還可以具體包括用戶選擇的目標視頻格式,即用戶可以指示終端輸出視頻參數(shù)為目標視頻格式的視頻片段,其中,視頻格式是指視頻文件的視頻內(nèi)容編碼格式,例如可以是H264等,目標視頻格式指明了用戶需要輸出的特定視頻格式,則本發(fā)明中視頻截取得到的視頻片段可以滿足用戶對上述目標視頻格式的要求。
在本發(fā)明的一些實施例中,視頻截取指令還可以具體包括用戶選擇的目標視頻質(zhì)量,即用戶可以指示終端輸出視頻參數(shù)為目標視頻質(zhì)量的視頻片段,其中,視頻質(zhì)量是指視頻文件的視頻傳輸?shù)燃壱螅梢员碚饕曨l格式的復雜度,例如將視頻質(zhì)量劃分為3個等級或者5等級,用戶可以選擇需要的目標視頻質(zhì)量為level Ⅲ,目標視頻質(zhì)量指明了用戶需要輸出的特定視頻質(zhì)量等級,則本發(fā)明中視頻截取得到的視頻片段可以滿足用戶對上述目標視頻質(zhì)量的要求。需要說明的是,在本發(fā)明中視頻質(zhì)量還可以包括視頻的其它參量,舉例說明,視頻質(zhì)量可以用于表示視頻的畫面組(gop,group of picture)中關鍵幀之間的幀數(shù)量,視頻質(zhì)量可以用于表示視頻的量化系數(shù)(qp,quantization parameter,可決定量化器的編碼壓縮率和圖像精度,視頻質(zhì)量還可以用于表示視頻的配置,例如包含baseline、main、high等主要設定指標。
在本發(fā)明的一些實施例中,視頻截取指令還可以具體包括用戶選擇的目標視頻幀率,即用戶可以指示終端輸出視頻參數(shù)為目標視頻幀率的視頻片段, 其中,視頻幀率是指視頻文件的視頻播放速率,表示每秒鐘播放多少幀畫面,例如視頻幀率可以為30fps,用戶可以選擇需要的目標視頻幀率為20fps,目標視頻幀率指明了用戶需要輸出的特定視頻幀率,則本發(fā)明中視頻截取得到的視頻片段可以滿足用戶對上述目標視頻幀率的要求。
在本發(fā)明的一些實施例中,視頻截取指令還可以具體包括用戶選擇的目標用途,即用戶可以指示終端輸出特定用途的視頻片段,其中,目標用途是指視頻文件被截取后的輸出途徑,例如可以是存檔文件或者存檔后分享,目標用途指明了用戶需要輸出的視頻片段的特定用途,則本發(fā)明中視頻截取得到的視頻片段可以滿足用戶對上述目標用途的要求。
需要說明的是,前述內(nèi)容中對本發(fā)明中終端接收到的視頻截取指令包括的各種視頻參數(shù)進行了詳細說明,可以理解的是,本發(fā)明中視頻截取指令中還可以包括上述的一種或者多種視頻參數(shù),具體需要用戶選擇哪種或者哪些種視頻參數(shù),具體可以結(jié)合應用場景來確定。
102、從播放時間為截取開始時間點開始,根據(jù)視頻截取指令獲取與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù),直至播放時間為截取結(jié)束時間點為止,停止獲取與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù)。
在本發(fā)明實施例中,終端接收到包括截取開始時間點的視頻截取指令之后,終端對終端的播放屏幕中當前播放的視頻文件進行監(jiān)測,獲取到播放時間的進度,當播放時間達到截取開始時間點時,當前正在播放的播放時間即為截取開始時間點,從這個截取開始時間點起,終端實時獲取到與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù),并且本發(fā)明中從截取開始時間點開始終端需要一直獲取與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù),在沒有接收到包含截取結(jié)束時間點的視頻截取指令之前獲取已解碼視頻數(shù)據(jù)不會停止。
其中,視頻播放的過程就是將視頻文件解碼為原始數(shù)據(jù)再顯示的過程,以截取開始時間點為標記,獲取當前正在播放的視頻文件,由于視頻文件被軟件解碼器或者硬件解碼器解碼后成為已解碼視頻數(shù)據(jù),根據(jù)解碼前后的對應關系,可以由當前正在播放的視頻文件對應找到相應的已解碼視頻數(shù)據(jù), 已解碼視頻數(shù)據(jù)通常是一種原始數(shù)據(jù)格式,由Y(亮度)、U(色度)、V(色度)三個分量組成,通常用于視頻壓縮領域,常用的是已解碼視頻數(shù)據(jù)可以是YUV420。例如,播放時間的時間軸顯示正在播放的是4分20秒的視頻文件,若終端接收到的視頻截取指令中攜帶的截取開始時間點為4分22秒,則當前播放時間的時間軸轉(zhuǎn)到4分22秒時,獲取該時刻正在播放的視頻文件對應的已解碼視頻數(shù)據(jù),并且從4分22秒開始,終端需要一直獲取當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù)。
在本發(fā)明實施例中,終端在接收到包含截取開始時間點的視頻截取指令之后,獲取已解碼視頻數(shù)據(jù)的過程從截取開始時間點開始,在沒有達到截取結(jié)束時間點的播放時間時,終端需要持續(xù)執(zhí)行獲取已解碼視頻數(shù)據(jù)的過程。當終端接收到包含截取結(jié)束時間點之后,終端監(jiān)測播放時間的時間軸,當時間軸轉(zhuǎn)到截取結(jié)束時間點時,終端不再獲取與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù)??梢岳斫獾氖?,在本發(fā)明中終端獲取到的已解碼視頻數(shù)據(jù)與播放終端中視頻文件的播放順序前后相同。
在本發(fā)明的一些實施例中,步驟102根據(jù)視頻截取指令獲取與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù),具體可以包括如下步驟:
A1、計算視頻截取區(qū)域與當前播放終端的播放界面之間的偏移位置;
A2、根據(jù)計算出的偏移位置,確定視頻截取區(qū)域與當前正在播放的視頻文件中的視頻圖像的坐標映射關系;
A3、根據(jù)坐標映射關系從當前播放終端的幀緩存中讀取到與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù)。
其中,當前播放終端的顯示屏幕上可以設置一個視頻截取框,用戶可以拖動視頻截取框,并可以對視頻截取框進行大小、長短、寬高的調(diào)整縮放,終端根據(jù)用戶對視頻截取框的調(diào)整情況獲取到用戶在播放界面中劃定的視頻截取區(qū)域,從而終端可以確定用戶需要對播放界面中哪個部分或者全部的視頻畫面進行截取。請參閱如圖2所示,為本發(fā)明實施例中視頻截取區(qū)域的獲取方式示意圖,圖2中,區(qū)域A為終端的全屏幕區(qū)域,區(qū)域B到區(qū)域C都是視頻播放區(qū)域,區(qū)域B為播放界面,區(qū)域C為用戶劃定的視頻截取區(qū)域。當 然,區(qū)域C的位置和區(qū)域大小可以由用戶拖拽視頻截取框來調(diào)整。
確定用戶劃定的視頻截取區(qū)域之后,執(zhí)行步驟A1,終端計算視頻截取區(qū)域與當前播放終端的播放界面之間的偏移位置,也就是說,終端的播放界面為矩形框,視頻截取區(qū)域為矩形框,需要計算出視頻截取區(qū)域的四個邊角相對于當前播放終端的播放界面的四個角的偏移位置,從而就可以確定出視頻截取區(qū)域與當前播放終端的播放界面之間的偏移位置。如圖2所示,視頻文件在顯示屏幕上播放時,可以是全屏幕播放,如圖2中區(qū)域A所示,也可以是非全屏幕區(qū)域,如圖2中的區(qū)域B所示。也可以是區(qū)域B到區(qū)域A的任意一個區(qū)域。不管是在什么區(qū)域,用戶都可以在視頻播放區(qū)域內(nèi)劃出一個方形區(qū)域,用來作為想要截取的視頻截取區(qū)域,根據(jù)像素位置關系可以計算出劃定區(qū)域相對于視頻播放區(qū)域的四個角的偏移位置。
獲取到視頻截取區(qū)域相對于視頻播放界面的偏移位置之后,執(zhí)行步驟A2,根據(jù)計算出的偏移位置,確定視頻截取區(qū)域與當前正在播放的視頻文件中的視頻圖像的坐標映射關系。即步驟A1中計算出的視頻截取區(qū)域相對于視頻播放界面的偏移位置,而視頻播放界面與原始的視頻圖像之間還存在縮放關系,有可能視頻播放界面與原始的視頻圖像相同,那么就是一比一的同等比例,也有可能用戶在操作終端時對原始的視頻圖像進行放大或者縮小,顯示為當前的視頻播放界面,那么就需要將計算出的視頻截取區(qū)域相對于視頻播放界面的偏移位置進行重新映射,以得到視頻截取區(qū)域與當前正在播放的視頻文件中的視頻圖像的坐標映射關系。例如如圖2所示,對于原始的視頻圖像坐標映射,因為區(qū)域B到區(qū)域C是不確定的,即視頻播放區(qū)域的尺寸與原始視頻圖像的大小不一定相等,所以在完成上述的偏移位置之后,還需要計算出該偏移位置在原始的視頻圖像中的坐標映射關系。
在本發(fā)明的一些實施例中,步驟A3根據(jù)坐標映射關系從當前播放終端的幀緩存中讀取到與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù)。其中,當前播放終端中正在播放視頻文件時,視頻文件通過軟件解碼器或者硬件解碼器已經(jīng)將視頻文件解碼為已解碼視頻數(shù)據(jù),終端從幀緩存中讀取已解碼視頻數(shù)據(jù),然后終端將讀取到的已解碼視頻數(shù)據(jù)輸出到顯示屏幕上顯示為播放界面,本發(fā)明中可以借助于幀緩存中保存的已解碼視頻數(shù)據(jù),實時的獲取從截取開始時 間點開始,各個播放時間正在播放的視頻文件對應的已解碼視頻數(shù)據(jù),獲取到正在播放的視頻文件對應的已解碼視頻數(shù)據(jù)之后,根據(jù)坐標映射關系進行比例變換,獲取到與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù),而在播放界面中視頻截取區(qū)域以外的已解碼視頻數(shù)據(jù)不在獲取的已解碼視頻范圍之內(nèi)。
需要說明的是,在本發(fā)明的一些實施例中,終端獲取當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù)還可以有其它的實現(xiàn)方式,例如首先獲取到當前正在播放的視頻文件對應的源文件,然后對源文件進行重新解碼,可以生成已解碼視頻數(shù)據(jù),根據(jù)坐標映射關系進行比例變換,獲取到與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù),按照這樣的方式也可以獲取到已解碼視頻數(shù)據(jù)。
在本發(fā)明的一些實施例中,若視頻截取指令還包括用戶選擇的目標分辨率,步驟103從截取結(jié)束時間點開始,根據(jù)視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼之前,本發(fā)明提供的視頻片段的截取方法還可以包括如下步驟:
B1、判斷獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件中視頻圖像的原分辨率與目標分辨率是否相同;
B2、若原分辨率和目標分辨率不相同,對獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件中視頻圖像的分辨率進行轉(zhuǎn)換,得到包含目標分辨率的獲取到的已解碼視頻數(shù)據(jù)。
其中,在步驟102獲取到已解碼視頻數(shù)據(jù)之后,若終端接收到的視頻截取指令中還包括目標分辨率,則說明用戶需要指定截取到的視頻片段的分辨率,終端可以首先從視頻文件的文件頭信息中獲取到視頻圖像的原分辨率,視頻文件中視頻圖像的原分辨率為終端的顯示屏幕中播放的視頻文件被播放時顯示的分辨率,若用戶對視頻文件中視頻圖像的原分辨率需要調(diào)整,終端的顯示屏幕上可以顯示分辨率調(diào)整菜單,由用戶來指定截取到的視頻片段的分辨率(即視頻截取指令中攜帶的目標分辨率),得到視頻文件中視頻圖像的原分辨率之后,判斷目標分辨率與原分辨率是否相同,若目標分辨率和原分辨率相同,則無需再進行分辨率的轉(zhuǎn)換,若目標分辨率和原分辨率不相同,則需要對分辨率進行轉(zhuǎn)換,具體的,可以調(diào)用第三方庫(例如ffmpeg)來實 現(xiàn)分辨率的轉(zhuǎn)換,得到包含目標分辨率的獲取到的已解碼視頻數(shù)據(jù),則后續(xù)步驟103中進行文件格式編碼的就是此處描述的包含目標分辨率的獲取到的已解碼視頻數(shù)據(jù),即步驟103中所述獲取到的已解碼視頻數(shù)據(jù)具體為包含目標分辨率的獲取到的已解碼視頻數(shù)據(jù)。
在本發(fā)明的一些實施例中,若視頻截取指令還包括用戶選擇的目標分辨率,在前述執(zhí)行了步驟A1至A3的應用場景下,步驟103從截取結(jié)束時間點開始,根據(jù)視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼之前,本發(fā)明提供的視頻片段的截取方法還可以包括如下步驟:
C1、使用坐標映射關系和獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件中視頻圖像的原分辨率計算出分辨率映射值;
C2、判斷分辨率映射值與目標分辨率是否相同;
C3、若分辨率映射值與目標分辨率不相同,對獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件中視頻圖像進行縮放處理,得到縮放后的獲取到的已解碼視頻數(shù)據(jù)。
其中,在步驟102獲取到已解碼視頻數(shù)據(jù)之后,若終端接收到的視頻截取指令中還包括目標分辨率,則說明用戶需要指定截取到的視頻片段的分辨率,終端可以首先從視頻文件的文件頭信息中獲取到視頻圖像的原分辨率,視頻文件中視頻圖像的原分辨率為終端的顯示屏幕中播放的視頻文件被播放時顯示的分辨率,若用戶對視頻文件中視頻圖像的原分辨率需要調(diào)整,終端的顯示屏幕上可以顯示分辨率調(diào)整菜單,由用戶來指定截取到的視頻片段的分辨率(即視頻截取指令中攜帶的目標分辨率),得到視頻文件中視頻圖像的原分辨率之后,結(jié)合前述執(zhí)行步驟A1至A3的應用場景,用戶對原始視頻圖像進行了調(diào)整,則可以按照上述步驟A1至A3來生成坐標映射關系,即視頻截取區(qū)域與當前正在播放的視頻文件中的視頻圖像的坐標映射關系,結(jié)合該坐標映射關系和原分辨率計算出分辨率映射值,然后判斷目標分辨率與分辨率映射值是否相同,若目標分辨率和分辨率映射值相同,則無需對視頻文件中視頻圖像進行縮放,若目標分辨率和分辨率映射值不相同,則需要對視頻文件中視頻圖像進行縮放,具體的,可以調(diào)用第三方庫(例如ffmpeg)來實現(xiàn)視頻圖像的縮放處理,得到縮放后的獲取到的已解碼視頻數(shù)據(jù),則后續(xù)步 驟103中進行文件格式編碼的就是此處描述的縮放后的獲取到的已解碼視頻數(shù)據(jù),即步驟103中所述獲取到的已解碼視頻數(shù)據(jù)具體為縮放后的獲取到的已解碼視頻數(shù)據(jù)。
在本發(fā)明的一些實施例中,若視頻截取指令還包括用戶選擇的目標視頻格式,步驟103從截取結(jié)束時間點開始,根據(jù)視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼之前,本發(fā)明提供的視頻片段的截取方法還可以包括如下步驟:
D1、判斷獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件的原視頻格式與目標視頻格式是否相同;
D2、若原視頻格式和目標視頻格式不相同,對獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件的視頻格式進行轉(zhuǎn)換,得到包含目標視頻格式的獲取到的已解碼視頻數(shù)據(jù)。
其中,在步驟102獲取到已解碼視頻數(shù)據(jù)之后,若終端接收到的視頻截取指令中還包括目標視頻格式,則說明用戶需要指定截取到的視頻片段的視頻格式,終端可以首先從視頻文件的文件頭信息中獲取到視頻圖像的原視頻格式,視頻文件中視頻圖像的原視頻格式為終端的顯示屏幕中播放的視頻文件被播放時的視頻格式,若用戶對視頻文件中視頻圖像的原視頻格式需要調(diào)整,終端的顯示屏幕上可以顯示視頻格式調(diào)整菜單,由用戶來指定截取到的視頻片段的視頻格式(即視頻截取指令中攜帶的目標視頻格式),得到視頻文件中視頻圖像的原視頻格式之后,判斷目標視頻格式與原視頻格式是否相同,若目標視頻格式和原視頻格式相同,則無需再進行視頻格式的轉(zhuǎn)換,若目標視頻格式和原視頻格式不相同,則需要對視頻格式進行轉(zhuǎn)換,具體的,可以調(diào)用第三方庫(例如ffmpeg)來實現(xiàn)視頻格式的轉(zhuǎn)換,得到包含目標視頻格式的獲取到的已解碼視頻數(shù)據(jù),則后續(xù)步驟103中進行文件格式編碼的就是此處描述的包含目標視頻格式的獲取到的已解碼視頻數(shù)據(jù),即步驟103中所述獲取到的已解碼視頻數(shù)據(jù)具體為包含目標視頻格式的獲取到的已解碼視頻數(shù)據(jù)。
在本發(fā)明的一些實施例中,若視頻截取指令還包括用戶選擇的目標視頻質(zhì)量,步驟103從截取結(jié)束時間點開始,根據(jù)視頻截取指令對獲取到的已解 碼視頻數(shù)據(jù)進行文件格式編碼之前,本發(fā)明提供的視頻片段的截取方法還可以包括如下步驟:
E1、判斷獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件的原視頻質(zhì)量與目標視頻質(zhì)量是否相同;
E2、若原視頻質(zhì)量和目標視頻質(zhì)量不相同,對獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件的視頻質(zhì)量進行調(diào)整,得到包含目標視頻質(zhì)量的獲取到的已解碼視頻數(shù)據(jù)。
其中,在步驟102獲取到已解碼視頻數(shù)據(jù)之后,若終端接收到的視頻截取指令中還包括目標視頻質(zhì)量,則說明用戶需要指定截取到的視頻片段的視頻質(zhì)量,終端可以首先從視頻文件的文件頭信息中獲取到視頻圖像的原視頻質(zhì)量,視頻文件中視頻圖像的原視頻質(zhì)量為終端的顯示屏幕中播放的視頻文件被播放時顯示的視頻質(zhì)量,若用戶對視頻文件中視頻圖像的原視頻質(zhì)量需要調(diào)整,終端的顯示屏幕上可以顯示視頻質(zhì)量調(diào)整菜單,由用戶來指定截取到的視頻片段的視頻質(zhì)量(即視頻截取指令中攜帶的目標視頻質(zhì)量),得到視頻文件中視頻圖像的原視頻質(zhì)量之后,判斷目標視頻質(zhì)量與原視頻質(zhì)量是否相同,若目標視頻質(zhì)量和原視頻質(zhì)量相同,則無需再進行視頻質(zhì)量的調(diào)整,例如,若視頻質(zhì)量具體表示視頻的畫面組中關鍵幀之間的幀數(shù)量,視頻質(zhì)量表示視頻的量化系數(shù),視頻質(zhì)量表示視頻的配置,若目標視頻質(zhì)量和原視頻質(zhì)量相同,則上述視頻參數(shù)都相同。若目標視頻質(zhì)量和原視頻質(zhì)量不相同,則需要對視頻質(zhì)量進行調(diào)整,具體的,可以調(diào)用第三方庫(例如ffmpeg)來實現(xiàn)視頻質(zhì)量的轉(zhuǎn)換,得到包含目標視頻質(zhì)量的獲取到的已解碼視頻數(shù)據(jù),則后續(xù)步驟103中進行文件格式編碼的就是此處描述的包含目標視頻質(zhì)量的獲取到的已解碼視頻數(shù)據(jù),即步驟103中所述獲取到的已解碼視頻數(shù)據(jù)具體為包含目標視頻質(zhì)量的獲取到的已解碼視頻數(shù)據(jù)。
在本發(fā)明的一些實施例中,若視頻截取指令還包括用戶選擇的目標視頻幀率,步驟103從截取結(jié)束時間點開始,根據(jù)視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼之前,本發(fā)明提供的視頻片段的截取方法還可以包括如下步驟:
F1、判斷獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件的原視頻幀率與目標 視頻幀率是否相同;
F2、若原視頻幀率和目標視頻幀率不相同,對獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件的視頻幀率進行轉(zhuǎn)換,得到包含目標視頻幀率的獲取到的已解碼視頻數(shù)據(jù)。
其中,在步驟102獲取到已解碼視頻數(shù)據(jù)之后,若終端接收到的視頻截取指令中還包括目標視頻幀率,則說明用戶需要指定截取到的視頻片段的視頻幀率,終端可以首先從視頻文件的文件頭信息中獲取到視頻圖像的原視頻幀率,視頻文件中視頻圖像的原視頻幀率為終端的顯示屏幕中播放的視頻文件被播放時顯示的視頻幀率,若用戶對視頻文件中視頻圖像的原視頻幀率需要調(diào)整,終端的顯示屏幕上可以顯示視頻幀率調(diào)整菜單,由用戶來指定截取到的視頻片段的視頻幀率(即視頻截取指令中攜帶的目標視頻幀率),得到視頻文件中視頻圖像的原視頻幀率之后,判斷目標視頻幀率與原視頻幀率是否相同,若目標視頻幀率和原視頻幀率相同,則無需再進行視頻幀率的轉(zhuǎn)換,若目標視頻幀率和原視頻幀率不相同,則需要對視頻幀率進行轉(zhuǎn)換,具體的,可以調(diào)用第三方庫(例如ffmpeg)來實現(xiàn)視頻幀率的轉(zhuǎn)換,得到包含目標視頻幀率的獲取到的已解碼視頻數(shù)據(jù),則后續(xù)步驟103中進行文件格式編碼的就是此處描述的包含目標視頻幀率的獲取到的已解碼視頻數(shù)據(jù),即步驟103中所述獲取到的已解碼視頻數(shù)據(jù)具體為包含目標視頻幀率的獲取到的已解碼視頻數(shù)據(jù)。
103、從截取結(jié)束時間點開始,根據(jù)視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼,生成從視頻文件中截取出的視頻片段。
在發(fā)明實施例中,前述步驟102中獲取到了從截取開始時間點直至截取結(jié)束時間點的多個已解碼視頻數(shù)據(jù),當截取結(jié)束時間點到達時,終端停止獲取已解碼視頻數(shù)據(jù),則可以從截取結(jié)束時間點開始,終端已經(jīng)獲取到需要截取的視頻文件對應的已解碼視頻數(shù)據(jù),接下來對獲取到的已解碼視頻數(shù)據(jù)進行打包封裝,使通過步驟102獲取到的已解碼視頻數(shù)據(jù)被包裝為文件的形式,即可以對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼,從而可得到用戶需要截取的視頻片段,生成的視頻片段是從終端的播放界面中播放的視頻文件得到。
在本發(fā)明的一些實施例中,若視頻截取指令還包括用戶選擇的目標文件格式,則步驟103從截取結(jié)束時間點開始,根據(jù)視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼,具體可以包括如下步驟:
G1、使用文件合成器將獲取到的已解碼視頻數(shù)據(jù)編碼為滿足目標文件格式的視頻片段,并在視頻片段中攜帶文件頭信息,文件頭信息包括:視頻片段的屬性信息。
其中,在步驟102獲取到已解碼視頻數(shù)據(jù)之后,若終端接收到的視頻截取指令中還包括目標文件格式,則說明用戶需要指定截取到的視頻片段的文件格式,執(zhí)行步驟102獲取到已解碼視頻數(shù)據(jù)之后,具體可以使用文件合成器將獲取到的已解碼視頻數(shù)據(jù)編碼為滿足目標文件格式的視頻片段,具體的,可以調(diào)用第三方庫(例如ffmpeg)來實現(xiàn)文件格式的轉(zhuǎn)換,得到滿足目標文件格式的視頻片段,使用文件合成器時會在生成的視頻片段中攜帶文件頭信息,文件頭信息中攜帶的是視頻片段的基本特征信息,例如文件頭信息包括:視頻片段的屬性信息。
104、根據(jù)目標用途將視頻片段輸出。
在本發(fā)明實施例中,視頻截取指令還包括用戶選擇的目標用途,則步驟103從截取結(jié)束時間點開始,根據(jù)視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼,生成從視頻文件中截取出的視頻片段之后,還需要按照用戶的選擇來輸出截取到的視頻片段,從而終端可以解決用戶對視頻截取的需求。
也就是說,本發(fā)明中終端從視頻文件中截取出視頻片段之后,還可以按照用戶的需要將視頻片段輸出到特定的目的用途中,例如用戶將截取到的視頻片段存檔,或者存檔后分享到QQ空間或者微信中,目標用途指明了用戶需要輸出的視頻片段的特定用途,則本發(fā)明中視頻截取得到的視頻片段可以滿足用戶對上述目標用途的要求。
通過以上實施例對本發(fā)明實施例的描述可知,首先接收視頻截取指令,視頻截取指令包括:截取開始時間點、截取結(jié)束時間點,然后從播放時間為截取開始時間點開始,根據(jù)視頻截取指令獲取與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù),直至播放時間為截取結(jié)束時間點為 止,停止獲取與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù),從截取結(jié)束時間點開始,根據(jù)視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼,生成從上述視頻文件中截取出的視頻片段。本發(fā)明中終端中的播放界面開始播放視頻文件后,當播放時間達到截取開始時間點之后,可以獲取與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù),在截取結(jié)束時間點還未達到之前,仍需要繼續(xù)獲取與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù),根據(jù)視頻截取指令可以獲取到多個已解碼視頻數(shù)據(jù),在截取結(jié)束時間點到達之后,根據(jù)視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼,從而可以生成從視頻文件中截取出的視頻片段。本發(fā)明中是通過獲取正在播放的視頻文件對應的已解碼視頻數(shù)據(jù),然后再對已解碼視頻數(shù)據(jù)進行文件格式編碼的方式得到需要截取的視頻片段,而不是通過抓取多張的視頻圖像來組合得到視頻片段,本發(fā)明中即使需要截取時間跨度大的視頻片段,只需要由用戶設置截取開始時間點和截取結(jié)束時間點即可,視頻片段的截取處理效率也很高。
為便于更好的理解和實施本發(fā)明實施例的上述方案,下面舉例相應的應用場景來進行具體說明。
以用戶使用QQ瀏覽器觀看視頻為例進行舉例,用戶遇到喜歡的視頻畫面,可以選擇截取整個視頻畫面片段或者部分視頻畫面片段,制作為不含音頻的視頻片段,保存在本地或者分享給好友。請參閱如圖3所示,為本發(fā)明中視頻片段的截取流程示意圖。
S1、視頻截取區(qū)域偏移位置計算
視頻文件在終端的顯示屏幕上播放時,可以是全屏幕播放,如圖2中的區(qū)域A所示,可以是非全屏幕區(qū)域,如圖2中的區(qū)域B所示。也可以是區(qū)域B到區(qū)域A的任意一個區(qū)域。不管是在什么區(qū)域,用戶都可以在視頻播放區(qū)域內(nèi)劃出一個方形區(qū)域,用來作為想要截取的視頻截取區(qū)域,首先需要計算出劃定區(qū)域相對于視頻播放區(qū)域的四個角的偏移位置。
S2、原始視頻圖像的坐標映射
因為區(qū)域B到區(qū)域C是不確定的,即視頻播放區(qū)域的尺寸與原始的視頻圖像大小不一定相等,所以在完成上述的偏移位置之后,需要計算出該偏移 位置在原始的視頻圖像中的坐標映射關系。
S1和S2完成后,進行如下P1、P2、P3的菜單選擇,終端的顯示屏幕上需要給出一個菜單讓用戶選擇,具體的,包括如下菜單:
P1,用途選擇:確定截取到的視頻片段是僅存檔文件還是存檔后分享。
P2,配置選擇:分辨率、視頻格式、視頻質(zhì)量,文件格式,視頻幀率,視頻截取時長(即截取開始時間點、截取結(jié)束時間點)。
P3,模式選擇:確定需要截取出單個視頻片段還是多個視頻片段。
S3、已解碼視頻數(shù)據(jù)的處理
當用戶進行S1劃定區(qū)域操作時,默認從當前時間點開始處理。視頻播放的過程,就是對視頻文件解碼為原始數(shù)據(jù)再顯示的過程,通常原始數(shù)據(jù)是YUV420格式。從原始數(shù)據(jù)開始合成視頻片段,可以省去重新解碼源文件的環(huán)節(jié),可以更節(jié)省終端的處理器資源,也可以節(jié)省終端的電量。
如圖4所示,為本發(fā)明實施例提供的已解碼視頻數(shù)據(jù)的處理流程示意圖,其中,該過程具體可以包括如下步驟的描述:
步驟m1,從視頻截取指令中獲取用戶選擇的目標分辨率,目標視頻格式和目標視頻質(zhì)量,目標文件格式,目標視頻幀率,截取的視頻長度。根據(jù)具體的配置情況不同,分為如下兩個不同的處理過程,如Q1和Q2,接下來分別進行說明。
Q1、當滿足以下條件:目標分辨率與原分辨率相同,目標視頻幀率與原幀率相同,目標視頻格式與原視頻格式相同(即目標編碼器與原解碼器采用相同的壓縮視頻協(xié)議),目標視頻質(zhì)量與原視頻質(zhì)量相同。滿足這些條件時,可以選擇Q1判決過程,根據(jù)視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼,生成從視頻文件中截取出的視頻片段,此過程相當于拷貝模式。Q1過程中不需要解壓縮視頻文件,而僅僅將已解碼視頻數(shù)據(jù)重新封裝一個新的文件格式。
具體的,在Q1過程下的流程為:
步驟m3,根據(jù)目標文件格式,打開文件合成器,并生成文件頭信息,在文件頭信息包含了視頻片段的一些基本特征,比如視頻片段的屬性,采用的視頻編碼格式。
步驟m7,調(diào)用文件合成器,將已編碼視頻數(shù)據(jù)按照規(guī)則進行文件格式編碼,得到視頻片段,這里的規(guī)則是指假若用戶選擇的目標文件格式為mp4文件,那最終編碼得到的視頻片段就應該是按照mp4文件對視頻的組織方式生成視頻片段。
Q2:不滿足于Q1的任何一個條件,即至少滿足如下一種條件:目標分辨率與原分辨率不相同,目標視頻幀率與原幀率不相同,目標視頻格式與原視頻格式不相同(即目標編碼器與原解碼器采用不相同的壓縮視頻協(xié)議),目標視頻質(zhì)量與原視頻質(zhì)量不相同,執(zhí)行Q2判決過程。
具體的,在Q2過程下的流程為:
步驟m2,根據(jù)需要編碼的視頻格式,打開編碼器。
步驟m3,根據(jù)文件格式,打開文件合成器,并生成文件頭信息。
步驟m4,從當前播放過程的解碼環(huán)節(jié),取得已解碼視頻數(shù)據(jù)。
步驟m5,根據(jù)m1步驟中得到的信息,確定是否進行縮放處理,例如用戶劃定視頻截取區(qū)域,將視頻截取區(qū)域當前播放器范圍相比較,得到一個比例關系,用這個比例關系結(jié)合原始分辨率,計算得到一個尺寸,如果這個尺寸與目標分辨率不相同,則需要進行縮放處理,使得輸出視頻片段的分辨率符合要求。如果不需要則無須縮放處理。
步驟m6,調(diào)用編碼器,為已編碼視頻數(shù)據(jù)按照目標視頻格式進行視頻格式的編碼。
步驟m7,調(diào)用文件合成器,將已編碼視頻數(shù)據(jù)按照目標文件格式進行編碼,生成視頻片段。
需要說明的是,本發(fā)明中對已編碼視頻數(shù)據(jù)處理的流程與視頻文件的播放過程同步,如果是合成多個視頻片段,則重復以上Q1或Q2過程。
S4、視頻片段的輸出
當視頻片段合成后,會提示用戶成功。根據(jù)P1的選擇方式,如果是存檔,會調(diào)用第三方應用打開視頻文件夾。如果是分享,則調(diào)用第三方應用進行分享,可以但不限于微信,QQ等方式。
需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發(fā)明并不受所描 述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
為便于更好的實施本發(fā)明實施例的上述方案,下面還提供用于實施上述方案的相關裝置。
請參閱圖5-a所示,本發(fā)明實施例提供的一種視頻片段的截取裝置500,可以包括:接收模塊501、視頻數(shù)據(jù)獲取模塊502、文件編碼模塊503、視頻片段輸出模塊504,其中,
接收模塊501,用于接收用戶通過當前播放終端發(fā)送的視頻截取指令,所述視頻截取指令包括:所述用戶確定的需要截取視頻的截取開始時間點和截取結(jié)束時間點、所述用戶在所述當前播放終端的播放界面中劃定的視頻截取區(qū)域以及所述用戶選擇的目標用途;
視頻數(shù)據(jù)獲取模塊502,用于從播放時間為所述截取開始時間點開始,根據(jù)所述視頻截取指令獲取與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù),直至播放時間為所述截取結(jié)束時間點為止,停止獲取與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù);
文件編碼模塊503,用于從所述截取結(jié)束時間點開始,根據(jù)所述視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼,生成從所述視頻文件中截取出的視頻片段。
視頻片段輸出模塊504,用于所述文件編碼模塊503從所述截取結(jié)束時間點開始,根據(jù)所述視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼,生成從所述視頻文件中截取出的視頻片段之后,根據(jù)目標用途將所述視頻片段輸出。
在本發(fā)明的一些實施例中,請參閱如圖5-b所示,所述視頻數(shù)據(jù)獲取模塊502,包括:
位置計算單元5021,用于計算所述視頻截取區(qū)域與所述當前播放終端的播放界面之間的偏移位置;
映射關系確定單元5022,用于根據(jù)計算出的所述偏移位置,確定所述視頻截取區(qū)域與當前正在播放的視頻文件中的視頻圖像的坐標映射關系;
視頻數(shù)據(jù)讀取單元5023,用于根據(jù)所述坐標映射關系從所述當前播放終端的幀緩存中讀取到與所述視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù)。
在本發(fā)明的一些實施例中,若所述視頻截取指令還包括用戶選擇的目標文件格式,所述文件編碼模塊503,用于使用文件合成器將獲取到的已解碼視頻數(shù)據(jù)編碼為滿足所述目標文件格式的視頻片段,并在所述視頻片段中攜帶文件頭信息,所述文件頭信息包括:所述視頻片段的屬性信息。
在本發(fā)明的一些實施例中,請參閱如圖5-c所示,若所述視頻截取指令還包括用戶選擇的目標分辨率,所述視頻片段的截取裝置500還包括:分辨率協(xié)調(diào)模塊505,用于所述文件編碼模塊503從所述截取結(jié)束時間點開始,根據(jù)所述視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼之前,判斷所述獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件中視頻圖像的原分辨率與所述目標分辨率是否相同;若所述原分辨率和所述目標分辨率不相同,對所述獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件中視頻圖像的分辨率進行轉(zhuǎn)換,得到包含所述目標分辨率的所述獲取到的已解碼視頻數(shù)據(jù)。
在本發(fā)明的一些實施例中,若所述視頻截取指令還包括用戶選擇的目標分辨率,所述視頻片段的截取裝置500,還包括:分辨率協(xié)調(diào)模塊505,用于所述文件編碼模塊從所述截取結(jié)束時間點開始,根據(jù)所述視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼之前,使用所述坐標映射關系和所述獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件中視頻圖像的原分辨率計算出分辨率映射值;判斷所述分辨率映射值與所述目標分辨率是否相同;若所述分辨率映射值與所述目標分辨率不相同,對所述獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件中視頻圖像進行縮放處理,得到縮放后的所述獲取到的已解碼視頻數(shù)據(jù)。
在本發(fā)明的一些實施例中,請參閱如圖5-d所示,若所述視頻截取指令還包括用戶選擇的目標視頻格式,所述視頻片段的截取裝置500還包括:視頻格式協(xié)調(diào)模塊506,用于所述文件編碼模塊503從所述截取結(jié)束時間點開始,根據(jù)所述視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼之前,判斷所述獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件的原視頻格式與所述目標視頻格式是否相同;若所述原視頻格式和所述目標視頻格式不相同,對所述 獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件的視頻格式進行轉(zhuǎn)換,得到包含所述目標視頻格式的所述獲取到的已解碼視頻數(shù)據(jù)。
在本發(fā)明的一些實施例中,請參閱如圖5-e所示,若所述視頻截取指令還包括用戶選擇的目標視頻質(zhì)量,所述視頻片段的截取裝置500還包括:視頻質(zhì)量協(xié)調(diào)模塊507,用于所述文件編碼模塊503從所述截取結(jié)束時間點開始,根據(jù)所述視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼之前,判斷所述獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件的原視頻質(zhì)量與所述目標視頻質(zhì)量是否相同;若所述原視頻質(zhì)量和所述目標視頻質(zhì)量不相同,對所述獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件的視頻質(zhì)量進行調(diào)整,得到包含所述目標視頻質(zhì)量的所述獲取到的已解碼視頻數(shù)據(jù)。
在本發(fā)明的一些實施例中,請參閱如圖5-f所示,若所述視頻截取指令還包括用戶選擇的目標視頻幀率,所述視頻片段的截取裝置500還包括:視頻幀率協(xié)調(diào)模塊508,用于所述文件編碼模塊從所述截取結(jié)束時間點開始,根據(jù)所述視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼之前,判斷所述獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件的原視頻幀率與所述目標視頻幀率是否相同;若所述原視頻幀率和所述目標視頻幀率不相同,對所述獲取到的已解碼視頻數(shù)據(jù)對應的視頻文件的視頻幀率進行轉(zhuǎn)換,得到包含所述目標視頻幀率的所述獲取到的已解碼視頻數(shù)據(jù)。
通過以上對本發(fā)明實施例的描述可知,用戶通過當前播放終端發(fā)送視頻截取指令時,首先接收視頻截取指令,視頻截取指令中可包括截取開始時間點和截取結(jié)束時間點、用戶劃定的視頻截取區(qū)域和用戶選擇的目標用途,終端中的播放界面開始播放視頻文件后,當播放時間達到截取開始時間點之后,可以獲取與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù),在截取結(jié)束時間點還未達到之前,仍需要繼續(xù)獲取與當前正在播放的視頻文件中與視頻截取區(qū)域?qū)囊呀獯a視頻數(shù)據(jù),根據(jù)視頻截取指令可以獲取到多個已解碼視頻數(shù)據(jù),在截取結(jié)束時間點到達之后,根據(jù)視頻截取指令對獲取到的已解碼視頻數(shù)據(jù)進行文件格式編碼,從而可以生成從視頻文件中截取出的視頻片段,在生成截取到的視頻片段后還可以根據(jù)用戶選擇的目標用途輸出。本發(fā)明中是通過獲取正在播放的視頻文件對應的已解碼視頻數(shù)據(jù), 然后再對已解碼視頻數(shù)據(jù)進行文件格式編碼的方式得到需要截取的視頻片段,而不是通過抓取多張的視頻圖像來組合得到視頻片段,本發(fā)明中即使需要截取時間跨度大的視頻片段,只需要由用戶設置截取開始時間點和截取結(jié)束時間點即可,視頻片段的截取處理效率也很高。
本發(fā)明實施例還提供了另一種終端,如圖6所示,為了便于說明,僅示出了與本發(fā)明實施例相關的部分,具體技術細節(jié)未揭示的,請參照本發(fā)明實施例方法部分。該終端可以為包括手機、平板電腦、PDA(Personal Digital Assistant,個人數(shù)字助理)、POS(Point of Sales,銷售終端)、車載電腦等任意終端設備,以終端為手機為例:
圖6示出的是與本發(fā)明實施例提供的終端相關的手機的部分結(jié)構的框圖。參考圖6,手機包括:射頻(Radio Frequency,RF)電路610、存儲器620、輸入單元630、顯示單元640、傳感器650、音頻電路660、無線保真(wireless fidelity,WiFi)模塊670、處理器680、以及電源690等部件。本領域技術人員可以理解,圖6中示出的手機結(jié)構并不構成對手機的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
下面結(jié)合圖6對手機的各個構成部件進行具體的介紹:
RF電路610可用于收發(fā)信息或通話過程中,信號的接收和發(fā)送,特別地,將基站的下行信息接收后,給處理器680處理;另外,將設計上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路610包括但不限于天線、至少一個放大器、收發(fā)信機、耦合器、低噪聲放大器(Low Noise Amplifier,LNA)、雙工器等。此外,RF電路610還可以通過無線通信與網(wǎng)絡和其他設備通信。上述無線通信可以使用任一通信標準或協(xié)議,包括但不限于全球移動通訊系統(tǒng)(Global System of Mobile communication,GSM)、通用分組無線服務(General Packet Radio Service,GPRS)、碼分多址(Code Division Multiple Access,CDMA)、寬帶碼分多址(Wideband Code Division Multiple Access,WCDMA)、長期演進(Long Term Evolution,LTE)、電子郵件、短消息服務(Short Messaging Service,SMS)等。
存儲器620可用于存儲軟件程序以及模塊,處理器680通過運行存儲在存儲器620的軟件程序以及模塊,從而執(zhí)行手機的各種功能應用以及數(shù)據(jù)處 理。存儲器620可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應用程序(比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)手機的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器620可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。
輸入單元630可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與手機的用戶設置以及功能控制有關的鍵信號輸入。具體地,輸入單元630可包括觸控面板631以及其他輸入設備632。觸控面板631,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板631上或在觸控面板631附近的操作),并根據(jù)預先設定的程式驅(qū)動相應的連接裝置??蛇x的,觸控面板631可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點坐標,再送給處理器680,并能接收處理器680發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實現(xiàn)觸控面板631。除了觸控面板631,輸入單元630還可以包括其他輸入設備632。具體地,其他輸入設備632可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關按鍵等)、軌跡球、鼠標、操作桿等中的一種或多種。
顯示單元640可用于顯示由用戶輸入的信息或提供給用戶的信息以及手機的各種菜單。顯示單元640可包括顯示面板641,可選的,可以采用液晶顯示器(Liquid Crystal Display,LCD)、有機發(fā)光二極管(Organic Light-Emitting Diode,OLED)等形式來配置顯示面板641。進一步的,觸控面板631可覆蓋顯示面板641,當觸控面板631檢測到在其上或附近的觸摸操作后,傳送給處理器680以確定觸摸事件的類型,隨后處理器680根據(jù)觸摸事件的類型在顯示面板641上提供相應的視覺輸出。雖然在圖6中,觸控面板631與顯示面板641是作為兩個獨立的部件來實現(xiàn)手機的輸入和輸入功能,但是在某些實施例中,可以將觸控面板631與顯示面板641集成而實現(xiàn)手機的輸入和輸出 功能。
手機還可包括至少一種傳感器650,比如光傳感器、運動傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板641的亮度,接近傳感器可在手機移動到耳邊時,關閉顯示面板641和/或背光。作為運動傳感器的一種,加速計傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用于識別手機姿態(tài)的應用(比如橫豎屏切換、相關游戲、磁力計姿態(tài)校準)、振動識別相關功能(比如計步器、敲擊)等;至于手機還可配置的陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。
音頻電路660、揚聲器661,傳聲器662可提供用戶與手機之間的音頻接口。音頻電路660可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號,傳輸?shù)綋P聲器661,由揚聲器661轉(zhuǎn)換為聲音信號輸出;另一方面,傳聲器662將收集的聲音信號轉(zhuǎn)換為電信號,由音頻電路660接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器680處理后,經(jīng)RF電路610以發(fā)送給比如另一手機,或者將音頻數(shù)據(jù)輸出至存儲器620以便進一步處理。
WiFi屬于短距離無線傳輸技術,手機通過WiFi模塊670可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖6示出了WiFi模塊670,但是可以理解的是,其并不屬于手機的必須構成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
處理器680是手機的控制中心,利用各種接口和線路連接整個手機的各個部分,通過運行或執(zhí)行存儲在存儲器620內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲器620內(nèi)的數(shù)據(jù),執(zhí)行手機的各種功能和處理數(shù)據(jù),從而對手機進行整體監(jiān)控??蛇x的,處理器680可包括一個或多個處理單元;優(yōu)選的,處理器680可集成應用處理器和調(diào)制解調(diào)處理器,其中,應用處理器主要處理操作系統(tǒng)、用戶界面和應用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器680中。
手機還包括給各個部件供電的電源690(比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器680邏輯相連,從而通過電源管理系統(tǒng)實現(xiàn)管理 充電、放電、以及功耗管理等功能。
盡管未示出,手機還可以包括攝像頭、藍牙模塊等,在此不再贅述。
在本發(fā)明實施例中,該終端所包括的處理器680還具有控制執(zhí)行以上由終端執(zhí)行的視頻片段的截取方法流程。
另外需說明的是,以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。另外,本發(fā)明提供的裝置實施例附圖中,模塊之間的連接關系表示它們之間具有通信連接,具體可以實現(xiàn)為一條或多條通信總線或信號線。本領域普通技術人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
通過以上的實施方式的描述,所屬領域的技術人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實現(xiàn),當然也可以通過專用硬件包括專用集成電路、專用CPU、專用存儲器、專用元器件等來實現(xiàn)。一般情況下,凡由計算機程序完成的功能都可以很容易地用相應的硬件來實現(xiàn),而且,用來實現(xiàn)同一功能的具體硬件結(jié)構也可以是多種多樣的,例如模擬電路、數(shù)字電路或?qū)S秒娐返?。但是,對本發(fā)明而言更多情況下軟件程序?qū)崿F(xiàn)是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在可讀取的存儲介質(zhì)中,如計算機的軟盤,U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。
綜上所述,以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照上述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對上述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明各實施例技術方案的精神和范圍。