本發(fā)明涉及多媒體通信領域,尤其涉及一種實時字幕播出方法及系統(tǒng)。
背景技術:
近年來,隨著我國寬帶網(wǎng)絡建設和媒體技術的飛速發(fā)展,流媒體業(yè)務已逐漸成為互聯(lián)網(wǎng)中最具代表性的應用?;诜侄嗡枷氲拿襟w分發(fā)方法具有快速啟動、自適應碼率切換、用戶體驗好等優(yōu)點,得到廣泛應用。
目前,流媒體技術已經(jīng)是比較成熟的媒體技術,廣泛應用于電子商務、新聞發(fā)布、視頻直播、視頻點播、視頻會議和即時通信等互聯(lián)網(wǎng)信息服務上。為了給用戶帶來更豐富的體驗,除了向用戶提供優(yōu)質(zhì)的視頻服務外,一般還提供字幕服務。對于點播媒體,工作人員有足夠的時間對視頻做后期處理,加上字幕;對于字幕顯示位置固定或變化不大的直播,比如體彩號、比賽比分等,可以基于字幕模板實時更新固定位置的字幕信息;但對于更為廣泛的直播,字幕無法實時生成。對于直播現(xiàn)場比較混亂的情況或者有聽力障礙的觀眾,沒有字幕的直播,將導致觀眾無法獲取到準確信息,用戶體驗滿意度將大大降低。
技術實現(xiàn)要素:
本發(fā)明的目的是為了解決現(xiàn)有技術存在的上述不足,提供一種通過對直播過程中的流媒體片段進行音頻信息提取,從而生成字幕文件,使終端同步播放字幕內(nèi)容和流媒體片段的方法。
為實現(xiàn)上述目的,第一方面,本發(fā)明提供了一種實時字幕播出方法,該方法包括以下步驟:
將媒體流分段生成多個媒體流片段;
提取多個媒體流片段中的每個媒體流片段的音頻信息;
根據(jù)音頻信息生成字幕流,其中,字幕流包括,字幕文件和字幕文件對應的索引信息;
存儲多個字幕流;
接收終端發(fā)送的播放請求,播放請求用于查找第一流媒體片段對應的第一字幕流;
當確定第一字幕流已存儲,向終端發(fā)送第一字幕流和第一流媒體片段,以便終端解析第一字幕流,得到第一字幕內(nèi)容,使第一字幕內(nèi)容和第一媒體流片段同步播放。
優(yōu)選地,該方法還包括:當?shù)谝蛔帜涣靼l(fā)送完畢,將存儲的第一字幕流進行刪除。
優(yōu)選地,將媒體流分段生成多個媒體流片段,還包括:
確定多個媒體流片段中的一個媒體流片段為第一段媒體流片段;
當多個媒體流片段中的一個媒體流片段為第一段媒體流片段時,生成第一段媒體流片段對應的索引信息。
優(yōu)選地,將媒體流分段生成多個媒體流片段,還包括:
當多個媒體流片段中的一個媒體流片段為第N段媒體流片段時,確定第N-1段媒體流片段對應的字幕流已存儲,其中,N為大于1的整數(shù);
當?shù)贜-1段媒體流片段對應的字幕流已存儲時,生成第N段媒體流片段對應的索引信息。
第二方面,本發(fā)明提供了一種實時字幕播出方法,該方法包括以下步驟:
向服務器發(fā)送播放請求,播放請求用于查找第一流媒體片段對應的第一字幕流;
接收服務器發(fā)送的第一流媒體片段和第一媒體流片段對應的第一字幕流;
解析第一字幕流,得到第一字幕內(nèi)容,使第一字幕內(nèi)容和第一媒體流片段同步播放。
第三方面,本發(fā)明提供了一種服務器,該服務器包括:編碼模塊、字幕生成模塊、處理模塊;
編碼模塊用于將媒體流分段生成多個媒體流片段;
字幕生成模塊用于提取多個媒體流片段中的每個媒體流片段的音頻信息;并且,根據(jù)音頻信息生成字幕流,其中,字幕流包括,字幕文件和字幕文件對應的索引信息;
處理模塊用于存儲多個字幕流;
處理模塊還用于接收終端發(fā)送的播放請求,并根據(jù)播放請求,將第一媒體流片段和第一媒體流片段對應的第一字幕流發(fā)送至終端。
優(yōu)選地,處理模塊還用于,當?shù)谝涣髯帜涣靼l(fā)送完畢,將存儲的第一字幕流進行刪除。
優(yōu)選地,編碼模塊還用于:
確定多個媒體流片段中的一個媒體流片段為第一段媒體流片段;
當多個媒體流片段中的一個媒體流片段為第一段媒體流片段時,生成第一段媒體流片段對應的索引信息。
優(yōu)選地,編碼模塊還用于:
當多個媒體流片段中的一個媒體流片段為第N段媒體流片段時,確定第N-1段媒體流片段對應的字幕流已存儲,其中,N為大于1的整數(shù);
當?shù)贜-1段媒體流片段對應的字幕流已存儲時,生成第N段媒體流片段對應的索引信息。
第四方面,本發(fā)明提供了一種系統(tǒng),該系統(tǒng)包括:終端和服務器;
該終端包括:發(fā)送模塊、接收模塊、解析模塊和顯示模塊;
發(fā)送模塊用于向服務器發(fā)送播放請求,播放請求用于查找第一流媒體片段對應的第一字幕流;
接收模塊用于接收服務器發(fā)送的第一流媒體片段和第一媒體流片段對應的第一字幕流;
解析模塊用于解析第一字幕流,得到第一字幕內(nèi)容;
顯示模塊用于同步播放第一字幕內(nèi)容和第一媒體流片段。
本發(fā)明通過對直播過程中的流媒體片段進行音頻信息提取,實時生成每個流媒體片段對應的字幕流,從而使終端同步播放字幕內(nèi)容和流媒體片段。同時,本發(fā)明將字幕流與流媒體片段分開傳輸,使字幕流只需以簡單文本格式即可進行傳輸,簡單高效;并且字幕的結(jié)構(gòu)不受限制,可以輕易擴展,極大地提升了用戶體驗度。
附圖說明
圖1為本發(fā)明實施例提供的一種實時字幕播出方法的示意過程圖;
圖2為本發(fā)明實施例提供的一種生成多個媒體流片段的方法流程圖;
圖3為本發(fā)明實施例提供的一種安裝應用程序的方法流程圖;
圖4為本發(fā)明實施例提供的一種實時字幕播出系統(tǒng)的結(jié)構(gòu)性框圖。
具體實施方式
為使本發(fā)明實施例的技術方案以及優(yōu)點表達的更清楚,下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。
圖1為本發(fā)明實施例提供的一種實時字幕播出方法流程圖,如圖1所示,該方法包括:
步驟110,將媒體流分段生成多個媒體流片段。
具體地,如圖2所示,步驟110,將媒體流分段生成多個媒體流片段,還包括:
步驟111,確定多個媒體流片段中的一個媒體流片段為第一段媒體流片段。
當多個媒體流片段中的一個媒體流片段為第一段媒體流片段時,執(zhí)行步驟113;
當所述多個媒體流片段中的一個媒體流片段為第N段媒體流片段時,其 中,N為大于1的整數(shù),執(zhí)行步驟112。
步驟112,確定第N-1段媒體流片段對應的字幕流已存儲,其中,N為大于1的整數(shù)。
當?shù)贜-1段媒體流片段對應的字幕流已存儲完畢時,執(zhí)行步驟113;
若第N-1段媒體流片段對應的字幕流未存儲完畢,則掛起等待,直至第N-1段媒體流片段對應的字幕流存儲完畢,再執(zhí)行步驟113。
步驟113,生成第N段媒體流片段對應的索引信息。
步驟120,提取多個媒體流片段中的每個媒體流片段的音頻信息。
需要說明的是,若無媒體流片段生成時,則掛起等待。
步驟130,根據(jù)音頻信息生成字幕流,其中,字幕流包括,字幕文件和字幕文件對應的索引信息。
具體地,生成字幕時需記錄音頻相對時間與當前字幕內(nèi)容的對應關系以及當前音頻片段在整個直播媒體片段中的序號,并以該媒體片段序號為區(qū)分特征為該字幕文件命名。索引信息指向字幕文件的存儲位置,使終端能正確地請求到該字幕文件。
步驟140,存儲多個字幕流。
具體地,當存儲第一段字幕流時,新建一個索引文件,并添加索引信息。當存儲第N段字幕流時,將新生成的索引信息添加到原索引文件末尾,同時刪除索引文件中最前端、已被請求過的片段索引信息。同時,將字幕文件存到索引指定的位置,并刪除索引文件中最前端索引對應的字幕文件。
步驟145,終端向服務器發(fā)送播放請求,播放請求用于查找第一流媒體片段對應的第一字幕流。
可選地,播放請求可以包括:請求第一索引文件,根據(jù)第一索引文件信息請求第一字幕文件。
步驟150,接收終端發(fā)送的播放請求,播放請求用于查找第一流媒體片段對應的第一字幕流。
步驟160,當確定第一字幕流已存儲。
需要說明的是,當?shù)谝蛔帜涣魑创鎯Γ瑒t拒絕該請求。終端收到請求失敗信息后,將增大向服務器請求字幕索引文件的頻率,繼續(xù)請求該索引文件,直至請求成功或超時后進入下一段的請求過程。
步驟165,向終端發(fā)送第一字幕流和第一流媒體片段,以便終端解析第一字幕流,得到第一字幕內(nèi)容,使第一字幕內(nèi)容和第一媒體流片段同步播放。
步驟170,接收服務器發(fā)送的第一流媒體片段和第一媒體流片段對應的第一字幕流。
步驟180,解析第一字幕流,得到第一字幕內(nèi)容。
具體地,如圖3所示,解析第一字幕流具體步驟如下:
步驟181,解析字幕格式。
若字幕格式正確,則執(zhí)行步驟182;若字幕格式不正確,停止操作。
步驟182,解析字幕文件。
具體地,解析字幕文件名,提取段序號信息n;解析字幕文件序號,該序號為字幕文件中當前字幕的排序;解析字幕的相對顯示時間,設某個序號字幕的相對顯示時間為t1和t2。
步驟183,生成絕對顯示時間戳。
絕對顯示時間T1=(n-1)·d+t1,同理,T2=(n-1)·d+t2,其中,d為媒體流片段大小,單位秒。
若步驟182中解析的信息不足以生成絕對時間戳,停止操作。
步驟184,更新字幕顯示時間。
具體地,將相對顯示時間替換為絕對顯示時間。
步驟185,生成字幕內(nèi)容。
步驟190,同步播放第一字幕內(nèi)容和第一媒體流片段。
首先獲取第一媒體流片段的時間位置信息,將此位置信息轉(zhuǎn)為以秒為單位的播放時間值,然后用當前播放時間值與字幕文件中絕對顯示時間值作比 較,當該播放時間值落入某個序號絕對顯示時間內(nèi)時,顯示當前序號下字幕內(nèi)容。
步驟195,當?shù)谝涣髯帜涣靼l(fā)送完畢,將存儲的第一字幕流進行刪除。
本發(fā)明實施例通過對直播過程中的流媒體片段進行音頻信息提取,實時生成每個流媒體片段對應的字幕流,從而使終端同步播放字幕內(nèi)容和流媒體片段。同時,本發(fā)明實施例將字幕流與流媒體片段分開傳輸,使字幕流只需以簡單文本格式即可進行傳輸,簡單高效;并且字幕的結(jié)構(gòu)不受限制,可以輕易擴展,極大地提升了用戶體驗度
第二方面,圖4為本發(fā)明實施例提供的一種實時字幕播出系統(tǒng)的結(jié)構(gòu)性框圖,如圖4所示,該系統(tǒng)包括:服務器40和終端50。
該服務器40包括:編碼模塊41、字幕生成模塊42、處理模塊43。
編碼模塊41用于將媒體流分段生成多個媒體流片段。
字幕生成模塊42用于提取多個媒體流片段中的每個媒體流片段的音頻信息;并且,根據(jù)音頻信息生成字幕流,其中,字幕流包括,字幕文件和字幕文件對應的索引信息。
處理模塊43用于存儲多個字幕流。
處理模塊43還用于接收終端50發(fā)送的播放請求,并根據(jù)播放請求,將第一媒體流片段和第一媒體流片段對應的第一字幕流發(fā)送至終端50。
可選地,處理模塊43還用于,當?shù)谝涣髯帜涣靼l(fā)送完畢,將存儲的第一字幕流進行刪除。
具體地,編碼模塊41還用于:
確定多個媒體流片段中的一個媒體流片段為第一段媒體流片段;
當多個媒體流片段中的一個媒體流片段為第一段媒體流片段時,生成第一段媒體流片段對應的索引信息。
具體地,編碼模塊41還用于:
當多個媒體流片段中的一個媒體流片段為第N段媒體流片段時,確定第 N-1段媒體流片段對應的字幕流已存儲,其中,N為大于1的整數(shù);
當?shù)贜-1段媒體流片段對應的字幕流已存儲時,生成第N段媒體流片段對應的索引信息。
該終端50包括:發(fā)送模塊51、接收模塊52、解析模塊53和顯示模塊54。
發(fā)送模塊51用于向服務器40發(fā)送播放請求,播放請求用于查找第一流媒體片段對應的第一字幕流。
接收模塊52用于接收服務器40發(fā)送的第一流媒體片段和第一媒體流片段對應的第一字幕流。
解析模塊53用于解析第一字幕流,得到第一字幕內(nèi)容。
顯示模塊54用于同步播放第一字幕內(nèi)容和第一媒體流片段。
本發(fā)明實施例通過對直播過程中的流媒體片段進行音頻信息提取,實時生成每個流媒體片段對應的字幕流,從而使終端同步播放字幕內(nèi)容和流媒體片段。同時,本發(fā)明實施例將字幕流與流媒體片段分開傳輸,使字幕流只需以簡單文本格式即可進行傳輸,簡單高效;并且字幕的結(jié)構(gòu)不受限制,可以輕易擴展,極大地提升了用戶體驗度。
專業(yè)人員應該還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內(nèi)所公知的任意其它形式 的存儲介質(zhì)中。
以上所述的具體實施方式,對本發(fā)明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施方式而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。