亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

直播過程中的信息顯示方法與流程

文檔序號:11657819閱讀:1143來源:國知局
直播過程中的信息顯示方法與流程

本發(fā)明涉及直播領域,特別涉及一種直播過程中的信息顯示方法及裝置。



背景技術:

直播,也即終端實時采集視頻并將該視頻實時通過流媒體服務器發(fā)送給其他終端,以使其他用戶可以通過該其他終端實時觀看該視頻。其中,當直播過程中播放如歌曲或電影等多媒體文件時,為了豐富直播的顯示內(nèi)容,其他終端在播放該多媒體文件時,還可以在當前播放界面顯示該多媒體文件對應的提示信息,如歌詞或字幕,且顯示的提示信息需與多媒體文件的播放保持同步。

為了便于說明,將進行視頻直播的終端稱為推流客戶端,將播放直播視頻的終端稱為拉流播放器端。目前,視頻直播主要是基于rtmp(realtimemessagingprotocol,實時消息傳輸協(xié)議)協(xié)議完成的,但是rtmp協(xié)議不提供對上述多媒體文件對應的提示信息傳輸?shù)闹苯又С?,因此為了實現(xiàn)直播視頻時拉流播放器端顯示的提示信息與對應的多媒體文件保持同步,推流客戶端在進行視頻直播時,將該多媒體文件在當前播放進度對應的提示信息轉換為圖像,并將轉換后的圖像和當前直播產(chǎn)生的第一視頻幀進行合成得到第二視頻幀,將第二視頻幀通過流媒體服務器發(fā)送給拉流播放器端。拉流播放器端在接收到第二視頻幀時,基于第二視頻幀進行直播畫面和提示信息的顯示,并通過rtmp協(xié)議保持第二視頻幀和對應的音頻幀同步。由于第二視頻幀包括該多媒體文件在當前播放進度對應的提示信息,以此實現(xiàn)顯示的提示信息和對應的多媒體文件保持同步。例如,可以實現(xiàn)直播視頻中播放的歌曲和顯示的歌詞保持同步。

由于上述拉流播放器端接收到的第二視頻幀是由第一視頻幀和上述多媒體文件在當前播放進度對應的提示信息轉換后的圖像合成得到,也即,在拉流播放器端顯示的當前界面中,第一視頻幀和該多媒體文件在當前播放進度對應的提示信息為一個整體,導致其他用戶不能單獨對該多媒體文件在當前播放進度對應的提示信息執(zhí)行任何操作,嚴重降低了直播過程中顯示信息的靈活性。



技術實現(xiàn)要素:

為了解決現(xiàn)有技術中其他用戶不能單獨對多媒體文件在當前播放進度時的提示信息執(zhí)行任何操作的問題,本發(fā)明實施例提供了一種直播過程中的信息顯示方法。所述技術方案如下:

第一方面,提供了一種直播過程中的信息顯示方法,該直播過程中的信息顯示方法應用于推流客戶端,所述方法包括:

獲取當前進行直播產(chǎn)生的視頻幀,并向流媒體服務器發(fā)送所述視頻幀,以使所述流媒體服務器將所述視頻幀發(fā)送給拉流播放器端;

當在直播過程播放多媒體文件時,每隔預設時間段獲取所述多媒體文件的文件標識和所述多媒體文件的播放進度;

將所述多媒體文件的文件標識和所述多媒體文件的播放進度進行封裝,得到偽視頻幀;

向所述流媒體服務器發(fā)送所述偽視頻幀,以使所述流媒體服務器將所述偽視頻幀發(fā)送給所述拉流播放器端,由所述拉流播放器端在通過所述視頻幀播放直播視頻的過程中,根據(jù)所述偽視頻幀顯示所述多媒體文件在所述播放進度時對應的提示信息。

可選地,所述向流媒體服務器發(fā)送所述視頻幀之前,還包括:

確定采集所述視頻幀時的系統(tǒng)時間,以及確定所述推流客戶端獲取到所述視頻幀的獲取時間;

將所述系統(tǒng)時間轉換為第一時間戳,將所述推流客戶端獲取到所述視頻幀的獲取時間轉換為第二時間戳;

將所述視頻幀、所述第一時間戳和所述第二時間戳進行封裝并編碼,得到編碼后的視頻幀;

相應地,所述向流媒體服務器發(fā)送所述視頻幀,包括:

將所述編碼后的視頻幀發(fā)送給所述流媒體服務器。

可選地,所述將所述多媒體文件的文件標識和所述多媒體文件的播放進度進行封裝,得到偽視頻幀之后,還包括:

確定在當前時間之前且距離當前時間最近一次向所述流媒體服務器發(fā)送視頻幀時所發(fā)送的第一時間戳和第二時間戳;

確定所述多媒體文件的文件標識和所述多媒體文件的播放進度的獲取時間,將所述多媒體文件的文件標識和所述多媒體文件的播放進度的獲取時間轉換為第三時間戳;

將所述第二時間戳和所述第三時間戳之間的差值與所述第一時間戳相加,得到所述偽視頻幀的時間戳,所述偽視頻的時間戳用于指示所述多媒體文件的播放進度的獲取時間;

相應地,所述向所述流媒體服務器發(fā)送所述偽視頻幀,包括:

向所述流媒體服務器發(fā)送所述偽視頻幀和所述偽視頻幀的時間戳。

可選地,所述每隔預設時間段獲取所述多媒體文件的文件標識和所述多媒體文件的播放進度,包括:

當所述多媒體文件不是所述推流客戶端中預先存儲的文件時,每隔所述預設時間段,從已接收的所述多媒體文件的音頻幀中,按照音頻幀的接收時間從晚到早的順序,獲取預設個數(shù)的音頻幀;

將獲取的音頻幀進行合成,得到音頻信息;

向音頻識別服務器發(fā)送音頻查詢請求,所述音頻查詢請求攜帶所述音頻信息;

接收所述音頻識別服務器基于所述音頻信息確定的多媒體文件的文件標識和播放進度。

第二方面,提供了另一種直播過程中的信息顯示方法,該直播過程中的信息顯示方法應用于拉流播放器端,所述方法包括:

接收流媒體服務器發(fā)送的視頻幀,并基于所述視頻幀進行直播畫面的顯示,所述視頻幀為推流客戶端在當前進行直播時獲取并向所述流媒體服務器發(fā)送的視頻幀;

在所述直播畫面的顯示過程中接收所述流媒體服務器發(fā)送的偽視頻幀,所述偽視頻幀為所述推流客戶端在當前直播過程播放所述多媒體文件時每隔預設時間段將所述多媒體文件的文件標識和所述多媒體文件的播放進度進行封裝得到;

根據(jù)所述偽視頻幀,獲取多媒體文件在所述播放進度時對應的提示信息,并在所述直播畫面的圖層上方顯示所述多媒體文件在所述播放進度時對應的提示信息。

可選地,所述根據(jù)所述偽視頻幀,獲取多媒體文件在所述播放進度時對應的提示信息,包括:

對所述偽視頻幀進行解析,得到所述多媒體文件的文件標識和所述多媒體文件的播放進度;

根據(jù)所述多媒體文件的文件標識,判斷所述拉流播放器端中是否存儲有所述多媒體文件的提示文件;

當所述拉流播放器端中存儲有所述多媒體文件的提示文件時,從所述多媒體文件的提示文件中獲取所述多媒體文件在所述播放進度時對應的提示信息。

可選地,所述根據(jù)所述多媒體文件的文件標識,判斷所述拉流播放器端中是否存儲有所述多媒體文件的提示文件之后,還包括:

當所述拉流播放器端中沒有存儲所述多媒體文件的提示文件時,根據(jù)所述多媒體文件的文件標識,向文件下載服務器發(fā)送文件下載請求,所述文件下載請求攜帶所述多媒體文件的文件標識;

接收所述文件下載服務器基于所述多媒體文件的文件標識發(fā)送的提示文件;

從接收到的提示文件中獲取所述多媒體文件在所述播放進度時對應的提示信息。

可選地,所述當接收到所述流媒體服務器發(fā)送的偽視頻幀之后,還包括:

將所述偽視頻幀存儲至偽視頻幀列表中,所述偽視頻幀列表用于緩存接收到的偽視頻幀;

相應地,所述根據(jù)所述偽視頻幀,獲取多媒體文件在播放進度時對應的提示信息,包括:

從所述偽視頻幀列表中,查找與所述視頻幀同步的偽視頻幀;

根據(jù)查找到的偽視頻幀,獲取所述多媒體文件在所述播放進度時對應的提示信息。

可選地,在接收所述視頻幀時還接收到第一時間戳,所述第一時間戳為所述推流客戶端將采集所述視頻幀時的系統(tǒng)時間轉換得到;

在接收所述偽視頻幀時還接收到所述偽視頻幀的時間戳,所述偽視頻的時間戳用于指示所述多媒體文件的播放進度的獲取時間;

相應地,所述從所述偽視頻幀列表中,查找與所述視頻幀同步的偽視頻幀,包括:

從所述偽視頻幀列表中獲取偽視頻幀的時間戳和在接收所述視頻幀時接收到的所述第一時間戳之間差值最小的偽視頻幀;

將獲取到的偽視頻幀確定為與所述視頻幀同步的偽視頻幀。

第三方面,提供了一種直播過程中的信息顯示裝置,應用于推流客戶端,所述裝置包括:

第一發(fā)送模塊,用于獲取當前進行直播產(chǎn)生的視頻幀,并向流媒體服務器發(fā)送所述視頻幀,以使所述流媒體服務器將所述視頻幀發(fā)送給拉流播放器端;

獲取模塊,用于當在直播過程播放多媒體文件時,每隔預設時間段獲取所述多媒體文件的文件標識和所述多媒體文件的播放進度;

封裝模塊,用于將所述多媒體文件的文件標識和所述多媒體文件的播放進度進行封裝,得到偽視頻幀;

第二發(fā)送模塊,用于向所述流媒體服務器發(fā)送所述偽視頻幀,以使所述流媒體服務器將所述偽視頻幀發(fā)送給所述拉流播放器端,由所述拉流播放器端在通過所述視頻幀播放直播視頻的過程中,根據(jù)所述偽視頻幀顯示所述多媒體文件在所述播放進度時對應的提示信息。

可選地,所述裝置包括:

第一確定模塊,用于確定采集所述視頻幀時的系統(tǒng)時間,以及確定所述推流客戶端獲取到所述視頻幀的獲取時間;

轉換模塊,用于將所述系統(tǒng)時間轉換為第一時間戳,將所述推流客戶端獲取到所述視頻幀的獲取時間轉換為第二時間戳;

編碼模塊,用于將所述視頻幀、所述第一時間戳和所述第二時間戳進行封裝并編碼,得到編碼后的視頻幀;

相應地,所述第一發(fā)送模塊還用于:

將所述編碼后的視頻幀發(fā)送給所述流媒體服務器。

可選地,所述裝置還包括:

第二確定模塊,用于確定在當前時間之前且距離當前時間最近一次向所述流媒體服務器發(fā)送視頻幀時所發(fā)送的第一時間戳和第二時間戳;

第三確定模塊,用于確定所述多媒體文件的文件標識和所述多媒體文件的播放進度的獲取時間,將所述多媒體文件的文件標識和所述多媒體文件的播放進度的獲取時間轉換為第三時間戳;

相加模塊,用于將所述第二時間戳和所述第三時間戳之間的差值與所述第一時間戳相加,得到所述偽視頻幀的時間戳,所述偽視頻的時間戳用于指示所述多媒體文件的播放進度的獲取時間;

相應地,所述第二發(fā)送模塊還用于:

向所述流媒體服務器發(fā)送所述偽視頻幀和所述偽視頻幀的時間戳。

可選地,所述獲取模塊包括:

獲取單元,用于當所述多媒體文件不是所述推流客戶端中預先存儲的文件時,每隔所述預設時間段,從已接收的所述多媒體文件的音頻幀中,按照音頻幀的接收時間從晚到早的順序,獲取預設個數(shù)的音頻幀;

合成單元,用于將獲取的音頻幀進行合成,得到音頻信息;

發(fā)送單元,用于向音頻識別服務器發(fā)送音頻查詢請求,所述音頻查詢請求攜帶所述音頻信息;

接收單元,用于接收所述音頻識別服務器基于所述音頻信息確定的多媒體文件的文件標識和播放進度。

第四方面,提供了另一種直播過程中的信息顯示裝置,應用于拉流播放器端,所述裝置包括:

第一接收模塊,用于接收流媒體服務器發(fā)送的視頻幀,并基于所述視頻幀進行直播畫面的顯示,所述視頻幀為推流客戶端在當前進行直播時獲取并向所述流媒體服務器發(fā)送的視頻幀;

第二接收模塊,用于在所述直播畫面的顯示過程中接收所述流媒體服務器發(fā)送的偽視頻幀,所述偽視頻幀為所述推流客戶端在當前直播過程播放所述多媒體文件時每隔預設時間段將所述多媒體文件的文件標識和所述多媒體文件的播放進度進行封裝得到;

獲取模塊,用于根據(jù)所述偽視頻幀,獲取多媒體文件在所述播放進度時對應的提示信息,并在所述直播畫面的圖層上方顯示所述多媒體文件在所述播放進度時對應的提示信息。

可選地,所述獲取模塊包括:

解析單元,用于對所述偽視頻幀進行解析,得到所述多媒體文件的文件標識和所述多媒體文件的播放進度;

判斷單元,用于根據(jù)所述多媒體文件的文件標識,判斷所述拉流播放器端中是否存儲有所述多媒體文件的提示文件;

第一獲取單元,用于當所述拉流播放器端中存儲有所述多媒體文件的提示文件時,從所述多媒體文件的提示文件中獲取所述多媒體文件在所述播放進度時對應的提示信息。

可選地,所述獲取模塊還包括:

發(fā)送單元,用于當所述拉流播放器端中沒有存儲所述多媒體文件的提示文件時,根據(jù)所述多媒體文件的文件標識,向文件下載服務器發(fā)送文件下載請求,所述文件下載請求攜帶所述多媒體文件的文件標識;

接收單元,用于接收所述文件下載服務器基于所述多媒體文件的文件標識發(fā)送的提示文件;

第二獲取單元,用于從接收到的提示文件中獲取所述多媒體文件在所述播放進度時對應的提示信息。

可選地,所述裝置還包括:

存儲模塊,用于將所述偽視頻幀存儲至偽視頻幀列表中,所述偽視頻幀列表用于緩存接收到的偽視頻幀;

相應地,所述獲取模塊包括:

查找單元,用于從所述偽視頻幀列表中,查找與所述視頻幀同步的偽視頻幀;

第三獲取單元,用于根據(jù)查找到的偽視頻幀,獲取所述多媒體文件在所述播放進度時對應的提示信息。

可選地,在接收所述視頻幀時還接收到第一時間戳,所述第一時間戳為所述推流客戶端將采集所述視頻幀時的系統(tǒng)時間轉換得到;

在接收所述偽視頻幀時還接收到所述偽視頻幀的時間戳,所述偽視頻的時間戳用于指示所述多媒體文件的播放進度的獲取時間;

相應地,所述查找單元還用于:

從所述偽視頻幀列表中獲取偽視頻幀的時間戳和在接收所述視頻幀時接收到的所述第一時間戳之間差值最小的偽視頻幀;

將獲取到的偽視頻幀確定為與所述視頻幀同步的偽視頻幀。

本發(fā)明實施例提供的技術方案帶來的有益效果是:當推流客戶端在直播過程播放多媒體文件時,除了將當前進行直播的視頻幀發(fā)送給流媒體服務器,還將該多媒體文件的文件標識和該多媒體文件的播放進度進行封裝得到偽視頻幀,并向流媒體服務器發(fā)送該偽視頻幀。也即,推流客戶端分別發(fā)送視頻幀和偽視頻幀,而不是將該多媒體文件在當前播放進度時對應的提示信息轉換為圖像并與當前視頻幀進行合成,從而使得拉流播放器端在顯示該視頻幀的同時,還可以獨立顯示該多媒體文件在當前播放進度時對應的提示信息,以便于拉流播放器端的用戶能夠單獨對該多媒體文件對應的提示信息執(zhí)行移動、關閉等操作,提高了直播過程中的信息顯示的靈活性。

應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。

附圖說明

為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1是本發(fā)明實施例提供的視頻直播系統(tǒng)示意圖;

圖2是本發(fā)明實施例提供的一種直播過程中的信息顯示方法流程圖;

圖3是本發(fā)明實施例提供的另一種直播過程中的信息顯示方法流程圖;

圖4是本發(fā)明實施例提供的另一種直播過程中的信息顯示方法流程圖;

圖5是本發(fā)明實施例提供的一種直播過程中的信息顯示裝置框圖;

圖6是本發(fā)明實施例提供的另一種直播過程中的信息顯示裝置框圖。

具體實施方式

為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述。

在對本發(fā)明實施例進行詳細的解釋說明之前,先對本發(fā)明實施例的應用場景予以介紹。在直播過程中,當當前直播過程中還播放歌曲或電影等多媒體文件時,為了豐富直播的顯示內(nèi)容,拉流播放器端在顯示當前直播畫面時,還可以顯示該多媒體文件在當前播放進度時對應的提示信息。例如,當用戶當前通過推流客戶端直播唱歌視頻時,此時拉流播放器端還可以顯示該唱歌視頻中播放的歌曲在當前播放進度時對應的歌詞,以提升觀眾觀看該唱歌視頻的用戶體驗。而本發(fā)明實施例提供的直播過程中的信息顯示方法應用于該直播過程中存在多媒體文件的場景。

圖1是本發(fā)明實施例提供的一種視頻直播系統(tǒng)100示意圖,如圖1所示,該視頻直播系統(tǒng)100包括推流客戶端101、流媒體服務器102和拉流播放器端103。推流客戶端101和流媒服務器102之間以及流媒服務器102和拉流播放器端103之間可以通過無線網(wǎng)絡或者有線網(wǎng)絡的方式進行通信。

其中,推流客戶端101用于獲取當前進行直播的視頻幀并向流媒體服務器102發(fā)送該視頻幀,流媒體服務器102用于接收推流客戶端101發(fā)送的視頻幀并將該視頻幀發(fā)送給拉流播放器端103,拉流播放器端103用于接收流媒體服務器102發(fā)送的視頻幀并基于該視頻幀顯示當前直播畫面。另外,推流客戶端101還用于獲取當前進行直播的音頻幀并向流媒體服務器102發(fā)送該音頻幀,流媒體服務器102用于接收推流客戶端101發(fā)送的音頻幀并將該音頻幀發(fā)送給拉流播放器端103,拉流播放器端103用于接收流媒體服務器102發(fā)送的音頻幀并在顯示當前直播畫面時播放該音頻幀。

可選地,當推流客戶端101在直播過程中播放多媒體文件時,該視頻直播系統(tǒng)100還可以包括音頻識別服務器104和文件下載服務器105,推流客戶端101和音頻識別服務器104之間以及拉流播放器端103和文件下載服務器105之間也可以通過無線網(wǎng)絡或者有線網(wǎng)絡的方式進行通信。其中,音頻識別服務器104用于根據(jù)推流客戶端101發(fā)送的音頻查詢請求確定該多媒體文件的文件標識和多媒體文件的播放進度,文件下載服務器105用于根據(jù)拉流播放器端103發(fā)送的文件下載請求確定該多媒體文件的提示文本。例如,該音頻識別服務器104可以為聽歌識曲服務器,該文件下載服務器105可以為歌詞服務器。

需要說明的是,當推流客戶端101在直播過程中播放的多媒體文件為推流客戶端101中存儲的多媒體文件時,該視頻直播系統(tǒng)100可以不包括該音頻識別服務器104,也即推流客戶端101可以直接根據(jù)存儲的多媒體文件確定該多媒體文件的文件標識和多媒體文件的播放進度。另外,當拉流播放器端存儲有該多媒體文件的提示文件時,該視頻直播系統(tǒng)100可以不包括該文件下載服務器105,也即拉流播放器端可以直接根據(jù)存儲的該多媒體文件的提示文件確定該多媒體文件在該播放進度時的提示信息。

圖2是本發(fā)明實施例提供的一種直播過程中的信息顯示方法流程圖,該方法應用于圖1所示的推流客戶端101,如圖2所示,該直播過程中的信息顯示方法包括以下幾個步驟。

步驟201:獲取當前進行直播產(chǎn)生的視頻幀,并向流媒體服務器發(fā)送該視頻幀,以使流媒體服務器將該視頻幀發(fā)送給拉流播放器端。

步驟202:當在直播過程播放多媒體文件時,每隔預設時間段獲取該多媒體文件的文件標識和該多媒體文件的播放進度。

步驟203:將該多媒體文件的文件標識和該多媒體文件的播放進度進行封裝,得到偽視頻幀。

步驟204:向流媒體服務器發(fā)送該偽視頻幀,以使流媒體服務器將該偽視頻幀發(fā)送給拉流播放器端,由拉流播放器端在通過視頻幀播放直播視頻的過程中,根據(jù)該偽視頻幀顯示該多媒體文件在該播放進度時對應的提示信息。

當推流客戶端在直播過程播放多媒體文件時,除了將當前進行直播的視頻幀發(fā)送給流媒體服務器,還將該多媒體文件的文件標識和該多媒體文件的播放進度進行封裝得到偽視頻幀,并向流媒體服務器發(fā)送該偽視頻幀。也即,推流客戶端分別發(fā)送視頻幀和偽視頻幀,而不是將該多媒體文件在當前播放進度時對應的提示信息轉換為圖像并與當前視頻幀進行合成,從而使得拉流播放器端在顯示該視頻幀的同時,還可以獨立顯示該多媒體文件在當前播放進度時對應的提示信息,以便于拉流播放器端的用戶能夠單獨對該多媒體文件對應的提示信息執(zhí)行移動、關閉等操作,提高了直播過程中的信息顯示的靈活性。

可選地,該向流媒體服務器發(fā)送該視頻幀之前,還包括:

確定采集該視頻幀時的系統(tǒng)時間,以及確定推流客戶端獲取到該視頻幀的獲取時間;

將該系統(tǒng)時間轉換為第一時間戳,將該推流客戶端獲取到所述視頻幀的獲取時間按照轉換為第二時間戳;

將該視頻幀、第一時間戳和第二時間戳進行封裝并編碼,得到編碼后的視頻幀;

相應地,向流媒體服務器發(fā)送該視頻幀,包括:

將該編碼后的視頻幀發(fā)送給流媒體服務器。

可選地,將該多媒體文件的文件標識和該多媒體文件的播放進度進行封裝,得到偽視頻幀之后,還包括:

確定在當前時間之前且距離當前時間最近一次向流媒體服務器發(fā)送視頻幀時所發(fā)送的第一時間戳和第二時間戳;

確定該多媒體文件的文件標識和該多媒體文件的播放進度的獲取時間,將該多媒體文件的文件標識和該多媒體文件的播放進度的獲取時間轉換為第三時間戳;

將該第二時間戳和該第三時間戳之間的差值與該第一時間戳相加,得到該偽視頻幀的時間戳,該偽視頻的時間戳用于指示該多媒體文件的播放進度的獲取時間;

相應地,向流媒體服務器發(fā)送該偽視頻幀,包括:

向流媒體服務器發(fā)送該偽視頻幀和該偽視頻幀的時間戳。

可選地,每隔預設時間段獲取該多媒體文件的文件標識和該多媒體文件的播放進度,包括:

當該多媒體文件不是推流客戶端中預先存儲的文件時,每隔預設時間段,從已接收的該多媒體文件的音頻幀中,按照音頻幀的接收時間從晚到早的順序,獲取預設個數(shù)的音頻幀;

將獲取的音頻幀進行合成,得到音頻信息;

向音頻識別服務器發(fā)送音頻查詢請求,該音頻查詢請求攜帶該音頻信息;

接收音頻識別服務器基于該音頻信息確定的多媒體文件的文件標識和播放進度。

上述所有可選技術方案,均可按照任意結合形成本發(fā)明的可選實施例,本發(fā)明實施例對此不再一一贅述。

圖3是本發(fā)明實施例提供的另一種直播過程中的信息顯示方法流程圖,該方法應用于圖1所示的拉流播放器端103,如圖3所示,該直播過程中的信息顯示方法包括以下幾個步驟。

步驟301:接收流媒體服務器發(fā)送的視頻幀,并基于該視頻幀進行直播畫面的顯示,該視頻幀為推流客戶端在當前進行直播時獲取并向流媒體服務器發(fā)送的視頻幀。

步驟302:在該直播畫面的顯示過程中接收流媒體服務器發(fā)送的偽視頻幀,該偽視頻幀為推流客戶端在當前直播過程播放多媒體文件時每隔預設時間段將該多媒體文件的文件標識和該多媒體文件的播放進度進行封裝得到。

步驟303:根據(jù)該偽視頻幀,獲取該多媒體文件在該播放進度時對應的提示信息,并在該直播畫面的圖層上方顯示該多媒體文件在該播放進度時對應的提示信息。

當推流客戶端在當前直播過程播放多媒體文件時,拉流播放器端除了接收到視頻幀,還接收到推流客戶端通過流媒體服務器發(fā)送的偽視頻幀,由于該偽視頻幀為推流客戶端每隔預設時間段將該多媒體文件的文件標識和該多媒體文件的播放進度進行封裝得到,因此,拉流播放器端可以根據(jù)該偽視頻幀,獲取該多媒體文件在該播放進度時對應的提示信息,并在該直播畫面的圖層上方顯示該多媒體文件在該播放進度時對應的提示信息。也即拉流播放器端可以分別獨立顯示當前直播畫面中的視頻幀和該多媒體文件在該播放進度時對應的提示信息,以便于拉流播放器端的用戶能夠單獨對該多媒體文件對應的提示信息執(zhí)行移動、關閉等操作,提高了直播過程中的信息顯示的靈活性。

可選地,根據(jù)該偽視頻幀,獲取該多媒體文件在該播放進度時對應的提示信息,包括:

對該偽視頻幀進行解析,得到該多媒體文件的文件標識和該多媒體文件的播放進度;

根據(jù)該多媒體文件的文件標識,判斷拉流播放器端中是否存儲有該多媒體文件的提示文件;

當拉流播放器端中存儲有該多媒體文件的提示文件時,從該多媒體文件的提示文件中獲取該多媒體文件在該播放進度時對應的提示信息。

可選地,根據(jù)該多媒體文件的文件標識,判斷拉流播放器端中是否存儲有該多媒體文件的提示文件之后,還包括:

當拉流播放器端中沒有存儲該多媒體文件的提示文件時,根據(jù)該多媒體文件的文件標識,向文件下載服務器發(fā)送文件下載請求,該文件下載請求攜帶該多媒體文件的文件標識;

接收文件下載服務器基于該多媒體文件的文件標識發(fā)送的提示文件;

從接收到的提示文件中獲取該多媒體文件在該播放進度時對應的提示信息。

可選地,當接收到流媒體服務器發(fā)送的偽視頻幀之后,還包括:

將該偽視頻幀存儲至偽視頻幀列表中,該偽視頻幀列表用于緩存接收到的偽視頻幀;

相應地,根據(jù)該偽視頻幀,獲取該多媒體文件在該播放進度時對應的提示信息,包括:

從偽視頻幀列表中,查找與該視頻幀同步的偽視頻幀;

根據(jù)查找到的偽視頻幀,獲取該多媒體文件在該播放進度時對應的提示信息。

可選地,在接收該視頻幀時還接收到第一時間戳,第一時間戳為推流客戶端將采集該視頻幀時的系統(tǒng)時間轉換得到;

在接收該偽視頻幀時還接收到該偽視頻幀的時間戳,該偽視頻的時間戳用于指示該多媒體文件的播放進度的獲取時間;

相應地,從偽視頻幀列表中,查找與該視頻幀同步的偽視頻幀,包括:

從偽視頻幀列表中獲取偽視頻幀的時間戳和在接收該視頻幀時接收到的第一時間戳之間差值最小的偽視頻幀;

將獲取到的偽視頻幀確定為與該視頻幀同步的偽視頻幀。

上述所有可選技術方案,均可按照任意結合形成本發(fā)明的可選實施例,本發(fā)明實施例對此不再一一贅述。

圖4是本發(fā)明實施例提供的另一種直播過程中的信息顯示方法流程圖,該方法應用于圖1所示的視頻直播系統(tǒng)100,如圖4所示,該直播過程中的信息顯示方法包括以下幾個步驟。

步驟401:推流客戶端獲取當前進行直播產(chǎn)生的視頻幀,并向流媒體服務器發(fā)送該視頻幀,以使流媒體服務器將該視頻幀發(fā)送給拉流播放器端。

視頻幀也即構成視頻的單副圖像,當多個視頻幀連續(xù)播放時,形成一個動態(tài)圖像動畫也即視頻。因此,推流客戶端通過流媒體服務器向拉流播放器端直播視頻,也即推流客戶端實時獲取當前進行直播產(chǎn)生的視頻幀,并將該視頻幀通過流媒體服務器發(fā)送給拉流播放器端,當拉流播放器端接收到多個視頻幀并連續(xù)顯示該多個視頻幀時,實現(xiàn)了拉流播放器端播放推流客戶端進行直播的視頻。

其中,當推流客戶端獲取當前進行直播產(chǎn)生的視頻幀時,可以直接通過自身采集當前進行直播產(chǎn)生的視頻幀,也可以通過其他終端采集當前進行直播產(chǎn)生的視頻幀并將采集的視頻幀發(fā)送給推流客戶端,比如,可以通過當前安裝該推流客戶端的終端來采集視頻幀,并將采集的視頻幀發(fā)送給推流客戶端。

值得注意的是,視頻幀僅僅為靜態(tài)的單副圖像,并不包括當前進行直播時的音頻信息,因此,當推流客戶端通過流媒體服務器向拉流播放器端直播視頻時,推流客戶端不僅需要采集當前直播產(chǎn)生的視頻幀,還需采集當前直播產(chǎn)生的音頻幀,并向流媒體服務器發(fā)送該音頻幀,以使流媒體服務器將該音頻幀發(fā)送給拉流播放器端。

另外,為了保證拉流播放器端在接收到視頻幀和音頻幀之后播放的視頻幀和音頻幀同步,推流客戶端可以在采集視頻幀和音頻幀時,為采集的每個視頻幀和每個音頻幀打上時間戳,其中,該視頻幀的時間戳用于指示推流客戶端采集到該視頻幀的時間,該音頻幀的時間戳用于指示推流客戶端采集到該音頻幀的時間。

需要說明的是,時間戳有兩種表示方式,一種以系統(tǒng)時鐘為參考時間的時間戳,此時該時間戳可以直接表示當前系統(tǒng)時間;一種以參考時鐘為參考時間的時間戳,此時該時間戳為將當前系統(tǒng)時間按照該參考時鐘為時間零點進行轉換得到,例如,參考時鐘為2:00,當前時間為2:01,此時當前時間在參考時鐘下的時間戳為60s。為了便于后續(xù)對時間戳之間進行數(shù)學計算,本發(fā)明實施例中,視頻幀的時間戳和音頻幀的時間戳均采用第二種表示方式。

另外,在推流客戶端接入網(wǎng)絡之后,該推流客戶端的控制平面包括物理層和應用層,其中,物理層用于采集信息并接收來自應用層的指令,應用層用于接收物理層發(fā)送的信息并向物理層下發(fā)指令。且物理層和應用層的參考時鐘通常不是同一個參考時鐘,也即同一個時刻在物理層對應的時間戳和在應用層對應的時間戳并不相同。因此,在本發(fā)明實施例中,每個視頻幀的時間戳和每個音頻幀的時間戳均包括兩種不同的時間戳,也即,每個視頻幀的時間戳包括在物理層的參考時鐘下的時間戳和在應用層的參考時鐘下的時間戳,每個音頻幀的時間戳也包括在物理層的參考時鐘下的時間戳和在應用層的參考時鐘下的時間戳。

在一種可能的實現(xiàn)方式中,確定每個視頻幀的時間戳的實現(xiàn)方式可以為:確定采集該視頻幀時的系統(tǒng)時間以及確定推流客戶端獲取到該視頻幀的獲取時間,將該系統(tǒng)時間轉換為物理層的參考時鐘下的第一時間戳,將該推流客戶端獲取到該視頻幀的獲取時間轉換為應用層的參考時鐘下的第二時間戳。也即,第一時間戳和第二時間戳為該視頻幀的兩個時間戳,當推流客戶端確定出該視頻幀的兩個時間戳時,將該視頻幀、第一時間戳和第二時間戳進行封裝并編碼,得到編碼后的視頻幀,并將該編碼后的視頻幀發(fā)送給流媒體服務器。

值得注意的是,當推流客戶端獲取當前進行直播產(chǎn)生的視頻幀為推流客戶端自身采集的視頻幀時,此時推流客戶端的物理層采集該視頻幀的系統(tǒng)時間和應用層獲取到該視頻幀的獲取時間基本為同一個時刻,但是由于物理層的參考時鐘和應用層的參考時鐘并不相同,該同一個時刻在物理層的參考時鐘下的時間戳和該同一時刻在應用層的參考時鐘下的時間戳并不相同。例如,物理層的參考時鐘為2:00,應用層的參考時鐘為2:01,當推流客戶端的物理層采集該視頻幀的系統(tǒng)時間和應用層獲取到該視頻幀的獲取時間為同一時刻2:02時,該同一時刻2:02在物理層的參考時鐘下的時間戳為60s,該同一時刻2:02在應用層的參考時鐘下的時間戳為120s。

同樣地,按照上述方法得到每個音頻幀的兩個時間戳,并將該音頻幀和該音頻幀的兩個時間戳進行封裝并編碼,得到編碼后的音頻幀,將該編碼后的音頻幀發(fā)送給流媒體服務器。

另外,當推流客戶端得到編碼后的視頻幀和編碼后的音頻幀時,可能由于網(wǎng)絡阻塞等原因,上一次發(fā)送的視頻幀和音頻幀還沒有發(fā)送成功,因此,在推流客戶端中還包括視頻幀列表和音頻幀列表,該視頻幀列表用于暫時緩存待發(fā)送的視頻幀,該音頻幀列表用于暫時緩存待發(fā)送的音頻幀。此時,對于視頻幀列表中視頻幀,推流客戶端按照視頻幀的第一時間戳由小到大的順序依次向流媒體服務器發(fā)送該視頻幀列表中的視頻幀。對于音頻幀列表中的音頻幀,同樣按照該方法發(fā)送該音頻幀列表中的音頻幀。

例如,用于采集視頻幀和音頻幀的采集系統(tǒng)為directshow采集系統(tǒng),當該采集系統(tǒng)采集到的當前進行直播的視頻幀時,將該視頻幀標記為vn,由于采集系統(tǒng)位于物理層,因此采集系統(tǒng)可以根據(jù)采集該視頻幀的系統(tǒng)時間和物理層的參考時鐘,確定第一時間戳,標記為tdvn,并將該視頻幀和第一時間戳向上發(fā)送給推流客戶端的應用層。當應用層接收到該視頻幀時,由于采集系統(tǒng)集該視頻幀的系統(tǒng)時間和應用層接收到該視頻幀的系統(tǒng)時間幾乎沒有差值,因此應用根據(jù)接收該視頻幀的系統(tǒng)時間也即采集系統(tǒng)采集該視頻幀的時間和應用層的參考時鐘,確定第二時間戳,標記為tavn。此時,推流客戶端確定該當前待發(fā)送的視頻幀vn和該視頻幀vn的兩個時間戳,也即第一時間戳tdvn和第二時間戳為tavn,并將該視頻幀vn,tdvn和tavn進行編碼,將編碼后的視頻幀添加至視頻幀列表等待發(fā)送。同樣地,當該采集系統(tǒng)采集到的當前進行直播的音頻幀時,將該音頻幀標記為an,并按照確定視頻幀vn的兩個時間戳的方法,確定該音頻幀an在物理層的參考時鐘下的時間戳和在應用層的參考時鐘下的時間戳,分別標記為tdan和taan,并將該音頻幀an、tdan和taan進行編碼,將編碼后的音頻幀添加至音頻幀列表等待發(fā)送。

其中,directshow采集系統(tǒng)為微軟公司推出的一種流媒體處理開發(fā)包,該directshow采集系統(tǒng)用于采集數(shù)據(jù),并將采集的數(shù)據(jù)進行相應的后期處理。

步驟402:拉流播放器端接收流媒體服務器發(fā)送的視頻幀,并基于該視頻幀進行直播畫面的顯示,該視頻幀為推流客戶端在當前進行直播時采集并向流媒體服務器發(fā)送的視頻幀。

由步驟401可知,推流客戶端在確定當前進行直播產(chǎn)生的視頻幀時,還可以根據(jù)采集該視頻幀的系統(tǒng)時間,確定該視頻幀的兩個時間戳也即第一時間戳和第二時間戳,并將該視頻幀,第一時間戳和第二時間戳進行封裝編碼,將編碼后的視頻幀發(fā)送給流媒體服務器,因此,當拉流播放器端接收到流媒體服務器發(fā)送的視頻幀時,還可以接收到第一時間戳,其中,第一時間戳為推流客戶端將采集該視頻幀時的系統(tǒng)時間轉換得到??蛇x地,拉流播放器端還可以接收到第二時間戳,該第二時間戳為推流客戶端將獲取該視頻幀時的獲取時間轉換得到。

另外,由步驟401還知,推流客戶端在向流媒體服務器發(fā)送視頻幀的同時還將當前直播產(chǎn)生的音頻幀發(fā)送給流媒體服務器,因此拉流播放器端還可以接收到該當前直播產(chǎn)生的音頻幀。另外,當推流客戶將該音頻幀的兩個時間戳也向流媒體服務器發(fā)送時,此時拉流播放器端還可以接收到該音頻幀的兩個時間戳,為了后序便于說明,將該音頻幀的兩個時間戳中,在物理層的參考時鐘下的時間戳稱為第四時間戳,在應用層的參考時鐘下的時間戳稱為第五時間戳。

在本發(fā)明實施例中,為了實現(xiàn)當前顯示的視頻幀和播放的音頻幀同步,當拉流播放器端接收流媒體服務器發(fā)送的視頻幀時,確定已接收到的音頻幀中的每個音頻幀的第四時間戳,得到至少一個第四時間戳,從該至少一個第四時間戳中查找和該視頻幀的第一時間戳相同的時間戳,并將查找到的第四時間戳對應的音頻幀確定為該視頻幀同步的音頻幀,此時在基于該視頻幀進行直播畫面的顯示的同時播放與該視頻幀同步的音頻幀,實現(xiàn)了直播畫面中視頻幀和音頻幀的同步播放。特別地,當從該至少一個第四時間戳中沒有查找和該視頻幀的第一時間戳相同的時間戳,在顯示該視頻幀的過程中,等待接收第四時間戳和該視頻幀的第一時間戳相同的音頻幀,直至接收到該音頻幀,然后播放該音頻幀,實現(xiàn)視頻幀和音頻幀的同步播放。

步驟403:當在直播過程播放多媒體文件時,推流客戶端每隔預設時間段獲取該多媒體文件的文件標識和該多媒體文件的播放進度。

當在直播過程播放多媒體文件時,由于現(xiàn)有的rtmp協(xié)議不提供對該多媒體文件對應的提示信息傳輸?shù)闹苯又С郑虼藶榱耸估鞑シ牌鞫丝梢栽诓シ胖辈ヒ曨l的過程中顯示該多媒體文件對應的提示信息,推流客戶端可以將該多媒體文件的文件標識和該多媒體文件的播放進度通過流媒體服務器發(fā)送給拉流播放器端,以使拉流播放器端獲取該多媒體文件對應的提示信息。

其中,多媒體文件可以為歌曲或電影等,當多媒體文件為歌曲時,該多媒體文件對應的提示信息為歌詞,當多媒體文件為電影時,該多媒體文件對應的提示信息為字幕。多媒體文件的文件標識用于唯一標識該多媒體文件,該多媒體文件的文件標識可以為該多媒體文件的名稱如歌曲名或電影名。多媒體文件的播放進度用于指示當前直播過程播放的多媒體文件的播放進度,如該多媒體文件的時間長度為5分鐘,當前直播過程播放的多媒體文件的播放進度為3分20秒,此時該多媒體文件的播放進度為3分20秒。另外,預設時間段為預先設置的時間段,該預設時間段可以為10s,20s或30s等等。

具體地,在直播過程播放多媒體文件時,該多媒體文件可能是推流客戶端播放的多媒體文件,也可能是流媒體服務器在直播過程中推送的多媒體文件,也即該多媒體文件可能是推流客戶端中預先存儲的文件,也可能不是推流客戶端中預先存儲的多媒體文件,因此,每隔預設時間段獲取該多媒體文件的文件標識和該多媒體文件的播放進度可以有兩種實現(xiàn)方式。

第一種實現(xiàn)方式,當該多媒體文件為推流客戶端中預先存儲的文件時,直接每隔預設時間段獲取該多媒體文件的文件標識和該多媒體文件的播放進度。例如,預設時間段為10s,且當前直播過程播放的歌曲為推流客戶端中預先存儲的歌曲,此時,推流客戶端在播放該歌曲的過程中,可以每隔10s,直接獲取該歌曲的名稱,標記為mncurrent,并獲取該歌曲在當前播放時的播放進度,標記為tpcurrent。

第二種實現(xiàn)方式,當該多媒體文件不是推流客戶端中預先存儲的文件時,每隔預設時間段,推流客戶端從已接收的該多媒體文件的音頻幀中,按照音頻幀的接收時間從晚到早的順序,獲取預設個數(shù)的音頻幀;將獲取的音頻幀進行合成,得到音頻信息。推流客戶端向音頻識別服務器發(fā)送音頻查詢請求,該音頻查詢請求攜帶該音頻信息;當音頻識別服務器接收到該音頻查詢請求時,根據(jù)該音頻信息,確定該音頻信息對應的多媒體文件的文件標識和該多媒體文件的播放進度,并向推流客戶端發(fā)送該多媒體文件的文件標識和該多媒體文件的播放進度。推流客戶端接收音頻識別服務器基于該音頻信息確定的多媒體文件的文件標識和播放進度,并將接收到的多媒體文件的文件標識作為當前直播過程播放的多媒體文件的文件標識,將接收到的多媒體文件的播放進度作為當前直播過程播放的多媒體文件的播放進度。

其中,由于每個音頻幀的時間長度是固定的,因此當獲取預設個數(shù)個音頻幀,將獲取的音頻幀進行合成時,得到音頻信息為預設時間長度的音頻信息。且由于按照音頻幀的接收時間從晚到早的順序獲取音頻幀,因此得到的音頻信息可以代表當前直播過程正在播放的音頻信息。另外,音頻識別服務器用于根據(jù)音頻信息確定音頻信息對應的多媒體文件的文件標識和播放進度。例如,該音頻識別服務器可以為聽歌識曲服務器。

例如,推流客戶端從最近一次接收到的音頻幀開始,按照音頻幀的接收時間從晚到早的順序,獲取預設個數(shù)個音頻幀,并將該預設個數(shù)個音頻幀進行合并,得到預設時間長度信息為200ms的音頻信息。推流客戶端向聽歌識曲服務器發(fā)送音頻查詢請求,該音頻查詢請求攜帶該200ms的音頻信息,當聽歌識曲服務器接收到該音頻查詢請求時,根據(jù)該200ms的音頻信息,確定該音頻信息對應的多媒體文件的名稱為smname和該音頻信息對應的多媒體文件的播放進度為tptime,并將該音頻信息對應的多媒體文件的名稱smname和該音頻信息對應的多媒體文件的播放進度tptime發(fā)送給推流客戶端。當推流客戶端接收到該音頻信息對應的多媒體文件的名稱為smname和該音頻信息對應的多媒體文件的播放進度為tptime時,將smname作為當前直播過程中播放的歌曲的名稱mncurrent,將tptime作為當前直播過程中播放的歌曲的播放進度tpcurrent。

步驟404:推流客戶端將該多媒體文件的文件標識和該多媒體文件的播放進度進行封裝,得到偽視頻幀。

為了便于現(xiàn)有的rtmp協(xié)議可以支持對該多媒體文件的文件標識和該多媒體文件的播放進度等信息的傳輸,推流客戶端需將該多媒體文件的文件標識和該多媒體文件的播放進度進行封裝,并按照預設編碼類型進行編碼,得到偽視頻幀。

在一種可能的實現(xiàn)方式中,在現(xiàn)有的h264(一種高性能的視頻編碼技術)中,將視頻幀進行編碼之后得到的數(shù)據(jù)為nal(networkabstractlayer,網(wǎng)絡抽象層)格式的數(shù)據(jù)。并且在h264中包括多種不同的nal類型,其中部分nal類型已被使用以用于定義不同類型的視頻幀,仍存在部分nal類型未做定義,此時可以從該未做定義的nal類型中選擇一個nal類型以定義本發(fā)明實施例提供的偽視頻幀。因此,上述預設編碼類型也即從從該未做定義的nal類型中選擇的nal類型。

另外,為了使拉流播放器端可以在顯示視頻幀時同步顯示該多媒體文件對應的提示信息,推流客戶端在得到該偽視頻幀時,還需為該偽視頻幀打上時間戳,也即確定該偽視頻幀的時間戳,該偽視頻的時間戳用于推流客戶端指示該多媒體文件的播放進度的獲取時間。需要說明的是,推流客戶端獲取該多媒體文件的播放進度為應用層的行為,因此,當推流客戶端確定該多媒體文件的文件標識和該多媒體文件的播放進度的獲取時間時,推流客戶端將該獲取時間轉換為物理層的參考時鐘下的第三時間戳,并進行記錄,也即推流客戶端記錄的多媒體文件的進度的獲取時間為應用層的參考時鐘下的時間。但是對于拉流播放器端,需要根據(jù)視頻幀在物理層對應的獲取時間和多媒體文件的提示信息在物理層的獲取時間進行同步,因此推流客戶端需將該第三時間戳轉換為在物理層的參考時鐘下的時間戳,并將該第三時間戳轉換為在物理層的參考時鐘下的時間戳作為該偽視頻幀的時間戳。具體地,推流客戶端確定在當前時間之前且距離當前時間最近一次向流媒體服務器發(fā)送視頻幀時所發(fā)送的第一時間戳和第二時間戳;確定該多媒體文件的文件標識和該多媒體文件的播放進度的獲取時間,將該獲取時間轉換為第三時間戳;將該第二時間戳和該第三時間戳之間的差值與該第一時間戳相加,得到該偽視頻幀的時間戳。

例如,當前時間之前且距離當前時間最近一次向流媒體服務器發(fā)送視頻幀為vnlast,發(fā)送vnlast時發(fā)送的第一時間戳為tdvnlast和第二時間戳tavnlast,也即,vnlast的第一時間戳tdvnlast和第二時間戳tavnlast。當推流客戶端確定當前直播過程播放的歌曲的名稱和該歌曲的播放進度獲取時間,將該獲取時間轉換為物理層的參考時鐘下的第三時間戳,并記錄為tamcurrent,此時該偽視頻幀的時間戳可以表示為:tdvnlast+(tamcurrent-tavnlast),也即將tamcurrent轉換為物理層的參考時鐘下的時間戳。

步驟405:推流客戶端向流媒體服務器發(fā)送該偽視頻幀,以使流媒體服務器將該偽視頻幀發(fā)送給拉流播放器端,由拉流播放器端在通過視頻幀播放直播視頻的過程中,根據(jù)該偽視頻幀顯示該多媒體文件在該播放進度時對應的提示信息。

值得注意的是,根據(jù)步驟404可知,當推流客戶端確定該偽視頻幀時還可以確定該偽視頻幀的時間戳,因此,推流客戶端向流媒體服務器發(fā)送該偽視頻幀還可以為:推流客戶端向流媒體服務器發(fā)送該偽視頻幀和該偽視頻幀的時間戳。當流媒體服務器接收到該偽視頻幀和該偽視頻幀的時間戳時,將該偽視頻幀和該偽視頻幀的時間戳發(fā)送給拉流播放器端。

步驟406:拉流播放器端在直播畫面的顯示過程中接收流媒體服務器發(fā)送的偽視頻幀,該偽視頻幀為推流客戶端在當前直播過程播放多媒體文件時每隔預設時間段將該多媒體文件的文件標識和該多媒體文件的播放進度進行封裝得到。

可選地,當推流客戶端通過流媒體服務器將該偽視頻幀和該偽視頻幀的時間戳同時發(fā)送給拉流播放器端時,拉流播放器端在接收該偽視頻幀時還接收到該偽視頻幀的時間戳。

另外,為了便于拉流播放器端可以實現(xiàn)當前視頻幀和多媒體文件對應的提示信息的同步顯示,當拉流播放器端接收到流媒體服務器發(fā)送的偽視頻幀之后,還可以將該偽視頻幀和該偽視頻幀的時間戳存儲至偽視頻幀列表中,該偽視頻幀列表用于緩存接收到的偽視頻幀和該偽視頻幀的時間戳。例如,偽視頻幀列表為歌詞隊列,當前直播過程中正在播放歌曲,推流客戶端基于該歌曲通過流媒體服務器向拉流播放器發(fā)送偽視頻幀和該偽視頻幀的時間戳,當拉流播放器端接收到該偽視頻幀和偽視頻幀的時間戳時,將該偽視頻幀和該偽視頻幀的時間戳存儲至該歌詞隊列。

步驟407:拉流播放器端根據(jù)該偽視頻幀,獲取多媒體文件在該播放進度時對應的提示信息,并在該直播畫面的圖層上方顯示該多媒體文件在該播放進度時對應的提示信息。

具體地,拉流播放器端對該偽視頻幀進行解析,得到該多媒體文件的文件標識和該多媒體文件的播放進度;根據(jù)該多媒體文件的文件標識,判斷拉流播放器端中是否存儲有該多媒體文件的提示文件;當拉流播放器端中存儲有該多媒體文件的提示文件時,直接從該多媒體文件的提示文件中獲取該多媒體文件在該播放進度時對應的提示信息。當拉流播放器端中沒有存儲該多媒體文件的提示文件時,根據(jù)該多媒體文件的文件標識,向文件下載服務器發(fā)送文件下載請求,該文件下載請求攜帶該多媒體文件的文件標識;當文件下載服務器接收到該文件下載請求時,根據(jù)該多媒體文件的文件標識,確定該多媒體文件的提示文件,并向拉流播放器端發(fā)送該多媒體文件的提示文件,拉流播放器端接收文件下載服務器基于該多媒體文件的文件標識發(fā)送的提示文件;從接收到的提示文件中獲取該多媒體文件在該播放進度時對應的提示信息。

其中,文件下載服務器用于根據(jù)多媒體文件的文件標識確定多媒體文件的提示文件,如文件下載服務器為歌詞服務器,此時歌詞服務器用于根據(jù)該歌曲的名稱確定該歌曲的歌詞文件。

需要說明的是,當拉流播放器端中沒有存儲該多媒體文件的提示文件時,拉流播放器端需要從文件下載服務器下載該多媒體文件的提示文件,由于下載該多媒體文件的提示文件需要一定的時間,因此當拉流播放器獲取到該多媒體文件的提示文件時,需要重新定位該多媒體文件的播放進度,也即將該多媒體文件的播放進度和下載該多媒體文件的提示文件的時間之和確定該多媒體文件的播放進度。

例如,當前直播過程中播放歌曲,拉流播放器端對該偽視頻幀進行解析,得到該歌曲的名稱mncurrent和該歌曲的播放進度tpcurrent。根據(jù)該歌曲的名稱mncurrent,拉流播放器端判斷本端是否存儲有該歌曲對應的提示文件也即歌詞文件,當本端存儲有該歌曲的歌詞文件時,直接根據(jù)該播放進度tpcurrent,從該歌詞文件中定位該播放進度tpcurrent時該歌曲對應的歌詞,也即獲取該多媒體文件在該播放進度tpcurrent時對應的提示信息。當本端沒有存儲該歌詞文件時,向歌詞服務器發(fā)送歌詞文件下載請求,當歌詞服務器接收到該歌詞文件下載請求時,根據(jù)該歌詞文件下載請求攜帶的該歌曲的名稱,確定該歌曲的歌詞文件,并向拉流播放器端發(fā)送該歌曲的歌詞文件,拉流播放器端在接收到該歌曲的歌詞文件時,確定下載該歌詞文件所需的時間為tdtime,根據(jù)該播放進度tpcurrent,從該歌詞文件中定位播放進度為tdtime+tpcurrent時該歌曲對應的歌詞。

可選地,當拉流播放器端中沒有存儲該多媒體文件的提示文件時,若拉流播放器端中存儲該多媒體文件的音頻文件,拉流播放器端可以將該多媒體文件的音頻文件進行文本處理,得到該多媒體文件的提示文件,然后根據(jù)該多媒體文件的提示文件和該播放進度,確定該多媒體文件在該播放進度時的提示信息。

另外,為了提高觀眾觀看視頻直播的用戶體驗,當拉流播放器端顯示該多媒體文件對應的提示信息時,可以將視頻幀和多媒體文件對應的提示信息進行同步顯示。具體地,在拉流播放器端基于視頻幀進行直播畫面顯示時,從偽視頻幀列表中,查找與該視頻幀同步的偽視頻幀;根據(jù)查找到的偽視頻幀,獲取該多媒體文件在該播放進度時對應的提示信息,并在顯示該視頻幀的同時,顯示該多媒體在該播放進度時對應的提示信息,從而實現(xiàn)視頻幀和多媒體文件對應的提示信息的同步顯示。由步驟402可知,拉流播放器端可以根據(jù)視頻幀的時間戳和音頻幀的時間戳,實現(xiàn)當前播放的視頻幀和音頻幀同步,因此,拉流播放器端可以實現(xiàn)當前播放的音頻幀、視頻幀和多媒體文件對應的提示信息的同步。

其中,查找與該視頻幀同步的偽視頻幀也即查找時間戳和該視頻幀的第一時間戳相同的偽視頻幀,具體為,確定該視頻幀的第一時間戳,從偽視頻幀列表中獲取偽視頻幀的時間戳和在接收該視頻幀時接收到的第一時間戳之間差值最小的偽視頻幀,將獲取到的偽視頻幀確定為與該視頻幀同步的偽視頻幀。

可選地,為了減小拉流播放器端的存儲壓力,當從偽視頻幀列表中查找到與該視頻幀同步的偽視頻幀并根據(jù)該偽視頻幀顯示該多媒體文件對應的提示信息時,可以將該偽視頻幀從該偽視頻幀列表中刪除。另外,由于偽視頻幀為每隔預設時間段推流客戶端通過流媒體服務器向拉流播放器端發(fā)送一次,在該預設時間段內(nèi)推流客戶端可能通過流媒體服務器向拉流播放器端發(fā)送多個視頻幀,因此拉流播放器端在接收到該視頻幀時,該偽視頻列表中的偽視頻個數(shù)可能為0,此時拉流播放器端則不執(zhí)行任何操作。

另外,當拉流播放器端在顯示該多媒體文件在該播放進度時的提示信息之后,當當前時間變化時,還可以根據(jù)變化后的當前時間重新確定該多媒體文件的播放進度,并根據(jù)重新確定的多媒體文件的播放進度和上述已經(jīng)確定的多媒體文件的提示文件,對該多對該多媒體文件的提示信息進行更新。

在本發(fā)明實施例中,當推流客戶端在直播過程播放多媒體文件時,除了將當前進行直播的視頻幀和音頻幀發(fā)送給流媒體服務器,還將該多媒體文件的文件標識和該多媒體文件的播放進度進行封裝得到偽視頻幀,并向流媒體服務器發(fā)送該偽視頻幀,也即,推流客戶端分別發(fā)送視頻幀和偽視頻幀,而不是將該多媒體文件在當前播放進度時對應的提示信息轉換為圖像并與當前視頻幀進行合成,從而使得拉流播放器端在顯示該視頻幀的同時,還可以獨立顯示該多媒體文件在當前播放進度時對應的提示信息,以便于拉流播放器端的用戶能夠單獨對該多媒體文件對應的提示信息執(zhí)行移動、關閉等操作,提高了直播過程中的信息顯示的靈活性。

圖5是本發(fā)明實施例提供的一種直播過程中的信息顯示裝置500,該裝置500應用于圖1所示的推流客戶端101,如圖5所示,該裝置500包括第一發(fā)送模塊501、獲取模塊502、封裝模塊503和第二發(fā)送模塊504:

第一發(fā)送模塊501,用于獲取當前進行直播產(chǎn)生的視頻幀,并向流媒體服務器發(fā)送該視頻幀,以使流媒體服務器將該視頻幀發(fā)送給拉流播放器端;

獲取模塊502,用于當在直播過程播放多媒體文件時,每隔預設時間段獲取該多媒體文件的文件標識和該多媒體文件的播放進度;

封裝模塊503,用于將該多媒體文件的文件標識和該多媒體文件的播放進度進行封裝,得到偽視頻幀;

第二發(fā)送模塊504,用于向流媒體服務器發(fā)送該偽視頻幀,以使流媒體服務器將該偽視頻幀發(fā)送給拉流播放器端,由拉流播放器端在通過視頻幀播放直播視頻的過程中,根據(jù)該偽視頻幀顯示該多媒體文件在該播放進度時對應的提示信息。

可選地,該裝置500還包括:

第一確定模塊,用于確定采集該視頻幀時的系統(tǒng)時間,以及確定推流客戶端獲取到該視頻幀的獲取時間;

轉換模塊,用于將該系統(tǒng)時間轉換為第一時間戳,將該獲取時間轉換為第二時間戳;

編碼模塊,用于將該視頻幀、第一時間戳和第二時間戳進行封裝并編碼,得到編碼后的視頻幀;

相應地,第一發(fā)送模塊501還用于:

將該編碼后的視頻幀發(fā)送給流媒體服務器。

可選地,該裝置500還包括:

第二確定模塊,用于確定在當前時間之前且距離當前時間最近一次向流媒體服務器發(fā)送視頻幀時所發(fā)送的第一時間戳和第二時間戳;

第三確定模塊,用于確定該多媒體文件的文件標識和該多媒體文件的播放進度的獲取時間,將該多媒體文件的文件標識和所述多媒體文件的播放進度的獲取時間轉換為第三時間戳;

相加模塊,用于將該第二時間戳和該第三時間戳之間的差值與該第一時間戳相加,得到該偽視頻幀的時間戳,該偽視頻的時間戳用于指示該多媒體文件的播放進度的獲取時間;

相應地,該第二發(fā)送模塊504還用于:

向流媒體服務器發(fā)送該偽視頻幀和該偽視頻幀的時間戳。

可選地,該獲取模塊502包括:

獲取單元,用于當該多媒體文件不是推流客戶端中預先存儲的文件時,每隔預設時間段,從已接收的該多媒體文件的音頻幀中,按照音頻幀的接收時間從晚到早的順序,獲取預設個數(shù)的音頻幀;

合成單元,用于將獲取的音頻幀進行合成,得到音頻信息;

發(fā)送單元,用于向音頻識別服務器發(fā)送音頻查詢請求,該音頻查詢請求攜帶該音頻信息;

接收單元,用于接收音頻識別服務器基于該音頻信息確定的多媒體文件的文件標識和播放進度。

當推流客戶端在直播過程播放多媒體文件時,除了將當前進行直播的視頻幀發(fā)送給流媒體服務器,還將該多媒體文件的文件標識和該多媒體文件的播放進度進行封裝得到偽視頻幀,并向流媒體服務器發(fā)送該偽視頻幀。也即,推流客戶端分別發(fā)送視頻幀和偽視頻幀,而不是將該多媒體文件在當前播放進度時對應的提示信息轉換為圖像并與當前視頻幀進行合成,從而使得拉流播放器端在顯示該視頻幀的同時,還可以獨立顯示該多媒體文件在當前播放進度時對應的提示信息,以便于拉流播放器端的用戶能夠單獨對該多媒體文件對應的提示信息執(zhí)行移動、關閉等操作,提高了直播過程中的信息顯示的靈活性。

需要說明的是:上述實施例提供的直播過程中的信息顯示裝置在顯示信息時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設備的內(nèi)部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的直播過程中的信息顯示裝置與直播過程中的信息顯示方法實施例屬于同一構思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。

圖6是本發(fā)明實施例提供的一種直播過程中的信息顯示裝置600,該裝置600應用于圖1所示的拉流播放器端103,如圖6所示,該裝置600包括第一接收模塊601、第二接收模塊602、獲取模塊603:

第一接收模塊601,用于接收流媒體服務器發(fā)送的視頻幀,并基于該視頻幀進行直播畫面的顯示,該視頻幀為推流客戶端在當前進行直播時獲取并向流媒體服務器發(fā)送的視頻幀;

第二接收模塊602,用于在該直播畫面的顯示過程中接收流媒體服務器發(fā)送的偽視頻幀,該偽視頻幀為推流客戶端在當前直播過程播放多媒體文件時每隔預設時間段將該多媒體文件的文件標識和該多媒體文件的播放進度進行封裝得到;

獲取模塊603,用于根據(jù)該偽視頻幀,獲取多媒體文件在該播放進度時對應的提示信息,并在該直播畫面的圖層上方顯示該多媒體文件在該播放進度時對應的提示信息。

可選地,該獲取模塊603包括:

解析單元,用于對該偽視頻幀進行解析,得到該多媒體文件的文件標識和該多媒體文件的播放進度;

判斷單元,用于根據(jù)該多媒體文件的文件標識,判斷拉流播放器端中是否存儲有該多媒體文件的提示文件;

第一獲取單元,用于當拉流播放器端中存儲有該多媒體文件的提示文件時,從該多媒體文件的提示文件中獲取該多媒體文件在該播放進度時對應的提示信息。

可選地,該獲取模塊603還包括:

發(fā)送單元,用于當拉流播放器端中沒有存儲該多媒體文件的提示文件時,根據(jù)該多媒體文件的文件標識,向文件下載服務器發(fā)送文件下載請求,該文件下載請求攜帶該多媒體文件的文件標識;

接收單元,用于接收文件下載服務器基于該多媒體文件的文件標識發(fā)送的提示文件;

第二獲取單元,用于從接收到的提示文件中獲取該多媒體文件在該播放進度時對應的提示信息。

可選地,該裝置600還包括:

存儲模塊,用于將該偽視頻幀存儲至偽視頻幀列表中,該偽視頻幀列表用于緩存接收到的偽視頻幀;

相應地,該獲取模塊603包括:

查找單元,用于從偽視頻幀列表中,查找與該視頻幀同步的偽視頻幀;

第三獲取單元,用于根據(jù)查找到的偽視頻幀,獲取該多媒體文件在該播放進度時對應的提示信息。

可選地,在接收該視頻幀時還接收到第一時間戳,第一時間戳為推流客戶端將采集該視頻幀時的系統(tǒng)時間轉換得到;

在接收該偽視頻幀時還接收到該偽視頻幀的時間戳,該偽視頻的時間戳用于指示該多媒體文件的播放進度的獲取時間;

相應地,查找單元還用于:

從偽視頻幀列表中獲取偽視頻幀的時間戳和在接收該視頻幀時接收到的第一時間戳之間差值最小的偽視頻幀;

將獲取到的偽視頻幀確定為與該視頻幀同步的偽視頻幀。

當推流客戶端在直播過程播放多媒體文件時,拉流播放器端除了接收到視頻幀,還接收到推流客戶端通過流媒體服務器發(fā)送的偽視頻幀,由于該偽視頻幀為推流客戶端在當前直播過程播放多媒體文件時每隔預設時間段將該多媒體文件的文件標識和該多媒體文件的播放進度進行封裝得到,因此,拉流播放器端可以根據(jù)該偽視頻幀,獲取該多媒體文件在該播放進度時對應的提示信息,并在該直播畫面的圖層上方顯示該多媒體文件在該播放進度時對應的提示信息。也即拉流播放器端可以分別獨立顯示當前直播畫面中的視頻幀和該多媒體文件在該播放進度時對應的提示信息,以便于拉流播放器端的用戶可以單獨對該多媒體文件對應的提示信息執(zhí)行移動、關閉等操作,提高了直播過程中的信息顯示的靈活性。

需要說明的是:上述實施例提供的直播過程中的信息顯示裝置在顯示信息時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設備的內(nèi)部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的直播過程中的信息顯示裝置與直播過程中的信息顯示方法實施例屬于同一構思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。

本領域普通技術人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。

以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1