專利名稱:一種高效率打開多個視頻對象的方法
技術領域:
本發明涉及視頻處理技術領域,具體涉及到加載視頻對象的相關技術。
背景技術:
假設一個容器需要重復加載多個視頻對象,其中視頻對象的顯示方式為利用視 頻的第一幀畫面來標識自己。傳統的實現方法為當某容器需要加載一個視頻對象時,需要 對此視頻對象進行解碼操作,然后播放該視頻的第一幀,接著暫停播放,從而使視頻顯示在 第一幀的畫面上。以此類推,使該容器成功創建多個視頻對象。當該容器需要再次加載視 頻對象時,就得使用前述方法重新加載。上述傳統的實現方法,其缺陷在于打開視頻的效率低下。因為該方法每一次加載 視頻對象都需要臨時進行解碼操作,而每一次視頻解碼的時間都是不確定的。一般而言,容 量越大、壓縮率越高的視頻對象所需的解碼時間越長。例如,在目前普通的個人計算機上, 尺寸大小為720*480、文件大小為55. 7MB的視頻對象的解碼時間約為400ms。因此,如果一 次性加載100個這樣的視頻對象,那么僅僅視頻解碼花費的時間就要40秒左右。
發明內容
本發明的目的在于克服現有技術的缺點與不足,提供一種高效率打開多個視頻對 象的方法,該方法有且只有一次視頻解碼過程,因而大大地提高了視頻加載的效率。本發明的目的通過以下技術方案實現,一種高效率打開多個視頻對象的方法,包 括以下步驟步驟1、從加載容器里選取一個未打開過的視頻對象作為操作對象;步驟2、在外部存儲器中,搜索步驟1所選取的視頻對象對應的圖片;步驟3、判斷外部存儲器中是否存在步驟1所選取視頻對象對應的圖片;若存在則 執行步驟41,否則執行步驟421-423 ;步驟41、讀取外部存儲器中的步驟1所選取視頻對象對應的圖片作為視頻對象的 顯示圖像,然后執行步驟5;步驟421、對步驟1所選取視頻對象進行解碼操作;步驟422、抓取步驟1所選取視頻對象的第一幀圖像作為其顯示圖像;步驟423、對步驟422所抓取的第一幀圖像進行唯一性的命名后,將其保存到外部 存儲器中,然后執行步驟5;步驟5、判斷是否打開了加載容器中的所有視頻對象;如果是,則結束操作,否則 返回步驟1。在上述高效率打開多個視頻對象的方法中,所述步驟41具體為渲染外部存儲器 中的步驟1所選取視頻對象對應的圖片,將其作為視頻對象的顯示圖像,然后執行步驟5。在上述高效率打開多個視頻對象的方法中,所述步驟422包括以下步驟a、獲取 視頻對象的第一幀數據的字節流;b、將字節流數據轉換為位圖對象;C、渲染位圖對象。
在上述高效率打開多個視頻對象的方法中,所述步驟423包括以下步驟d、獲取 圖片保存類型的編碼方式;e、將步驟b所獲取的位圖對象保存到外部存儲器中,形成一張 圖片。優選地,所述圖片類型為bmp、jpg、jpeg、gif、tiff或png。在上述高效率打開多個視頻對象的方法中,執行步驟1之前,還執行步驟6、卸載 所有不屬于加載容器的視頻對象。本發明相對于現有技術具有如下的優點及效果在打開多個視頻對象時只需進行 一次視頻解碼過程當容器第一次加載一個視頻對象時,需要對此視頻對象進行解碼操作, 然后抓取視頻的第一幀圖像作為顯示圖像,并將此圖像保存到外存(如硬盤)中;以此類 推,使該容器成功創建多個視頻對象。當該容器需要再次加載該視頻對象時,只需將其保存 在外存中的圖片提取出來作為視頻對象的顯示圖像即可,無需再次對此視頻對象進行解碼 或其他操作(如播放、暫停等)。由于本發明有且只有一次視頻解碼過程,因而大大地提高 了視頻加載的效率。
圖1是本發明的一個實施例中加載視頻對象的流程圖。
具體實施例方式下面結合實施例及附圖對本發明作進一步詳細的描述,但本發明的實施方式不限 于此。實施例本實施中,設置了二個需要重復加載多個視頻對象的容器,分別是容器A和容器 B。且在同一時間內只允許存在一個容器作為加載容器,即當容器A存在時,只需加載A的 視頻對象,而所有非容器A里的視頻對象都要被卸載掉;同理,當切換到容器B作為加載容 器時,只需加載容器B的視頻對象,而所有非容器B的視頻對象都要被卸載掉。其中視頻對 象的顯示方式為利用視頻的第一幀圖像來標識。如圖1所示,本實施例在具體實施過程中主要包括以下幾個步驟步驟Si、卸載所有不屬于加載容器的視頻對象。步驟S2、從加載容器里選取一個未打開過的視頻對象作為操作對象。步驟S3、在外部存儲器中,搜索步驟S2所選取的視頻對象對應的圖片。例如可根據視頻名稱搜索特定位置中的圖片,即遍歷特定位置的所有圖片,如果圖片名稱與視頻名稱匹配(匹配名稱不包括文件擴展名),那么表示搜索成功。步驟S4、判斷外部存儲器中是否存在步驟S2所選取視頻對象對應的圖片;若存在 則執行步驟S51,否則執行步驟S521-S523。步驟S51、讀取外部存儲器中的步驟S2所選取視頻對象對應的圖片作為視頻對象 的顯示圖像,然后執行步驟S6。本步驟在實際應用時,可這樣實現渲染外部存儲器中的步 驟S2所選取視頻對象對應的圖片,將其作為視頻對象的顯示圖像。例如可使用GDIPlus的 Graphics對象渲染搜索成功的圖片。步驟S521、對步驟S2所選取視頻對象進行解碼操作。實際應用時,使用標準的視 頻解碼方法來對視頻對象進行解碼。
步驟S522、抓取步驟S2所選取視頻對象的第一幀圖像作為其顯示圖像。本步驟具 體為a、獲取視頻對象的第一幀數據的字節流;b、將字節流數據轉換為位圖對象,例如將 字節流數據轉換為⑶IPlus的Bitmap對象,其中Bitmap對象就是視頻對象的第一幀圖像; c、渲染位圖對象,例如使用⑶IPlus的Graphics對象渲染Bitmap對象,從而將第一幀圖像 顯示出來。步驟S523、對步驟S522所抓取的第一幀圖像進行唯一性的命名后,將其保存到外部存儲器中,然后執行步驟S6。本步驟具體為d、獲取圖片保存類型的編碼方式,所述圖片 類型可以為bmp、jpg、jpeg、gif、tiff或png等;e、將步驟b所獲取的位圖對象保存到外部 存儲器中,形成一張圖片。例如可以將步驟b所獲取的Bitmap對象保存到外部存儲器中的 一個特定位置(如新建文件夾),圖片命名方式為“視頻名稱.圖片類型”。步驟S6、判斷是否打開了加載容器中的所有視頻對象;如果是,則結束操作,否則 返回步驟S2。上述實施例為本發明較佳的實施方式,但本發明的實施方式并不受上述實施例的 限制,其他的任何未背離本發明的精神實質與原理下所作的改變、修飾、替代、組合、簡化, 均應為等效的置換方式,都包含在本發明的保護范圍之內。
權利要求
一種高效率打開多個視頻對象的方法,其特征在于包括以下步驟步驟1、從加載容器里選取一個未打開過的視頻對象作為操作對象;步驟2、在外部存儲器中,搜索步驟1所選取的視頻對象對應的圖片;步驟3、判斷外部存儲器中是否存在步驟1所選取視頻對象對應的圖片;若存在則執行步驟41,否則執行步驟421-423;步驟41、讀取外部存儲器中的步驟1所選取視頻對象對應的圖片作為視頻對象的顯示圖像,然后執行步驟5;步驟421、對步驟1所選取視頻對象進行解碼操作;步驟422、抓取步驟1所選取視頻對象的第一幀圖像作為其顯示圖像;步驟423、對步驟422所抓取的第一幀圖像進行唯一性的命名后,將其保存到外部存儲器中,然后執行步驟5;步驟5、判斷是否打開了加載容器中的所有視頻對象;如果是,則結束操作,否則返回步驟1。
2.根據權利要求1所述的高效率打開多個視頻對象的方法,其特征在于所述步驟41具 體為渲染外部存儲器中的步驟1所選取視頻對象對應的圖片,將其作為視頻對象的顯示 圖像,然后執行步驟5。
3.根據權利要求1所述的高效率打開多個視頻對象的方法,其特征在于所述步驟422 包括以下步驟a、獲取視頻對象的第一幀數據的字節流;b、將字節流數據轉換為位圖對 象;C、渲染位圖對象。
4.根據權利要求3所述的高效率打開多個視頻對象的方法,其特征在于所述步驟423 包括以下步驟d、獲取圖片保存類型的編碼方式;e、將步驟b所獲取的位圖對象保存到外 部存儲器中,形成一張圖片。
5.根據權利要求4所述的高效率打開多個視頻對象的方法,其特征在于所述圖片類 型為 bmp、jpg、jpeg、gif> tiff 或 pngD
6.根據權利要求1-5中任一項所述的高效率打開多個視頻對象的方法,其特征在于執 行步驟1之前,還執行步驟6、卸載所有不屬于加載容器的視頻對象。
全文摘要
本發明涉及打開多個視頻對象的方法,包括以下步驟從加載容器里選取一個未打開過的視頻對象作為操作對象;在外部存儲器中搜索所選取的視頻對象對應的圖片;判斷外部存儲器中是否存在所選取視頻對象對應的圖片,若存在則讀取該圖片作為視頻對象對應的顯示圖像,否則對所選取視頻對象進行解碼操作,然后抓取所選取視頻對象的第一幀圖像作為其顯示圖像并對其進行唯一性的命名后保存到外部存儲器中;判斷是否打開了加載容器中的所有視頻對象,如果是則結束操作,否則返回第一步繼續操作。本發明有且只有一次視頻解碼過程,大大地提高了視頻加載的效率,解決了現有方法效率低的問題。
文檔編號H04N5/00GK101800839SQ20091021413
公開日2010年8月11日 申請日期2009年12月24日 優先權日2009年12月24日
發明者尹顯用, 胡建華, 黃寶華 申請人:廣東威創視訊科技股份有限公司