一種視頻編碼方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及互聯(lián)網技術領域,特別涉及一種視頻編碼方法及裝置。
【背景技術】
[0002]經過近幾年的互聯(lián)網技術的飛速發(fā)展,互聯(lián)網的業(yè)務不斷增加,人們基于互聯(lián)網可以將接觸到的各種各樣的視頻進行共享。比如,同一個辦公室、演播室、教室等地方通常存在一個局域網,且該局域網內通常存在很多個終端;如何將同一局域網內的終端屏幕內容和聲音以視頻的方式投射到同一個服務器,是目前非常流行的多屏共享技術。
[0003]客戶端將對應的視頻共享到發(fā)服務器時,通常需要將視頻數據進行編碼后,再發(fā)送至服務器。目前,客戶端常用的編碼方式主要有硬編碼方式和軟編碼方式;采用硬編碼方式可極大地降低客戶端機器中央處理器(Center Processor Unit,CPU)的使用率,采用軟編碼的方式則客戶端機器的CPU使用率會很高。因此,硬編碼和軟編碼的合理性選擇是視頻編碼中常見的問題之一。
【發(fā)明內容】
[0004]本發(fā)明提供一種視頻編碼方法及裝置,用以恰當選取客戶端進行視頻編碼時所使用的硬編碼或者是軟編碼,實現硬編碼和軟編碼的合理選取。
[0005]本發(fā)明提供一種視頻編輯方法,包括:
[0006]檢測客戶端設備是否支持高速影像同步轉文件技術QSV硬編碼功能;
[0007]若客戶端設備支持QSV硬編碼功能,則創(chuàng)建硬編碼器,并采用硬編碼器對視頻數據進行編碼;
[0008]若客戶端設備不支持QSV硬編碼功能,則創(chuàng)建軟編碼器,并采用軟編碼器對視頻數據進行編碼。
[0009]在一個實施例中,所述檢測客戶端設備是否支持QSV硬編碼功能,包括:
[0010]調用接口函數,獲取硬編碼的圖像處理單元GPU設備;
[0011]通過查看所述GPU設備是否存在,來判斷所述客戶端設備是否支持QSV硬編碼功會K。
[0012]在一個實施例中,所述創(chuàng)建硬編碼器,并采用硬編碼器對視頻數據進行編碼,包括:
[0013]初始化GPU設備,創(chuàng)建硬編碼器;
[0014]采用創(chuàng)建的硬編碼器對視頻數據進行編碼。
[0015]在一個實施例中,所述創(chuàng)建軟編碼器,并采用軟編碼器對視頻數據進行編碼,包括:
[0016]配置預設編碼格式對應的編碼參數,創(chuàng)建軟編碼器;
[0017]采用創(chuàng)建的軟編碼器對視頻數據進行編碼。
[0018]在一個實施例中,上述視頻編輯方法還包括:
[0019]按照預設幀格式,輸出編碼后的視頻數據。
[0020]對應于上述音視頻編輯方法,本發(fā)明實施例還提供了一種視頻編碼裝置,包括:
[0021]檢測模塊,用于檢測客戶端設備是否支持高速影像同步轉文件技術QSV硬編碼功會K ;
[0022]硬編碼模塊,用于在客戶端設備支持QSV硬編碼功能時,創(chuàng)建硬編碼器,并采用硬編碼器對視頻數據進行編碼;
[0023]軟編碼模塊,用于在客戶端設備不支持QSV硬編碼功能時,創(chuàng)建軟編碼器,并采用軟編碼器對視頻數據進行編碼。
[0024]在一個實施例中,所述檢測模塊包括:
[0025]獲取單元,用于調用接口函數,獲取硬編碼的圖像處理單元GPU設備;
[0026]判斷單元,用于通過查看所述GPU設備是否存在,來判斷所述客戶端設備是否支持QSV硬編碼功能。
[0027]在一個實施例中,所述硬編碼模塊包括:
[0028]第一創(chuàng)建單元,用于初始化GPU設備,創(chuàng)建硬編碼器;
[0029]第一編碼單元,用于采用創(chuàng)建的硬編碼器對視頻數據進行編碼。
[0030]在一個實施例中,所述軟編碼模塊包括:
[0031]第二創(chuàng)建單元,配置預設編碼格式對應的編碼參數,創(chuàng)建軟編碼器;
[0032]第二編碼單元,采用創(chuàng)建的軟編碼器對視頻數據進行編碼。
[0033]在一個實施例中,所述視頻編輯裝置還包括:
[0034]輸出模塊,用于按照預設幀格式,輸出編碼后的視頻數據。
[0035]本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現和獲得。
[0036]下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。
【附圖說明】
[0037]附圖用來提供對本發(fā)明的進一步理解,并且構成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構成對本發(fā)明的限制。在附圖中:
[0038]圖1為本發(fā)明根據一示例性實施例示出的一種視頻編輯方法的流程圖;
[0039]圖2為本發(fā)明根據一示例性實施例示出的一種視頻編輯方法中步驟SlO的流程圖;
[0040]圖3為本發(fā)明根據一示例性實施例示出的一種視頻編輯方法中步驟S20的流程圖;
[0041]圖4為本發(fā)明根據一示例性實施例示出的一種視頻編輯方法中步驟S30的流程圖;
[0042]圖5位本發(fā)明根據一示例性實施例示出的另一種視頻編輯方法的流程圖;
[0043]圖6為本發(fā)明根據一示例性實施例示出的一種視頻編輯裝置的框圖;
[0044]圖7為本發(fā)明根據一示例性實施例示出的一種視頻編輯裝置中檢測模塊60的框圖;
[0045]圖8為本發(fā)明根據一示例性實施例示出的一種視頻編輯裝置中硬編碼模塊70的框圖;
[0046]圖9為本發(fā)明根據一示例性實施例示出的一種視頻編輯裝置中軟編碼模塊80的框圖;
[0047]圖10為本發(fā)明根據一示例性實施例示出的另一種視頻編輯裝置的框圖。
【具體實施方式】
[0048]以下結合附圖對本發(fā)明的優(yōu)選實施例進行說明,應當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0049]本發(fā)明公開的一實施例中提供了一種視頻編輯方法,用以恰當選取客戶端進行視頻編碼時所使用的硬編碼或者是軟編碼,實現硬編碼和軟編碼的合理選取。如圖1所示,本發(fā)明實施例中一種視頻編輯方法包括步驟S10-S30:
[0050]步驟S10、檢測客戶端設備是否支持高速影像同步轉文件技術QSV硬編碼功能。
[0051]目前,客戶端設備大致可以分為兩類:一類是支持英特爾高速影像同步轉文件技術(Quick Sync Ved1, QSV)硬編碼功能的設備,另一類是不支持QSV硬編碼功能的設備。支持QSV硬編碼功能的客戶端設備在運行客戶端程序時,使用硬編碼功能,因為硬編碼功能可以極大地降低CPU的使用率。因此,在進行視頻編碼時,首先檢測該客戶端設備是否支持QSV硬編碼功能。
[0052]在一實施例中,如圖2所示,步驟SlO可以執(zhí)行為步驟S101-S102:
[0053]步驟S101、調用接口函數,獲取硬編碼的圖像處理單元GPU設備;
[0054]檢測客戶端設備是否具備QSV硬編碼功能時,調用一個接口函數,獲取硬編碼的GPU設備,根據獲取結果,判斷GPU設備是否存在。若能夠獲取到硬編碼的GPU設備,則表示該GPU設備存在;若不能夠獲取到硬編碼的GPU設備,則表示該GPU設備不存在。
[0055]步驟S102、通過查看所述GPU設備是否存在,來判斷所述客戶端設備是否支持QSV硬編碼功能。
[0056]若通過查看,得知該GPU設備存在,則判斷該客戶端設備支持QSV硬編碼功能;若通過查看,得知該GPU設備不存在,則判斷該客戶端設備不支持QSV硬編碼功能。
[0057]若客戶端設備支持QSV硬編碼功能,則執(zhí)行步驟S20、創(chuàng)建硬編碼器,并采用硬編碼器對視頻數據進行編碼。
[0058]當客戶端設備支持QSV硬編碼功能時,創(chuàng)建硬編碼器,利用創(chuàng)建的硬編碼器對視頻數據進行編碼。
[0059]在一個實施例中,如圖3所示,步驟S20可以實施為步驟S201-S202:
[0060]步驟S201、初始化GPU設備,創(chuàng)建硬編碼器;
[0061]步驟S202、采用創(chuàng)建的硬編碼器對視頻數據進行編碼。
[0062]若客戶端設備支持QSV硬編碼功能,則初始化該客戶端設備的GPU設備,配置預設編碼格式對應的編碼參數,比如配置H264編碼參數,創(chuàng)建硬編碼器;采用創(chuàng)建的硬編碼器對視頻數據進行編碼。
[0063]若客戶端設備不支持QSV硬編碼功能,則執(zhí)行步驟S30、創(chuàng)建軟編碼器,并采用軟編碼器對視頻數據進行編碼。
[0064]當客戶端設備不支持QSV硬編碼功能時,則創(chuàng)建軟編碼器,利用創(chuàng)建的硬軟編碼器對視頻數據進行編碼。
[0065]在一個實施例中,如圖4所示,步驟S30可以實施為步驟S301-S302:
[0066]步驟S301、配置預設編碼格式對應的編碼參數,創(chuàng)建軟編碼器;
[0067]步驟S302、采用創(chuàng)