在視頻流中加載字幕的方法及播放器的製作方法
2023-04-23 18:00:36 3
專利名稱:在視頻流中加載字幕的方法及播放器的製作方法
技術領域:
本發明涉及多媒體技術,尤其涉及在視頻流中加載字幕的方法及播放器。
背景技術:
字幕,指以文字形式顯示於電視、電影、舞臺作品裡面的對話等非影像 內容,也泛指影視作品後期加工的文字。影視作品的對話字幕, 一般出現在屏幕下方;而戲劇作品的字幕,則可能顯示於舞臺兩旁或上方。將節目的語 音內容以字幕方式顯示,可以幫助聽力較弱的觀眾理解節目內容;另外,字 幕也能用於翻譯外語節目,讓不理解該外語的觀眾既能聽見原作的聲帶,也 能同時理解節目內容。目前,在計算機上使用播放器軟體觀看視頻節目已經成為一種非常普遍 的學習、休閒、娛樂方式,用戶在觀看視頻的過程中,通常都會希望視頻流 中包括字幕。現有的主流播放器軟體都支持在播放過程中載入外掛字幕,讓 用戶可以方便的選擇適合自己的字幕(比如可以選擇英文字幕或中文字幕), 但問題是現有的很多字幕文件都只有單一的語言,不能支持同時載入多個字 幕文件,在這種情況下,如果用戶需要選擇不同的語言,就需要反覆的載入 不同的字幕文件。參見圖1,為現有技術中播放器軟體的原理性結構示意圖,該播放器包 括媒體文件解析模塊、音視頻解碼模塊、後處理模塊和渲染模塊。 媒體文件解析模塊,解析出媒體文件的格式。媒體文件的格式包括音頻視頻交錯格式(AVI , Audio Video Interleaved)、高級流衝各式(ASF, Advanced Streaming Format)和數位化-見頻光碟(DVD, Digital Video Disk )格式等。音視頻解碼模塊,採用與解析出的媒體文件的格式對應的方法,對媒體 文件進行音視頻解碼,得到解碼後的音頻流和視頻流。後處理模塊,對解碼後的音頻流和視頻流進行後處理,包括讀取字幕文 件,將字幕疊加到解碼後的視頻流上,對視頻流進行圖像柔和處理。字幕文 件可以包含於媒體文件中,也可以獨立於媒體文件存儲。渲染模塊,用於將後處理之後的視頻流顯示出來。字幕疊加的方法可以在後處理模塊中實現;也可以在渲染模塊中實現, 在渲染模塊中實現時,後處理模塊不進行將字幕疊加到解碼後的視頻上的處 理,而由渲染模塊在顯示視頻流的同時讀取字幕文件,將字幕顯示出來。現有的在視頻流中加載字幕的方案具有以下缺點只能讀取一個字幕文 件,不能同時讀取兩個以上的字幕文件, 一般情況下, 一個字幕文件中只包 含一種語言,相應地通過渲染模塊只顯示出一種語言,某些情況下, 一個字 幕文件中包含有兩種語言,相應地通過渲染模塊顯示出兩種語言;但是,當 用戶需要在視頻流中同時顯示兩個字幕文件包含的語言字幕時,現有技術卻 無法實現。發明內容本發明提供一種在視頻流中加載字幕的方法,該方法能夠實現同時在視 頻流中加載兩個以上字幕文件中的字幕。本發明提供一種播放器,該播放器能夠實現同時在視頻流中加載兩個以 上字幕文件中的字幕。一種在視頻流中加載字幕的方法,該方法包括識別和解析所選的兩個以上字幕文件,讀取所選的兩個以上字幕文件的字 幕信息;檢查讀取的所選的兩個以上字幕文件的字幕信息之間是否匹配,如果匹配, 則存儲所選的兩個以上字幕文件的字幕信息;提取存儲的所選的兩個以上字幕文件的字幕信息的字幕,疊加到音視頻解 碼模塊輸出的視頻流中,並在疊加時根據分別針對所選的兩個以上字幕文件的調整指令進行字幕調整處理。一種播放器,該播放器包括媒體文件解析模塊、音視頻解碼模塊、後處理模塊和渲染模塊;所述後處理模塊包括字幕文件加載模塊、字幕信息匹配模 塊、數據存儲模塊以及字幕疊加和處理模塊;字幕文件加載模塊,用於識別和解析所選的兩個以上字幕文件,讀取所選 的兩個以上字幕文件的字幕信息;字幕信息匹配模塊,用於檢查讀取的所選的兩個以上字幕文件的字幕信息 之間是否匹配,如果匹配,則將所選的兩個以上字幕文件的字幕信息存儲於數 據存儲模塊;字幕疊加和處理模塊,用於從數據存儲模塊中提取所選的兩個以上字幕文 件的字幕信息的字幕,疊加到音視頻解碼模塊輸出的視頻流中,並在疊加時根 據分別針對所選的兩個以上字幕文件的調整指令進行字幕調整處理。從上述方案可以看出,本發明中,識別和解析所選的兩個以上字幕文件, 讀取所選的字幕文件的字幕信息,進行匹配檢查後存儲,在進行視頻播放時, 提取存儲的字幕文件的字幕信息的字幕,疊加到音視頻解碼模塊輸出的視頻 流中,並在疊加時進行字幕調整處理。這樣,實現了在視頻流中同時加載兩 個以上字幕文件中的字幕。
圖1為播放器的原理性結構示意圖;圖2為本發明字幕管理模塊的結構示意圖;圖3為本發明中用戶交互模塊向用戶顯示的當前所有字幕文件的信息;圖4為本發明在視頻流中加載字幕的方法流程圖;圖5為本發明在視頻流中加載字幕的方法流程圖實例。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚明白,下面結合實施例和 附圖,對本發明進一步詳細說明。本發明的播放器結構示意圖為圖1所示,與現有技術不同的是,本發明在 後處理模塊中增加字幕管理模塊,實現在視頻流中同時加載兩個字幕文件中的字幕。參見圖2,為本發明字幕管理模塊的結構示意圖,該字幕管理模塊包括用 戶交互模塊、字幕文件加載模塊、數據存儲模塊、字幕信息匹配模塊以及字幕 疊加和處理模塊。用戶交互模塊,用於接收用戶輸入的兩個以上字幕文件的選取指令。用戶選擇字幕文件時,用戶交互模塊向用戶顯示當前的所有字幕文件的信 息,其顯示形式可以為圖3所示,圖3中,用戶所選的字幕文件為簡體字幕文 件和英文字幕文件。用戶交互模塊還可用於接收用戶輸入的其他指令以及向用 戶展示字幕加載過程中的其他反饋信息,例如接收用戶輸入的關於指定字幕文 件的字幕位置調整指令、關於指定字幕文件的字體格式調整指令和/或關於指定 字幕文件的字幕效果調整指令等,傳送給字幕疊加和處理模塊。字幕文件加載模塊,用於識別和解析所選的兩個以上字幕文件,讀取所 述字幕文件的字幕信息。進行識別和解析時,可逐一對所選的兩個以上字幕 文件進行識別和解析,逐一讀取出各個字幕文件的字幕信息,存儲到數據存 儲模塊中。對各個字幕文件進行逐一識別和解析的方法與現有技術相同,這 裡不贅述。字幕文件加載模塊識別和解析的所選的兩個以上字幕文件,可以 是用戶輸入用戶交互模塊的選取指令中所指定的兩個以上字幕文件;也可以 是默認的當前的所有字幕文件,這種情況下,用戶交互模塊無需向用戶顯示 當前的所有字幕文件並接收用戶輸入的兩個以上字幕文件的選取指令。現有技術中,由於只能對單一的一個字幕文件進行識別和解析,在識別和 解析字幕文件的字幕信息時,如果之前已經讀取並存儲過一個字幕文件的字幕信息,則讀取當前字幕文件的字幕信息後進行存儲時,將覆蓋之前已經存儲的 字幕文件的字幕信息,也就是,現有技術中只存儲一個字幕文件的字幕信息。 而本發明中,在對兩個以上字幕文件的字幕信息進行識別和解析之後,分別存 儲所選的兩個以上字幕文件的字幕信息,而並不限制為只存儲一個字幕文件的字幕信息。對字幕文件進行識別和解析後,得到字幕文件的格式信息和字幕信息,字 幕信息包括時間信息和文字信息,文字信息包含了需要顯示在視頻流中的字幕。字幕文件的格式包括sub、 idx或srt等。字幕信息匹配模塊,用於檢查讀取的字幕文件的字幕信息之間是否匹配, 如果匹配,則將所選的兩個以上字幕文件的字幕信息存儲於數據存儲模塊。字幕疊加和處理模塊,用於從數據存儲模塊中提取所選的兩個以上字幕文 件的字幕信息的字幕,疊加到音視頻解碼模塊輸出的視頻流中,並在疊加時根 據分別針對所選的兩個以上字幕文件的調整指令進行字幕調整處理。進行字幕調整時,可以根據默認的調整指令對各字幕文件的字幕在圖像中 的位置、各字幕文件的字體格式和/或各字幕文件的字幕效果等對各字幕進行調 整;也可以根據用戶交互模塊輸入的調整指令對指定的字幕文件的字幕進行調 整,相應地,字幕調整處理包括調整指定字幕文件的字幕位置、調整指定字幕 文件的字體格式和/或調整指定字幕文件的字幕效果等處理。這裡,假設用戶選 擇的字幕文件包括英文字幕文件和日語字幕文件,如果由用戶交互模塊輸入的 字幕位置調整指令為將英文字幕文件的字幕調整到圖像的最上方,則字幕疊加 和處理模塊根據調整指令將英文字幕調整到圖像的最上方;如果由用戶交互模 塊輸入的字體格式調整指令為將英文字幕文件的字幕調整為加粗字體,則字幕 疊加和處理模塊根據字體格式調整指令將英文字幕調整為加粗字體;類似地, 可對指定字幕文件的字幕進行字幕效果的調整,字幕效果包括字體半透明顯示、 字體全透明顯示或字體陰影顯示等。如果所選的兩個以上字幕文件為默認的當前的所有字幕文件,則字幕疊加 和處理模塊在進行字幕調整處理時包括根據用戶輸入的關於指定字幕文件的字幕效果調整指令進行字幕全透明化處理。這樣,通過執行關於指定字幕文件 的字幕效杲調整指令,可以將用戶不希望顯示出來的字幕全透明化,而保留 用戶希望顯示出來的字幕。現有技術中只有一個字幕文件,在視頻流中加載字幕時,圖像中顯示的字 幕是一個整體,進行字幕調整時也只能以字幕整體為對象進行調整,特別地, 對於顯示有兩種字幕的情況,字幕調整時,以兩種字幕做為整體進行調整,當 用戶只需要對其中某一種指定的字幕進行調整時,卻不能實現。而本發明中, 由於每種字幕文件的字幕信息分別獨立,可以針對某個指定字幕文件的字幕信息進行獨立調整處理,滿足了用戶需求。可選地,為了進一步提高字幕加載的成功率,在所述字幕信息匹配模塊和 數據存儲模塊之間包括字幕合法性檢查模塊,用於檢查讀取的字幕文件的字 幕信息是否合法,如果合法,則將字幕信息存儲於數據存儲模塊中,如果不 合法,則可通過用戶交互模塊向用戶提示字幕文件非法,加載失敗的信息。本發明還提供了在視頻流中加載字幕的方法,該方法包括以下步驟 步驟401,識別和解析所選的兩個以上字幕文件,讀取各個字幕文件的 字幕信息。所選的兩個以上字幕文件可以是默認的當前的所有字幕文件;也可以是用 戶所選的字幕文件,此時,本步驟之前,該方法包括接收用戶輸入的兩個以 上字幕文件的選取指令。步驟402,衝企查讀取的所選兩個以上字幕文件的字幕信息之間是否匹配, 如果匹配,則存儲所選的兩個以上字幕文件的字幕信息。可選地,本步驟存儲所選的兩個以上字幕文件的字幕信息之前,包括檢 查讀取的各個字幕文件的字幕信息是否合法,如果合法,則執行存儲的步驟; 如果不合法,則結束流程。檢查讀取的各個字幕文件的字幕信息是否合法包括檢查讀取的各個字幕 文件的字幕信息格式是否正確,以及各個字幕文件的字幕信息是否完整;檢查 讀取的各個字幕文件的字幕信息之間是否匹配包括-險查讀取的各個字幕文件的字幕信息包含的時間信息是否 一 致。合法性檢查和匹配檢查可無序執行,可先執行合法性檢查再執行匹配檢查, 也可先執行匹配檢查再執行合法性檢查,還可以合法性檢查和匹配檢查同時執行。步驟403,提取存儲的所選的兩個以上字幕文件的字幕信息的字幕,疊加 到音視頻解碼模塊輸出的視頻流中,並在疊加時根據分別針對所選的兩個以上 字幕文件的調整指令進行字幕調整處理。如果所選的兩個以上字幕文件是默認的當前的所有字幕文件,則本步驟進 行字幕調整處理時包括對指定字幕文件的字幕進行全透明化處理,具體地,根 據用戶輸入的關於指定字幕文件的字幕效果的調整指令,進行字幕全透明化處 理。例如,當前的所有字幕文件包括A、 B、 C和D,進行字幕調整處理時,接 收到用戶輸入的關於A和B的字幕全透明化的調整指令,則在疊加是對A和B 的字幕進行全透明化處理。下面通過圖5的流程對本發明的方法進行舉例說明,該實施例中假設所選 的兩個以上字幕文件為根據用戶輸入的選取指令確定的字幕文件,該方法包括 以下步驟步驟501,接收用戶所選的兩個以上字幕文件的信息。 步驟502,識別和解析所選的兩個以上字幕文件,讀取各個字幕文件的 字幕信息。對字幕文件進行識別和解析後,得到字幕文件的格式信息和字幕信息,字 幕文件的格式信息通過字幕文件的文件名後綴體現,字幕信息包括時間信息和 文字信息。步驟503,檢查讀取的各個字幕文件的字幕信息的合法性,如果檢查通過, 則執行步驟504,否則向用戶提示字幕文件非法,加載失敗的信息。 本步驟是為了增加字幕加載的成功率,為可選。檢查字幕文件的字幕信息是否合法包括檢查字幕文件的字幕信息格式是 否正確,以及各個字幕文件的字幕信息是否完整。;險查字幕文件的字幕信息格式是否正確包括;險查字幕文件的字幕信息的格式與步驟502中識別和解析後 得到的相應字幕文件的格式信息是否一致,如果一致,則該字幕文件的字幕信 息格式正確,如果不一致,則該字幕文件的字幕信息格式不正確。步驟504,判斷是否存儲有之前讀取的字幕文件的字幕信息,如果存儲 有,則執行步驟505,否則執行步驟507。存儲有之前讀取的字幕文件的字幕信息,表明之前已經讀取並存儲了需 要加載到視頻流中的字幕文件的字幕信息,也就是,當前不只要加載步驟 501所選的兩個以上字幕文件的字幕信息,還要加載之前已經讀取的字幕文 件的字幕信息。本實施例中,假設存儲的之前讀取的字幕文件的字幕信息已 經經過合法性;險查和匹配4企查。步驟505,檢查用戶所選的兩個以上字幕文件的字幕信息之間,以及所 選的兩個以上字幕文件的字幕信息與之前存儲的字幕文件的字幕信息之間是否 匹配,如果匹配,則執行步驟507,否則執行步驟506。本步驟是為了增加字幕加載的成功率,為可選。檢查兩個字幕文件的字幕信息之間是否匹配包括檢查兩個字幕文件的 字幕信息包含的時間信息是否一致。通常情況下,同一個視頻文件對應的各 個字幕文件的時間信息是一致的;某些情況,如果兩個字幕文件的時間信息之 間(比如中文字幕文件和英文字幕文件)存在時間差,但時間差在設定時間內, 則認為這兩個字幕文件的時間信息一致,屬於可匹配的兩個字幕文件,如果時 間差大於設定時間,則這兩個字幕文件的時間信息不一致。O.l秒是一般用戶視 覺和聽覺可以允許的差距界限,可以將設定時間設置為0.1秒。字幕信息中的文字信息包含多個小節,每個小節可以是一句話,為第一小 節、第二小節、第三小節......;時間信息中包含了各個小節的起止時間點,為第一時間點、第二時間點、第三時間點.....;第一小節對應於該小節起始的第一時間點和該小節終止的第二時間點,第二小節對應於該小節起始的第三時間點 和該小節終止的第四時間點,依次類推,其他小節類似地對應各自的起止時間 點。由於時間信息中的第 一 時間點之後的各個時間點之間的時間間隔是相同的,則檢查兩個字幕文件的字幕信息包含的時間信息是否 一致,可以通過檢查兩 個字幕文件的字幕信息中的第 一 時間點的差距是否大於或等於設定時間,如果 大於或等於設定時間,則這兩個字幕文件的字幕信息包含的時間信息一致, 否則這兩個字幕文件的字幕信息包含的時間信息不一致。步驟506,向用戶提示匹配失敗,詢問是否仍然加載,如果仍然加載,則 執行步驟507,否則向用戶提示加載失敗的信息。步驟507,存儲步驟502中讀取的各個字幕文件的字幕信息。步驟508,提取存儲的所有字幕文件的字幕信息的字幕,疊加到視頻流 中,並在疊加時進行字幕調整處理。採用本發明方案,可以同時在播放器中同時加載兩個以上字幕文件,將 兩種以上的語言同時顯示出來,滿足了用戶需求。以上所述的具體實施例,對本發明的目的、技術方案和有益效果進行了 進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施例而已, 並不用於限定本發明的保護範圍,凡在本發明的精神和原則之內,所做的任 何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。權利要求
1、一種在視頻流中加載字幕的方法,其特徵在於,該方法包括識別和解析所選的兩個以上字幕文件,讀取所選的兩個以上字幕文件的字幕信息;檢查讀取的所選的兩個以上字幕文件的字幕信息之間是否匹配,如果匹配,則存儲所選的兩個以上字幕文件的字幕信息;提取存儲的所選的兩個以上字幕文件的字幕信息的字幕,疊加到音視頻解碼模塊輸出的視頻流中,並在疊加時根據分別針對所選的兩個以上字幕文件的調整指令進行字幕調整處理。
2、 如權利要求l所述的方法,其特徵在於,所述識別和解析所選的兩個以 上字幕文件之前,該方法包括接收用戶輸入的兩個以上字幕文件的選取指令。
3、 如權利要求l所述的方法,其特徵在於,所述所選的兩個以上字幕文件 為當前的所有字幕文件;所述進行字幕調整處理包括對指定字幕文件的字幕進行全透明化處理。
4、 如權利要求l所述的方法,其特徵在於,所述進行字幕調整處理包括 調整指定字幕文件的字幕位置、調整指定字幕文件的字體格式和/或調整指定字幕文件的字幕效果。
5、 如權利要求1至4中任一項所述的方法,其特徵在於,所述存儲所選的 兩個以上字幕文件的字幕信息之前,該方法包括檢查讀取的所選的兩個以上字幕文件的字幕信息是否合法,如果合法,則 執行所述存儲所選的兩個以上字幕文件的字幕信息的步驟。
6、 如權利要求5所述的方法,其特徵在於,所述檢查讀取的所選的兩個以 上字幕文件的字幕信息是否合法包括檢查讀取的所選的兩個以上字幕文件的 字幕信息格式是否正確,以及所選的兩個以上字幕文件的字幕信息是否完整。
7、 如權利要求l所述的方法,其特徵在於,所述檢查讀取的所選的兩個以上字幕文件的字幕信息之間是否匹配包括判斷讀取的所選的兩個以上字幕文 件的字幕信息包含的時間信息中的第一時間點之間的差距是否小於或等於設定 時間,如果是,則匹配。
8、 一種播放器,該播放器包括媒體文件解析模塊、音視頻解碼模塊、後處 理模塊和渲染模塊;其特徵在於,所述後處理模塊包括字幕文件加載模塊、字 幕信息匹配模塊、數據存儲模塊以及字幕疊加和處理模塊;字幕文件加載模塊,用於識別和解析所選的兩個以上字幕文件,讀取所選 的兩個以上字幕文件的字幕信息;字幕信息匹配模塊,用於檢查讀取的所選的兩個以上字幕文件的字幕信息 之間是否匹配,如果匹配,則將所選的兩個以上字幕文件的字幕信息存儲於數 據存儲模塊;字幕疊加和處理模塊,用於從數據存儲模塊中提取所選的兩個以上字幕文 件的字幕信息的字幕,疊加到音視頻解碼模塊輸出的視頻流中,並在疊加時根 據分別針對所選的兩個以上字幕文件的調整指令進行字幕調整處理。
9、 如權利要求8所述的播放器,其特徵在於,該播放器包括用戶交互模塊, 用於接收用戶輸入的兩個以上字幕文件的選取指令。
10、 如權利要求8或9所述的播放器,其特徵在於,所述字幕信息匹配模 塊和數據存儲模塊之間包括字幕合法性檢查模塊,用於檢查讀取的所選的兩個 以上字幕文件的字幕信息是否合法,如果合法,則將字幕信息存儲於數據存儲 模塊中。
全文摘要
本發明公開了一種在視頻流中加載字幕的方法及播放器,該方法包括識別和解析所選的兩個以上字幕文件,讀取所選的兩個以上字幕文件的字幕信息;檢查讀取的所選兩個以上字幕文件的字幕信息之間是否匹配,如果匹配,則存儲所選的兩個以上字幕文件的字幕信息;提取存儲的所選的兩個以上字幕文件的字幕信息的字幕,疊加到音視頻解碼模塊輸出的視頻流中,並在疊加時根據分別針對所選的兩個以上字幕文件的調整指令進行字幕調整處理。本發明方案實現了在視頻流中同時加載兩個以上字幕文件中的字幕。
文檔編號H04N5/278GK101404730SQ200810161350
公開日2009年4月8日 申請日期2008年9月23日 優先權日2008年9月23日
發明者吳運聲, 戴永裕 申請人:騰訊科技(深圳)有限公司