一種媒體文件直播方法及直播源伺服器的製造方法
2023-09-10 15:30:20 3
一種媒體文件直播方法及直播源伺服器的製造方法
【專利摘要】本申請公開了一種媒體文件的直播方法,包括:從本地或網絡讀取媒體文件,得到數據源;將媒體文件按照預設的格式進行轉碼處理,輸出符合傳輸流打包要求的基本流;對音頻碼流和視頻碼流進行時間戳同步和重組;將同步和重組處理後的音頻和視頻碼流打包成直播源碼流;將打包後的直播源碼流發送到網絡模塊以提供直播服務。本申請將不同文件格式的音頻、視頻數據經轉碼、同步和重組後,打包為具有統一音視頻屬性的直播源碼流,從而實現了單個或多個不同格式類型媒體文件的直播,解決各種不同類別直播用戶的需求,提高了用戶體驗。
【專利說明】一種媒體文件直播方法及直播源伺服器
【技術領域】
[0001]本申請涉及網絡【技術領域】,特別是涉及一種基於本地媒體文件輪播的直播方法及直播伺服器。
【背景技術】
[0002]網際網路音視頻技術的高速發展必然會導致對伺服器的要求越來越高。直播技術即是將正在播放的視頻信號通過特定的方法推送給客戶端,並由客戶端的播放器將視頻信號轉化為可視、可聽的視頻。目前的直播數據源基本上都是來自視頻採集卡採集的電視機、攝像機、錄像機等各種視頻信號,但對於網絡上各種媒體文件格式(如qmv、rmvb> av1、wmv、flv> mp4、mkv、mpeg-ts、mpeg-ps等)卻顯得有些力不從心。由於這種直播源的局限性,使得各種不同類別的直播用戶的需求難以滿足。
【發明內容】
[0003]本申請提出了一種可以實現不同格式類型媒體文件直播的方法和直播源伺服器。
[0004]根據本申請的第一方面,提供一種媒體文件直播方法,包括:
[0005]從本地或網絡讀取媒體文件,得到數據源;將媒體文件按照預設的格式進行轉碼處理,輸出符合傳輸流打包要求的基本流,所述基本流包括音頻碼流和視頻碼流;對音頻碼流和視頻碼流進行時間戳同步;對音頻碼流和視頻碼流的時間戳進行重組;將同步和重組處理後的音頻和視頻碼流打包成直播源碼流;將打包後的直播源碼流發送到網絡模塊以提供直播服務。
[0006]所述本地或網絡的媒體文件以輪播方式呈現。
[0007]所述將媒體文件按照預設的格式進行轉碼處理包括:
[0008]解析媒體文件,分離出音頻數據和視頻數據,對音視頻數據進行解碼;分別對解析出的音視頻數據分別進行後處理,其中音頻後處理包括:按照設定的音量和/或聲道對解碼後的音頻數據進行聲道轉換,並按照設定的採樣率對音頻數據進行重採樣;對進行聲道和採樣率轉換後的音頻數據按照設定的編碼方式進行重新編碼,生成音頻碼流;其中視頻後處理包括:按照設定的參數對解碼後的視頻數據進行圖像處理;將圖像處理後的視頻數據按照設定的編碼方式進行重新編碼,生成視頻碼流。
[0009]所述對音頻碼流和視頻碼流進行時間戳同步包括:將音頻碼流和視頻碼流的播放時間調整為一致;和將音頻碼流和視頻碼流的提交速率調整為和播放速率一致。
[0010]對音頻碼流和視頻碼流的時間戳進行重組包括:將多條不連續的音頻碼流和視頻碼流的時間戳分別按照播放順序進行連續重組,形成一條連續的音視頻碼流。
[0011]所述媒體文件直播方法還包括:根據用戶的選擇對數據源或直播源碼流進行預覽。
[0012]所述將同步和重組處理後的音頻和視頻碼流打包成直播源碼流為:將時間戳相同的音頻碼流和視頻碼流打包到距離在設定範圍之內的數據包內。[0013]所述直播源碼流為mpeg2_ts流。
[0014]根據本申請的第二方面,提出了一種基於本地媒體文件輪播的直播源伺服器,包括:讀取模塊,用於從本地或網絡讀取以輪播方式呈現媒體文件,得到數據源;轉碼模塊,用於將媒體文件按照預設的格式進行轉碼處理,輸出符合傳輸流打包要求的基本流,所述基本流包括音頻碼流和視頻碼流;數據提交模塊,用於對音頻碼流和視頻碼流進行時間戳同步;數據緩衝模塊,用於對音頻碼流和視頻碼流的時間戳進行重組;打包模塊,用於將同步和重組處理後的音頻和視頻碼流打包成直播源碼流;網絡模塊,用於接收打包模塊發送的直播源碼流數據包,並發送到伺服器以提供直播服務。
[0015]所述轉碼模塊包括:分離單元,用於解析媒體文件,分離出音頻數據和視頻數據;音頻解碼單元,用於對分離出的音頻數據進行解碼;音頻後處理單元,用於按照設定的音量和/或聲道對解碼後的音頻數據進行聲道轉換,並按照設定的採樣率對音頻數據進行重採樣;音頻編碼單元,用於對進行聲道和採樣率轉換後的音頻數據按照設定的編碼方式進行重新編碼,生成音頻碼流;視頻解碼單元,用於對分離出的視頻數據進行解碼;視頻後處理單元,用於按照設定的參數對解碼後的視頻數據進行圖像處理;視頻編碼單元,用於將圖像處理後的視頻數據按照設定的編碼方式進行重新編碼,生成視頻碼流。
[0016]所述視頻後處理單元中的圖像處理包括根據用戶的設置對解碼後的視頻數據進行縮放、裁剪、加字幕、加標識,畫質調節。
[0017]所述直播源伺服器獲取其所在終端的硬體信息,並根據用戶輸入的控制指令確定編碼方式,並輸出到顯示器進行顯示。
[0018]所述數據提交模塊用於將音頻碼流和視頻碼流的播放時間調整為一致;和將音頻碼流和視頻碼流的提交速率調整為和播放速率一致;所述數據緩衝模塊用於將多條不連續的音頻碼流和視頻碼流的時間戳分別按照播放順序進行連續重組,形成一條連續的音視頻碼流;打包模塊用於將時間戳相同的音頻碼流和視頻碼流打包到距離在設定範圍之內的數據包內。
[0019]本申請將不同文件格式的音頻、視頻數據經轉碼、同步和重組後,打包為具有統一音視頻屬性的直播源碼流,從而實現了單個或多個不同格式類型媒體文件的直播,解決各種不同類別直播用戶的需求,提高了用戶體驗。
【專利附圖】
【附圖說明】
[0020]圖1為本申請實施例中的一種媒體文件直播方法的流程圖;
[0021]圖2為圖1中轉碼過程的一種具體流程圖;
[0022]圖3為本申請實施例中的一種直播源伺服器的模塊圖;
[0023]圖4為圖3中轉碼模塊的子模塊圖。
【具體實施方式】
[0024]下面通過【具體實施方式】結合附圖對本申請作進一步詳細說明。
[0025]請參考圖1所示,本實施例中的一種媒體文件直播方法主要是將不同格式的音視頻數據轉碼為具有統一音視頻屬性的直播源碼流,最後發送至網絡模塊為用戶提供服務的過程,具體包括以下步驟:[0026]步驟Slll:從本地或網絡讀取媒體文件,得到數據源。在一種實施例中,以本地媒體文件輪播的方式來作為數據源,將不同文件格式的媒體文件以輪播的方式呈現,文件格式可以為各種媒體文件格式,如 qmv、rmvb、av1、wmv、flv、mp4、mkv、mpeg-ts、mpeg-ps 等。
[0027]步驟S121:將媒體文件按照預設的格式進行轉碼處理,輸出符合傳輸流打包要求的基本流,此處的基本流包括音頻碼流和視頻碼流。本發明對不同編碼、碼率的音視頻分別進行解碼,再經過視頻縮放和音頻的重採樣、聲道轉換,然後由統一的編碼器進行編碼,從而解決了不同編碼算法、碼率、播放長度、視頻幀率、採樣率、聲道、解析度的媒體文件的兼容性問題。
[0028]步驟S131:對音頻碼流和視頻碼流進行時間戳同步。由於數據鏈路中音頻、視頻轉碼的速率不一樣,導致音頻、視頻數據的時間戳可能不一致,從而造成打包後基本流中的音視頻碼流不同步的問題,因此必須先對音頻碼流和視頻碼流進行時間戳同步。在一種具體實例中,對音頻碼流和視頻碼流進行時間戳同步包括:將音頻碼流和視頻碼流的播放時間調整為一致。在另一種具體實例中,對音頻碼流和視頻碼流進行時間戳同步還可以包括:將音頻碼流和視頻碼流的提交速率調整為和播放速率一致。
[0029]步驟S141:對音頻碼流和視頻碼流的時間戳進行重組,將多條不連續的音頻碼流和視頻碼流的時間戳分別按照播放順序進行連續重組,形成一條連續的音視頻碼流。例如,接收到的第一個視頻碼流的時間戳為從O秒到10秒,接收到的第二個視頻碼流的時間戳也是從O秒開始,如果按照現有的時間戳,播放時將導致重新開始播放。在本步驟中,將接收到的第一個視頻碼流和第二個視頻碼流的時間戳進行重組,接續第一個視頻碼流的時間戳,將第二個視頻碼流的時間戳進行重組,從11秒開始。從而在播放時可連續播放。
[0030]步驟S151:將同步和重組處理後的音頻和視頻碼流打包成直播源碼流,具體為,將時間戳相同的音頻碼流和視頻碼流打包到距離在設定範圍之內的數據包內,例如,將時間戳為5的音頻碼流打包到第3個數據包,將時間戳為5的視頻碼流打包到第4個數據包,這樣使得視頻和音頻同時到達或間隔很近到達,避免在播放時聲音和圖像不同步。
[0031]本實施例中,直播源碼流為mpeg2_ts流,在另外的實施例中,直播源碼流還可以根據需要選擇其他的直播源碼流。
[0032]步驟S161:將打包後的直播源碼流發送到網絡模塊以提供直播服務。
[0033]在有的實施例中,還可根據用戶的選擇對直播源碼流進行預覽。
[0034]進一步的,如圖2所示,上述步驟S121中的轉碼過程具體包括:
[0035]步驟S1211:解析媒體文件,分離出音頻數據和視頻數據,然後分別對音頻數據和視頻數據進行處理;
[0036]步驟S1212:解碼音頻數據;
[0037]步驟S1213:對音頻數據進行後處理,包括:按照設定的音量和/或聲道對解碼後的音頻數據進行音量放大和聲道轉換,並按照設定的採樣率對音頻數據進行重採樣;
[0038]步驟S1214:對進行聲道和採樣率轉換後的音頻數據按照設定的編碼方式進行重新編碼,生成音頻碼流;
[0039]步驟S1215:解碼視頻數據;
[0040]步驟S1216:對視頻後處理,包括:按照設定的參數對解碼後的視頻數據進行圖像處理,包括圖像縮放、銳化、裁剪、去黑邊以及畫質色彩調節、加字幕,加標籤或者加文字公告等處理;
[0041]步驟S1217:將圖像處理後的視頻數據按照設定的編碼方式進行重新編碼,生成視頻碼流;
[0042]在有的實施例中,解碼音視頻數據之後,還可根據用戶的選擇對音視頻數據源進行預覽。
[0043]上述的步驟S1214和S1217中設定的編碼方式包括不同的格式文件,例如qmv、rmvb、avi> wmv> flv> mp4、mkv、mpeg-ts、mpeg-ps 等所對應的編碼方式。
[0044]圖2所示的轉碼過程中,本地或者網絡的媒體文件的源視頻數據經過解析後分別輸出的音頻、視頻碼流,經過音頻、視頻解碼器解碼成未壓縮的音視頻裸數據,流經預覽過濾器。預覽過濾器根據用戶需求決定是否將音視頻裸數據發送到預覽模塊,並將數據發送到下層進行音頻、視頻後處理,音頻、視頻後處理過程根據上層的需求對數據進行相應的處理,並將處理後的音頻、視頻數據發送至相應的編碼器進行編碼。
[0045]如圖3所示,本實施例的直播源伺服器主要包括讀取模塊101,轉碼模塊102,數據提交模塊103,數據緩衝模塊104,打包模塊105,網絡模塊106:
[0046]讀取模塊101用於從本地或網絡讀取以輪播方式呈現的媒體文件,得到數據源;
[0047]轉碼模塊102用於將媒體文件按照預設的格式進行轉碼處理,輸出符合傳輸流打包要求的基本流,基本流包括音頻碼流和視頻碼流;
[0048]數據提交模塊103用於對音頻碼流和視頻碼流進行時間戳同步,還用於將音頻碼流和視頻碼流的播放時間調整為一致;和將音頻碼流和視頻碼流的提交速率調整為和播放
速率一致;
[0049]數據緩衝模塊104用於對音頻碼流和視頻碼流的時間戳進行重組,還用於將音頻碼流和視頻碼流的時間戳分別按照播放順序進行連續重組;
[0050]打包模塊105用於將同步和重組處理後的音頻和視頻碼流打包成直播源碼流,還用於將時間戳相同的音頻碼流和視頻碼流打包到距離在設定範圍之內的數據包內;
[0051]網絡模塊106用於接收打包模塊發送的直播源碼流數據包,並發送到伺服器以提供直播服務。
[0052]在用戶使用時,直播源伺服器獲取其所在終端的硬體信息,根據用戶輸入的控制指令確定編碼方式,並輸出到顯示器進行顯示。
[0053]如圖4所示,轉碼模塊102可細分為8個子模塊:
[0054]分離單元1021,用於解析媒體文件,分離出音頻數據和視頻數據;
[0055]音頻解碼單元1022,用於對分離出的音頻數據進行解碼;
[0056]音頻後處理單元1023,用於按照設定的音量和/或聲道對解碼後的音頻數據進行聲道轉換,並按照設定的採樣率對音頻數據進行重採樣;
[0057]音頻編碼單元1024,用於對進行聲道和採樣率轉換後的音頻數據按照設定的編碼方式進行重新編碼,生成音頻碼流;
[0058]視頻解碼單元1025,用於對分離出的視頻數據進行解碼;
[0059]視頻後處理單元1026,用於按照設定的參數對解碼後的視頻數據進行圖像處理,包括根據用戶的設置對解碼後的視頻數據進行縮放、加字幕、加標識、畫質調節、圖像縮放、銳化、裁剪、去黑邊,在其它實施例中,還包括加標識或者文字公告等;[0060]視頻編碼單元1027,用於將圖像處理後的視頻數據按照設定的編碼方式進行重新編碼,生成視頻碼流。
[0061]本申請對不同編碼、碼率的音視頻分別進行解碼,再經過視頻縮放和音頻的重採樣、聲道轉換,然後由統一的編碼器進行編碼,最後打包成基本流以送到伺服器以提供直播服務;可以兼容市面上主流的媒體文件格式如qmv、rmvb、av1、wmv、flv、mp4、mkv、mpeg-ts、mpeg-ps等的解析;同時解決了不同編碼算法、碼率、播放長度、視頻幀率、採樣率、聲道、解析度的媒體文件的兼容性問題:本申請還針對轉碼後的基本流的音頻、視頻時間戳進行重組,實現了音頻、視頻的同步;並能夠在直播伺服器運行的過程中進行輪播文件播放列表的切換,提聞了用戶體驗。
[0062]以上內容是結合具體的實施方式對本申請所作的進一步詳細說明,不能認定本申請的具體實施只局限於這些說明。對於本申請所屬【技術領域】的普通技術人員來說,在不脫離本申請構思的前提下,還可以做出若干簡單推演或替換。
【權利要求】
1.一種媒體文件直播方法,其特徵在於,包括: 從本地或網絡讀取媒體文件,得到數據源; 將媒體文件按照預設的格式進行轉碼處理,輸出符合傳輸流打包要求的基本流,所述基本流包括音頻碼流和視頻碼流; 對音頻碼流和視頻碼流進行時間戳同步; 對音頻碼流和視頻碼流的時間戳進行重組; 將同步和重組處理後的音頻和視頻碼流打包成直播源碼流; 將打包後的直播源碼流發送到網絡模塊以提供直播服務。
2.如權利要求1所述的方法,其特徵在於,本地或網絡的媒體文件以輪播方式呈現。
3.如權利要求1所述的方法,其特徵在於,將媒體文件按照預設的格式進行轉碼處理包括: 解析媒體文件,分離出音頻數據和視頻數據,並對音視頻數據分別進行解碼; 對解析出的音頻數據進行後處理,其中音頻後處理包括:按照設定的音量和/或聲道對解碼後的音頻數據進行聲道轉換,按照設定的採樣率對音頻數據進行重採樣; 對進行聲道和採樣率轉換後的音頻數據按照設定的編碼方式進行重新編碼,生成音頻碼流; 對解析出的視`頻數據進行後處理,其中視頻後處理包括:按照設定的參數對解碼後的視頻數據進行圖像處理; 將圖像處理後的視頻數據按照設定的編碼方式進行重新編碼,生成視頻碼流; 所述對音頻碼流和視頻碼流進行時間戳同步包括:將音頻碼流和視頻碼流的播放時間調整為一致;和將音頻碼流和視頻碼流的提交速率調整為和播放速率一致; 對音頻碼流和視頻碼流的時間戳進行重組包括:將多條不連續的音頻碼流和視頻碼流的時間戳分別按照播放順序進行連續重組,形成一條連續的音視頻碼流。
4.如權利要求1所述的方法,其特徵在於還包括:根據用戶的選擇對數據源或直播源碼流進行預覽,所述直播源碼流為mpeg2-tS流。
5.如權利要求1至4中任一項所述的方法,其特徵在於,將同步和重組處理後的音頻和視頻碼流打包成直播源碼流為:將時間戳相同的音頻碼流和視頻碼流打包到距離在設定範圍之內的數據包內。
6.一種直播源伺服器,其特徵在於包括: 讀取模塊,用於從本地或網絡讀取以輪播方式呈現的媒體文件,得到數據源; 轉碼模塊,用於將媒體文件按照預設的格式進行轉碼處理,輸出符合傳輸流打包要求的基本流,所述基本流包括音頻碼流和視頻碼流; 數據提交模塊,用於對音頻碼流和視頻碼流進行時間戳同步; 數據緩衝模塊,用於對音頻碼流和視頻碼流的時間戳進行重組; 打包模塊,用於將同步和重組處理後的音頻和視頻碼流打包成直播源碼流; 網絡模塊,用於接收打包模塊發送的直播源碼流數據包,並發送到伺服器以提供直播服務。
7.如權利要求6所述的直播源伺服器,其特徵在於,轉碼模塊包括: 分離單元,用於解析媒體文件,分離出音頻數據和視頻數據;音頻解碼單元,用於對分離出的音頻數據進行解碼; 音頻後處理單元,用於按照設定的音量和/或聲道對解碼後的音頻數據進行聲道轉換,並按照設定的採樣率對音頻數據進行重採樣; 音頻編碼單元,用於對進行聲道和採樣率轉換後的音頻數據按照設定的編碼方式進行重新編碼,生成音頻碼流; 視頻解碼單元,用於對分離出的視頻數據進行解碼; 視頻後處理單元,用於按照設定的參數對解碼後的視頻數據進行圖像處理; 視頻編碼單元,用於將圖像處理後的視頻數據按照設定的編碼方式進行重新編碼,生成視頻碼流。
8.如權利要求7所述的直播源伺服器,其特徵在於:所述視頻後處理單元中的圖像處理包括根據用戶的設置對解碼後的視頻數據進行縮放、裁剪、加字幕、加標識、畫質調節。
9.如權利要求7所述的直播源伺服器,其特徵在於:所述直播源伺服器獲取其所在終端的硬體信息,並根據用戶輸入的控制指令確定編碼方式,並輸出到顯示器進行顯示。
10.如權利要求6-9中任一項所述的直播源伺服器,其特徵在於: 所述數據提交模塊用於將音頻碼流和視頻碼流的播放時間調整為一致;和將音頻碼流和視頻碼流的提交速率調整為和播放速率一致; 所述數據緩衝模塊用於將多條不連續的音頻碼流和視頻碼流的時間戳分別按照播放順序進行連續重組,形成一條連續的音視頻碼流; 打包模塊用於將時間戳相同的音頻碼流和視頻碼流打包到距離在設定範圍之內的數據包內。`
【文檔編號】H04N21/236GK103873888SQ201210535149
【公開日】2014年6月18日 申請日期:2012年12月12日 優先權日:2012年12月12日
【發明者】吳維檢, 吳治雄, 王雲剛 申請人:深圳市快播科技有限公司