本發(fā)明涉及圖像處理領(lǐng)域,尤其涉及一種圖像互換格式圖的制作方法和裝置。
背景技術(shù):
目前,針對PC(Personal Computer,個人計算機)端的在線視頻或本地視頻來制作GIF(Graphics Interchange Format,圖形互換格式)圖,需要專業(yè)軟件將視頻導(dǎo)入并解析提取其視頻幀內(nèi)的圖像(以下簡稱為幀圖像),然后將提取出的各幀圖像再次進行合成,以制作出GIF圖。
然而,在該GIF圖制作方法中,僅是提供固定的幀圖像尺寸進行制作,這樣,所提取出的幀圖像可能不是用戶所期望的,由此制作出的GIF圖可能不是用戶期望的,用戶體驗性較差。
技術(shù)實現(xiàn)要素:
技術(shù)問題
有鑒于此,本發(fā)明要解決的技術(shù)問題是,如何針對視頻制作出用戶所期望的GIF圖。
解決方案
為了解決上述技術(shù)問題,根據(jù)本發(fā)明的一實施例,提供了一種圖像互換格式圖的制作方法,包括:在待處理視頻的顯示界面內(nèi)顯示第一錄屏框;根據(jù)用戶在所述待處理視頻的顯示界面內(nèi)對所述第一錄屏框的位置參數(shù)和/或尺寸參數(shù)的調(diào)節(jié),來形成第二錄屏框;根據(jù)所述第二錄屏框?qū)λ龃幚硪曨l進行錄屏;以及根據(jù)錄屏得到的視頻來制作圖像互換格式圖。
對于上述方法,在一種可能的實現(xiàn)方式中,在待處理視頻的顯示界面內(nèi)顯示第一錄屏框,包括:確定所述顯示界面的寬度和高度,并在所述顯示界面內(nèi)選取作為基準的相互垂直的X軸和Y軸;根據(jù)所述顯示界面的寬度和高度來確定所述第一錄屏框的尺寸;根據(jù)所述X軸和所述Y軸的交點來確定所述第一錄屏框的位置;根據(jù)所述第一錄屏框的位置和尺寸在所述顯示界面內(nèi)顯示所述第一錄屏框。
對于上述方法,在一種可能的實現(xiàn)方式中,根據(jù)用戶在所述待處理視頻的顯示界面內(nèi)對所述第一錄屏框的位置參數(shù)和/或尺寸參數(shù)的調(diào)節(jié),來形成第二錄屏框,包括:根據(jù)用戶在所述顯示界面內(nèi)對所述第一錄屏框的移動操作,來獲取所述第二錄屏框的位置參數(shù);和/或根據(jù)用戶在所述顯示界面內(nèi)對所述第一錄屏框的尺寸的放大或縮小操作,來獲取所述第二錄屏框的尺寸參數(shù);根據(jù)所述第二錄屏框的位置參數(shù)和/或尺寸參數(shù)在所述顯示界面內(nèi)形成所述第二錄屏框。
對于上述方法,在一種可能的實現(xiàn)方式中,根據(jù)錄屏得到的視頻來制作圖像互換格式圖,包括:將錄屏得到的視頻解析出各幀圖像;對所解析出的各幀圖像進行以下至少一種處理:從所解析出的各幀圖像中選取特定數(shù)量的幀圖像、改變所解析出的各幀圖像之間的時間間隔、改變所解析出的各幀圖像的顯示順序以及所解析出的各幀圖像進行壓縮;將處理后的各幀圖像合成來制作圖像互換格式圖。
對于上述方法,在一種可能的實現(xiàn)方式中,所述待處理視頻包括線上視頻和/或本地視頻。
為了解決上述技術(shù)問題,根據(jù)本發(fā)明的另一實施例,提供了一種圖像互換格式圖的制作裝置,包括:顯示單元,用于在待處理視頻的顯示界面內(nèi)顯示第一錄屏框;調(diào)節(jié)單元,與所述顯示單元連接,用于根據(jù)用戶在所述待處理視頻的顯示界面內(nèi)對所述第一錄屏框的位置參數(shù)和/或尺寸參數(shù)的調(diào)節(jié),來形成第二錄屏框;錄屏單元,與所述調(diào)節(jié)單元連接,用于根據(jù)所述第二錄屏框?qū)λ龃幚硪曨l進行錄屏;以及制作單元,與所述錄屏單元連接,用于根據(jù)錄屏得到的視頻來制作圖像互換格式圖。
對于上述裝置,在一種可能的實現(xiàn)方式中,所述顯示單元包括:確定和選取模塊,確定所述顯示界面的寬度和高度,并在所述顯示界面內(nèi)選取作為基準的相互垂直的X軸和Y軸;尺寸確定模塊,與所述確定和選取模塊連接,用于根據(jù)所述顯示界面的寬度和高度來確定所述第一錄屏框的尺寸;位置確定模塊,與所述確定和選取模塊連接,用于根據(jù)所述X軸和所述Y軸的交點來確定所述第一錄屏框的位置;顯示模塊,與所述尺寸確定模塊和所述位置確定模塊連接,用于根據(jù)所述第一錄屏框的位置和尺寸在所述顯示界面內(nèi)顯示所述第一錄屏框。
對于上述裝置,在一種可能的實現(xiàn)方式中,所述調(diào)節(jié)單元包括:位置參數(shù)獲取模塊,用于根據(jù)用戶在所述顯示界面內(nèi)對所述第一錄屏框的移動操作,來獲取所述第二錄屏框的位置參數(shù);和/或尺寸參數(shù)獲取模塊,用于根據(jù)用戶在所述顯示界面內(nèi)對所述第一錄屏框的尺寸的放大或縮小操作,來獲取所述第二錄屏框的尺寸參數(shù);形成模塊,用于根據(jù)所述第二錄屏框的位置參數(shù)和/或尺寸參數(shù)在所述顯示界面內(nèi)形成所述第二錄屏框。
對于上述裝置,在一種可能的實現(xiàn)方式中,所述制作單元包括:解析模塊,用于將錄屏得到的視頻解析出各幀圖像;處理模塊,與所述解析模塊連接,用于對所解析出的各幀圖像進行以下至少一種處理:從所解析出的各幀圖像中選取特定數(shù)量的幀圖像、改變所解析出的各幀圖像之間的時間間隔、改變所解析出的各幀圖像的顯示順序以及所解析出的各幀圖像進行壓縮;制作模塊,與所述處理模塊連接,用于將處理后的各幀圖像合成來制作圖像互換格式圖。
對于上述裝置,在一種可能的實現(xiàn)方式中,所述待處理視頻包括線上視頻和/或本地視頻。
有益效果
根據(jù)本發(fā)明實施例的GIF圖的制作方法和裝置,根據(jù)用戶需求來調(diào)節(jié)對所播放的視頻進行錄屏操作的錄屏框的位置和/尺寸,然后根據(jù)所得到的錄屏框進行錄屏操作,再對錄屏得到的視頻進行適當處理,從而制作出用戶所期望的GIF圖。這樣,能夠根據(jù)用戶需求,針對各種視頻進行錄屏操作來制作出用戶所期望的GIF圖,從而能夠滿足用戶的即時需求,進而提高用戶體驗。
根據(jù)下面參考附圖對示例性實施例的詳細說明,本發(fā)明的其它特征及方面將變得清楚。
附圖說明
包含在說明書中并且構(gòu)成說明書的一部分的附圖與說明書一起示出了本發(fā)明的示例性實施例、特征和方面,并且用于解釋本發(fā)明的原理。
圖1示出根據(jù)本發(fā)明一實施例的GIF圖的制作方法的流程圖。
圖2示出根據(jù)本發(fā)明另一實施例的GIF圖的制作方法的流程圖。
圖3示出根據(jù)本發(fā)明一實施例的GIF圖的制作方法的大體流程圖。
圖4示出根據(jù)本發(fā)明一實施例的GIF圖的制作方法的PC端后臺操作的具體流程圖。
圖5示出根據(jù)本發(fā)明一實施例的GIF圖的制作裝置的結(jié)構(gòu)框圖。
圖6示出根據(jù)本發(fā)明另一實施例的GIF圖的制作裝置的結(jié)構(gòu)框圖。
具體實施方式
以下將參考附圖詳細說明本發(fā)明的各種示例性實施例、特征和方面。附圖中相同的附圖標記表示功能相同或相似的元件。盡管在附圖中示出了實施例的各種方面,但是除非特別指出,不必按比例繪制附圖。
在這里專用的詞“示例性”意為“用作例子、實施例或說明性”。這里作為“示例性”所說明的任何實施例不必解釋為優(yōu)于或好于其它實施例。
另外,為了更好的說明本發(fā)明,在下文的具體實施方式中給出了眾多的具體細節(jié)。本領(lǐng)域技術(shù)人員應(yīng)當理解,沒有某些具體細節(jié),本發(fā)明同樣可以實施。在一些實例中,對于本領(lǐng)域技術(shù)人員熟知的方法、手段、元件和電路未作詳細描述,以便于凸顯本發(fā)明的主旨。
實施例1
圖1示出根據(jù)本發(fā)明一實施例的GIF圖的制作方法的流程圖。如圖1所示,該制作方法主要包括以下步驟:
步驟S110、在待處理視頻的顯示界面內(nèi)顯示第一錄屏框;
步驟S120、根據(jù)用戶在待處理視頻的顯示界面內(nèi)對第一錄屏框的位置參數(shù)和/或尺寸參數(shù)的調(diào)節(jié),來形成第二錄屏框;
步驟S130、根據(jù)第二錄屏框?qū)Υ幚硪曨l進行錄屏;以及
步驟S140、根據(jù)錄屏得到的視頻來制作GIF圖。
以下將詳細說明上述步驟。
對于上述步驟S110,首先,獲取待處理視頻,其中該待處理視頻可以是通過視頻播放地址而獲取到的線上視頻,也可以是直接從本地的存儲器、例如PC端的硬盤中獲取到的本地視頻。接著,播放所獲取到的視頻,并且例如觸發(fā)GIF按鈕。在觸發(fā)GIF按鈕之后,根據(jù)響應(yīng)于播放該視頻的PC端后臺發(fā)出的指示,會在所播放的視頻的顯示界面內(nèi)彈出一個初始的錄屏框(對應(yīng)于第一錄屏框)。
對于上述步驟S120,在一種可能的實現(xiàn)方式中,具體可以包括以下步驟:
步驟S1201、根據(jù)用戶在顯示界面內(nèi)對第一錄屏框的移動操作,來獲取第二錄屏框的位置參數(shù);和/或
步驟S1202、根據(jù)用戶在顯示界面內(nèi)對第一錄屏框的尺寸的放大或縮小操作,來獲取第二錄屏框的尺寸參數(shù);以及
步驟S1203、根據(jù)第二錄屏框的位置參數(shù)和/或尺寸參數(shù)在顯示界面內(nèi)形成第二錄屏框。
具體而言,在所播放的視頻的顯示界面內(nèi)彈出了第一錄屏框之后,可以根據(jù)用戶需求在例如該顯示界面內(nèi)自由調(diào)節(jié)第一錄屏框的位置參數(shù)和/或尺寸參數(shù)。具體而言,可以根據(jù)用戶需求只調(diào)節(jié)第一錄屏框的位置參數(shù)、即移動第一錄屏框,還可以只調(diào)節(jié)第一錄屏框的尺寸參數(shù)、即對第一錄屏框的尺寸進行縮放,也可以對第一錄屏框的位置參數(shù)和尺寸參數(shù)均進行調(diào)節(jié)。這樣,在對第一錄屏框進行調(diào)節(jié)之后,播放視頻的PC端的后臺記錄新的錄屏框(對應(yīng)于第二錄屏框)的位置參數(shù)和尺寸參數(shù)。
具體而言,在移動、放大或縮小第一錄屏框的過程中,PC端的后臺根據(jù)用戶對第一錄屏框的操作需要記錄8個控制點(左上點、右上點、左下點、右下點、上中點、下中點、左中點和右中點)、例如記錄這8個控制點的坐標,以確定出進行操作之后的新的錄屏框(第二錄屏框)的位置。其中,每當移動、放大或縮小錄屏框時,PC端的后臺均會記錄相應(yīng)的8個控制點的坐標,并根據(jù)這8個控制點的坐標在播放視頻的顯示界面內(nèi)彈出相應(yīng)地錄屏框,以響應(yīng)于用戶對原錄屏框的相應(yīng)操作。
根據(jù)所記錄的8個控制點的坐標,即能夠獲得第二錄屏框的位置參數(shù)和尺寸參數(shù),從而根據(jù)該位置參數(shù)和尺寸參數(shù)在所播放的視頻的顯示界面內(nèi)形成(顯示)第二錄屏框。
其中,可以采用QT語言來實現(xiàn)調(diào)節(jié)并記錄錄屏框的位置和尺寸的過程。當然,也可以采用其它技術(shù),只要該技術(shù)能夠?qū)崿F(xiàn)根據(jù)用戶需求來調(diào)節(jié)并記錄錄屏框的位置及尺寸即可。
對于上述步驟S130,在根據(jù)上述步驟S120形成了第二錄屏框后,可以例如觸發(fā)錄屏開始按鈕,以根據(jù)該第二錄屏框?qū)λシ诺囊曨l進行錄屏。舉例而言,在觸發(fā)錄屏開始按鈕之后,利用該操作將指令發(fā)給播放內(nèi)核,以對所播放的視頻進行錄制。在一種可能的實現(xiàn)方式中,可以根據(jù)用戶需要對錄屏時間進行設(shè)置。例如,在觸發(fā)錄屏開始按鈕之后,錄制接下來播放的5s的視頻,即錄屏時間為5s。換句話說,可以預(yù)先對觸發(fā)錄屏開始按鈕之后的錄屏時間進行設(shè)置。其中,該錄屏時間可以根據(jù)具體的應(yīng)用場景靈活設(shè)置。在一種可能的實現(xiàn)方式中,也可以實時確定錄屏時間。例如,在用戶觸發(fā)錄屏開始按鈕之后開始錄屏,并且在觸發(fā)了錄屏結(jié)束按鈕之后結(jié)束錄屏。
對于上述步驟S140,在錄屏結(jié)束之后,將錄屏得到的視頻進行解析,以提取出該視頻中的各幀圖像,然后對各幀圖像進行適當?shù)奶幚?,并將處理后的各幀圖像進行合成,以制作出用戶所期望的GIF圖。
這樣,通過本實施例的GIF圖的制作方法,根據(jù)用戶需求、基于錄屏操作來制作視頻的GIF圖。具體而言,根據(jù)用戶需求來調(diào)節(jié)對所播放的視頻進行錄屏操作的錄屏框的位置和/尺寸,然后根據(jù)所得到的錄屏框進行錄屏操作,再對錄屏得到的視頻進行適當處理,從而制作出用戶所期望的GIF圖。這樣,能夠根據(jù)用戶需求,針對各種視頻進行錄屏操作來制作出用戶所期望的GIF圖,從而能夠滿足用戶的即時需求,進而提高用戶體驗。
實施例2
圖2示出根據(jù)本發(fā)明另一實施例的GIF圖的制作方法的流程圖。圖2中標號與圖1相同的步驟具有相同的功能,為簡明起見,省略對這些步驟的詳細說明。
如圖2所示,圖2所示的GIF圖的制作方法與圖1所示GIF圖的制作方法的主要區(qū)別在于,上述步驟S110具體可以包括:
步驟S1101、確定顯示界面的寬度和高度,并在顯示界面內(nèi)選取作為基準的相互垂直的X軸和Y軸;
步驟S1102、根據(jù)顯示界面的寬度和高度來確定第一錄屏框的尺寸;
步驟S1103、根據(jù)X軸和Y軸的交點來確定第一錄屏框的位置;
步驟S1104、根據(jù)第一錄屏框的位置和尺寸在顯示界面內(nèi)顯示第一錄屏框。
具體而言,在播放所獲取到的待處理視頻后,可以觸發(fā)GIF按鈕,之后,PC端的后臺根據(jù)所播放的視頻的狀態(tài)來確定初始錄屏框(第一錄屏框)。例如,首先,確定所播放的視頻的四個相關(guān)參數(shù):播放視頻的顯示界面的寬度、高度以及在顯示界面內(nèi)設(shè)置的作為基準的相互垂直X軸和Y軸。
然后,根據(jù)所確定的視頻的這四個相關(guān)參數(shù),來確定要在顯示界面內(nèi)彈出的第一錄屏框的位置及尺寸。具體而言,根據(jù)顯示界面的寬度、高度來確定出第一錄屏框的尺寸,并且根據(jù)所設(shè)置的X軸和Y軸的交點來確定第一錄屏框的位置。其中,X軸和Y軸例如可以設(shè)置在顯示界面的左上角、即它們的交點為顯示界面的左上頂點。這樣,所形成的第一錄屏框可以為以該頂點作為基準,沿X軸和Y軸向下方拉出的一個小于顯示界面的寬度和高度的矩形框(即第一錄屏框)。這里,不對所設(shè)置的X軸和Y軸的具體位置進行限定,只要根據(jù)該設(shè)置所形成的第一錄屏框在顯示界面內(nèi)即可。例如,X軸和Y軸的位置還可以設(shè)置在顯示界面的中間,這樣它們的交點也就為顯示界面的中心,而所形成的第一錄屏框也就位于顯示界面的中央位置。
在確定了第一錄屏框的位置及尺寸之后,PC端的后臺會根據(jù)該位置及尺寸在播放視頻的顯示界面內(nèi)顯示該第一錄屏框。
其中,可以采用QT語言來實現(xiàn)確定并顯示第一錄屏框的過程。當然,也可以采用其它技術(shù),只要該技術(shù)能夠?qū)崿F(xiàn)在所播放的視頻的顯示界面內(nèi)對錄屏框的確定和顯示即可。
在一種可能的實現(xiàn)方式中,上述步驟S140具體可以包括以下步驟:
步驟S1401、將錄屏得到的視頻解析出各幀圖像;
步驟S1402、對所解析出的各幀圖像進行以下至少一種處理:從所解析出的各幀圖像中選取特定數(shù)量的幀圖像、改變所解析出的各幀圖像之間的時間間隔、改變所解析出的各幀圖像的顯示順序以及所解析出的各幀圖像進行壓縮;
步驟S1403、將處理后的各幀圖像合成來制作GIF圖。
在步驟S130中根據(jù)第二錄屏框?qū)λシ诺囊曨l進行錄屏之后,可以對錄屏得到的視頻進行解析處理,以提取出該視頻中的各幀圖像。在提取出各幀圖像之后,還可以對這些幀圖像進行封裝處理。
然后,對所提取出的各幀圖像進行適當處理,以合成制作出用戶所期望的GIF圖。
在一種可能的實現(xiàn)方式中,可以根據(jù)用戶需求在步驟S1402中對所提取出的各幀圖像進行圖像數(shù)據(jù)的壓縮。接著在上述步驟S1403中,將壓縮后的各幀圖像合成,以制作出針對視頻的GIF圖,然后存儲到相應(yīng)的存儲器中。這樣,可以進一步節(jié)省對所制作出的GIF圖進行存儲的存儲空間。
在一種可能的實現(xiàn)方式中,還可以根據(jù)用戶需求在步驟S1402中選擇用戶所需要的幀圖像。具體而言,例如錄屏時間為5s,也即錄屏得到的視頻的時長為5s,通常情況下,從該視頻中可以解析出75~100張幀圖像。然后,這些幀圖像可能并不全是用戶想要的。有鑒于此,用戶可以從這些幀圖像中選擇用戶所需要的幀圖像、例如30張幀圖像,然后在上述步驟S1403中將所選擇的這30張幀圖像進行合成,以制作出針對視頻的用戶所期望的GIF圖,然后存儲到相應(yīng)的存儲器中。
在一種可能的實現(xiàn)方式中,還可以根據(jù)用戶需求在步驟S1402中改變所提取出的各幀圖像之間的時間間隔。具體而言,在所提取出的各幀圖像中,通常都帶有時間戳,這些時間戳能夠表示該幀圖像在要合成的GIF圖中顯示的時間段。例如,與所提取出的各幀圖像的內(nèi)容無關(guān)地,錄屏得到的各幀圖像之間的時間間隔開始均為2s,然而存在用戶想要較長時間的觀看某一感興趣的幀圖像的需求。這時,可以將該幀圖像的顯示持續(xù)時間設(shè)置得較長,即改變該幀圖像與之前和/或之后的幀圖像之間的時間間隔。上述的改變所提取出的各幀圖像之間的時間間隔可以通過調(diào)整各幀圖像的時間戳來實現(xiàn)。然后,在上述步驟S1403中,將進行了上述處理之后的各幀圖像合成,以制作出針對視頻的用戶所期望的GIF圖,然后存儲到相應(yīng)的存儲器中。這樣,在顯示設(shè)備上播放上述GIF圖時,可以實現(xiàn)根據(jù)用戶的需求以不同的播放速度來播放各幀圖像的效果,即實現(xiàn)變速播放的效果。
在一種可能的實現(xiàn)方式中,還可以根據(jù)用戶需求在上述步驟S1402中改變所提取出的各幀圖像的顯示順序。具體而言,在一些情況下,調(diào)整各幀圖像在GIF圖中的顯示順序、例如逆序顯示可以得到更好的顯示效果。由此,在步驟S1402中,可以根據(jù)用戶需要或者實際的應(yīng)用場景來適當調(diào)整錄屏得到的各幀圖像的顯示順序。例如,如果視頻中存在10個幀圖像,則相應(yīng)地在錄屏之后得到10個幀圖像,通常這10個幀圖像是正序、例如按照從幀圖像1到幀圖像10的順序依次輸出。然而,為了得到更好的效果,在本實施例中,可以調(diào)整顯示順序例如可以按從幀圖像10到幀圖像1的逆序依次輸出。當然,本發(fā)明的調(diào)整顯示順序不限于調(diào)整成逆序,而可以根據(jù)用戶的需求或?qū)嶋H的應(yīng)用場景隨意調(diào)整這些幀圖像的顯示順序。上述的改變錄屏得到的各幀圖像的顯示順序可以通過改變各幀圖像的時間戳來實現(xiàn)。然后,在上述步驟S1403中,將進行了上述處理之后的各幀圖像合成,以制作出針對視頻的用戶所期望的GIF圖,然后存儲到相應(yīng)的存儲器中。這樣,可以增加所制作出的GIF的趣味性,從而提高用戶的觀看體驗。
需要說明的是,在上述步驟S1402中,可以只進行上述四種處理中的任一種處理,也可以進行其中的任意兩種、三種或全部這四種處理。并且,本發(fā)明不限制這四種處理的執(zhí)行順序,并且這四種處理可以按照先后順序依次進行,也可以同時進行。
這樣,通過本實施例的GIF圖的制作方法,根據(jù)所播放的視頻的狀態(tài)來確定第一錄屏框,并且根據(jù)用戶需求來調(diào)節(jié)對所播放的視頻進行錄屏操作的錄屏框的位置和/尺寸,然后根據(jù)所得到的錄屏框(第二錄屏框)進行錄屏操作,再對錄屏得到的視頻進行改變時間間隔、改變顯示順序、壓縮以及選擇適當?shù)膸瑘D像等的處理,從而制作出用戶所期望的GIF圖。這樣,能夠根據(jù)用戶需求,針對各種視頻進行錄屏操作來制作出用戶所期望的GIF圖,從而能夠滿足用戶的即時需求,進而提高用戶體驗。
實施例3
圖3示出根據(jù)本發(fā)明一實施例的GIF圖的制作方法的大體流程圖,圖4示出根據(jù)本發(fā)明一實施例的GIF圖的制作方法的PC端后臺操作的具體流程圖。
在本實施例中,主要包括如下技術(shù)點:框選區(qū)域(位置、尺寸)、錄制視頻(錄屏)以及將視頻解析出視頻幀(幀圖像),并編譯為GIF動態(tài)圖。
本實施例涉及的系統(tǒng)包括如下5部分:
1、視頻存儲器
2、播放內(nèi)核
3、系統(tǒng)API(Application Programming Interface,應(yīng)用程序編程接口)錄屏裝置
4、視頻解析服務(wù)器
5、圖片封裝
如圖3所示,本實施例中涉及的GIF圖的制作方法的大體流程如下:(1)觸發(fā)指令(用戶點擊GIF工具按鈕);(2)錄屏框彈出,調(diào)節(jié)并選取錄屏窗體區(qū)域(位置及大小);(3)觸發(fā)錄屏開始鍵,以進行視頻錄制;(4)視頻錄制結(jié)束,彈出GIF編輯框(可對視頻幀進行編輯、圖片選擇及圖片順序排序、播放速度設(shè)置等);(5)保存生成GIF動態(tài)圖。
此外,如圖4所示,本實施例中涉及的GIF圖的制作方法的PC端后臺操作的具體流程如下:(1)在所播放的視頻中觸發(fā)錄制指令,并獲取錄制框;(2)播放內(nèi)核接收指令;(3)前端觸發(fā)視頻錄制開始鍵,以進行視頻錄制;(4)錄制結(jié)束,將錄制的視頻上傳到存儲服務(wù)器內(nèi)進行解析;(5)將視頻解析成視頻幀(圖像),并進行視頻幀壓縮封裝;(6)將視頻幀發(fā)送至顯示設(shè)備進行編輯;(7)觸發(fā)保存圖片指令,將視頻幀進行封裝轉(zhuǎn)換為GIF格式動態(tài)圖。
其中,視頻獲取方法如下:
(1)通過視頻播放地址,獲取視頻源文件,即獲取線上視頻;
(2)可直接獲取視頻源文件,即獲取本地視頻。
此外,針對錄屏步驟說明如下。
(1)視頻播放中,觸發(fā)GIF按鈕,彈出錄屏錄制框,采用QT語言調(diào)取錄屏框,其中錄制框可根據(jù)用戶需求自由調(diào)節(jié)位置及尺寸。點擊例如“截圖”按鈕將信息發(fā)送到后臺服務(wù)器內(nèi),后臺開始調(diào)取對應(yīng)的槽函數(shù),主要調(diào)取屏幕(顯示界面)上4個坐標標記點(整個屏幕的寬度,整個屏幕的高度,選區(qū)的X軸,選區(qū)的Y軸)(對應(yīng)于視頻的四個相關(guān)參數(shù))。根據(jù)不同的截屏狀態(tài)(視頻狀態(tài))和這4個坐標點的值,后臺開始計算截屏的區(qū)域。當前臺改變錄屏框的位置,在移動選取過程中后臺需要記錄8個控制點(左上點、右上點、左下點、右下點、上中點、下中點、左中點、右中點);對移動的選區(qū)進行判斷,獲取移動控制點的選區(qū)值,在每次移動選區(qū)過程后,對開始的坐標和最后的坐標重新進行修改,并更新這8個控制點的坐標。其中,在移動、放大或縮小錄屏框的過程中,錄屏框的邊緣通常不能超出顯示界面的邊緣。
然后,可以觸發(fā)視頻錄制開始按鈕,將指令發(fā)送給播放內(nèi)核,此時系統(tǒng)開始獲取視頻源。
(2)當錄制鍵被觸發(fā)時保存視頻直到錄制鍵被釋放,若保存的視頻的大小達到預(yù)先設(shè)置的上限值則結(jié)束錄制;
(3)錄制結(jié)束后,將錄制視頻上傳到視頻存數(shù)服務(wù)器內(nèi),通過API系統(tǒng)解析視頻源,得到視頻幀的數(shù)據(jù),生成出N個視頻幀,所述的N個視頻幀通過各個時間間隔抓取一次屏幕圖像來生成,其中N是大于1的整數(shù);調(diào)整N個視頻幀之間的時間間隔,生成每個視頻幀的時間戳;將每個視頻幀的時間戳寫入該視頻幀的幀結(jié)構(gòu)后進行視頻幀(圖像)壓縮封裝;
(4)將封裝的視頻幀(圖像)發(fā)送到設(shè)備顯示器上,可進行更多個性化編輯。例如,可以對視頻幀(圖像)進行篩選,并對篩選出的視頻幀進行個性化編輯。例如,可以對視頻幀的播放順序進行正序或倒序排列,還可以對生成的GIF圖進行變速播放;
(5)個性化編輯完成后,點擊保存后,將視頻幀進行封裝,將視頻幀生成GIF動態(tài)圖,通過位圖圖像串聯(lián)起來生成GIF格式動態(tài)圖。
這樣,通過本實施例的GIF圖的制作方法,根據(jù)所播放的視頻的狀態(tài)來確定第一錄屏框,并且根據(jù)用戶需求來調(diào)節(jié)對所播放的視頻進行錄屏操作的錄屏框的位置和/尺寸,然后根據(jù)所得到的錄屏框(第二錄屏框)進行錄屏操作,再對錄屏得到的視頻進行改變時間間隔、改變顯示順序、壓縮以及選擇適當?shù)膸瑘D像等的處理,從而制作出用戶所期望的GIF圖。這樣,能夠根據(jù)用戶需求,針對各種視頻進行錄屏操作來制作出用戶所期望的GIF圖,從而能夠滿足用戶的即時需求,進而提高用戶體驗。
實施例4
圖5示出根據(jù)本發(fā)明一實施例的GIF圖的制作裝置的結(jié)構(gòu)框圖。如圖5所示,GIF圖的制作裝置50主要包括:顯示單元51,用于在待處理視頻的顯示界面內(nèi)顯示第一錄屏框;調(diào)節(jié)單元52,與所述顯示單元51連接,用于根據(jù)用戶在所述待處理視頻的顯示界面內(nèi)對所述第一錄屏框的位置參數(shù)和/或尺寸參數(shù)的調(diào)節(jié),來形成第二錄屏框;錄屏單元53,與所述調(diào)節(jié)單元52連接,用于根據(jù)所述第二錄屏框?qū)λ龃幚硪曨l進行錄屏;以及制作單元54,與所述錄屏單元53連接,用于根據(jù)錄屏得到的視頻來制作圖像互換格式圖。
在一種可能的實現(xiàn)方式中,所述顯示單元51包括:確定和選取模塊511,確定所述顯示界面的寬度和高度,并在所述顯示界面內(nèi)選取作為基準的相互垂直的X軸和Y軸;尺寸確定模塊512,與所述確定和選取模塊511連接,用于根據(jù)所述顯示界面的寬度和高度來確定所述第一錄屏框的尺寸;位置確定模塊513,與所述確定和選取模塊511連接,用于根據(jù)所述X軸和所述Y軸的交點來確定所述第一錄屏框的位置;顯示模塊514,與所述尺寸確定模塊512和所述位置確定模塊513連接,用于根據(jù)所述第一錄屏框的位置和尺寸在所述顯示界面內(nèi)顯示所述第一錄屏框。
在一種可能的實現(xiàn)方式中,所述調(diào)節(jié)單元52包括:位置參數(shù)獲取模塊521,用于根據(jù)用戶在所述顯示界面內(nèi)對所述第一錄屏框的移動操作,來獲取所述第二錄屏框的位置參數(shù);和/或尺寸參數(shù)獲取模塊522,用于根據(jù)用戶在所述顯示界面內(nèi)對所述第一錄屏框的尺寸的放大或縮小操作,來獲取所述第二錄屏框的尺寸參數(shù);形成模塊523,用于根據(jù)所述第二錄屏框的位置參數(shù)和/或尺寸參數(shù)在所述顯示界面內(nèi)形成所述第二錄屏框。
在一種可能的實現(xiàn)方式中,所述制作單元54包括:解析模塊541,用于將錄屏得到的視頻解析出各幀圖像;處理模塊542,與所述解析模塊541連接,用于對所解析出的各幀圖像進行以下至少一種處理:從所解析出的各幀圖像中選取特定數(shù)量的幀圖像、改變所解析出的各幀圖像之間的時間間隔、改變所解析出的各幀圖像的顯示順序以及所解析出的各幀圖像進行壓縮;制作模塊543,與所述處理模塊542連接,用于將處理后的各幀圖像合成來制作圖像互換格式圖。
在一種可能的實現(xiàn)方式中,所述待處理視頻包括線上視頻和/或本地視頻。
本實施例的GIF圖的制作裝置可以用來執(zhí)行上述實施例1~3中所述的GIF圖的制作方法。該GIF圖的制作方法的具體過程請參見上述實施例1~3的詳細闡述。
通過本實施例的GIF圖的制作裝置,根據(jù)所播放的視頻的狀態(tài)來確定第一錄屏框,并且根據(jù)用戶需求來調(diào)節(jié)對所播放的視頻進行錄屏操作的錄屏框的位置和/尺寸,然后根據(jù)所得到的錄屏框(第二錄屏框)進行錄屏操作,再對錄屏得到的視頻進行改變時間間隔、改變顯示順序、壓縮以及選擇適當?shù)膸瑘D像等的處理,從而制作出用戶所期望的GIF圖。這樣,能夠根據(jù)用戶需求,針對各種視頻進行錄屏操作來制作出用戶所期望的GIF圖,從而能夠滿足用戶的即時需求,進而提高用戶體驗。
實施例5
圖6示出本發(fā)明另一實施例的GIF圖的制作裝置的結(jié)構(gòu)框圖。制作裝置1100可以是具備計算能力的主機服務(wù)器、個人計算機PC、或者可攜帶的便攜式計算機或終端等。本發(fā)明具體實施例并不對計算節(jié)點的具體實現(xiàn)做限定。
所述制作裝置1100包括處理器(processor)1110、通信接口(Communications Interface)1120、存儲器(memory)1130和總線1140。其中,處理器1110、通信接口1120、以及存儲器1130通過總線1140完成相互間的通信。
通信接口1120用于與網(wǎng)絡(luò)設(shè)備通信,其中網(wǎng)絡(luò)設(shè)備包括例如虛擬機管理中心、共享存儲等。
處理器1110用于執(zhí)行程序。處理器1110可能是一個中央處理器CPU,或者是專用集成電路ASIC(Application Specific Integrated Circuit),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。
存儲器1130用于存放文件。存儲器1130可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。存儲器1130也可以是存儲器陣列。存儲器1130還可能被分塊,并且所述塊可按一定的規(guī)則組合成虛擬卷。
在一種可能的實施方式中,上述程序可為包括計算機操作指令的程序代碼。該程序具體可用于:實現(xiàn)上述各實施例中的方法的各步驟的操作。
本領(lǐng)域普通技術(shù)人員可以意識到,本文所描述的實施例中的各示例性單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件形式來實現(xiàn),取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以針對特定的應(yīng)用選擇不同的方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。
如果以計算機軟件的形式來實現(xiàn)所述功能并作為獨立的產(chǎn)品銷售或使用時,則在一定程度上可認為本發(fā)明的技術(shù)方案的全部或部分(例如對現(xiàn)有技術(shù)做出貢獻的部分)是以計算機軟件產(chǎn)品的形式體現(xiàn)的。該計算機軟件產(chǎn)品通常存儲在計算機可讀取的非易失性存儲介質(zhì)中,包括若干指令用以使得計算機設(shè)備(可以是個人計算機、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各實施例方法的全部或部分步驟。而前述的存儲介質(zhì)包括U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以所述權(quán)利要求的保護范圍為準。