一種傳輸流ts媒體文件播放速度的控制方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種傳輸流TS媒體文件播放速度的控制方法及裝置,用以實現非正常播放速度下視頻圖像的均勻播放。該方法為:獲取調整倍率;解析待播放的TS碼流獲得每幀視頻圖像數據的解碼時間戳和顯示時間戳;計算相鄰兩幀視頻圖像數據的解碼時間戳的差值得到第一差值,以及計算相鄰兩幀視頻圖像數據的顯示時間戳的差值得到第二差值,采用調整倍率調整第一差值,根據調整后的第一差值確定每幀視頻圖像數據的新的解碼時間戳,以及采用調整倍率調整第二差值,根據調整后的第二差值確定每幀視頻圖像的新的顯示時間戳;在系統(tǒng)時鐘達到新的解碼時間戳時解碼對應的視頻圖像數據,以及在系統(tǒng)時鐘達到新的顯示時間戳時顯示對應的視頻圖像數據。
【專利說明】一種傳輸流TS媒體文件播放速度的控制方法及裝置
【技術領域】
[0001] 本發(fā)明涉及通信【技術領域】,尤其涉及一種傳輸流(TS)媒體文件播放速度的控制 方法及裝置。
【背景技術】
[0002] 在采用傳輸流(Transport Stream, TS)的媒體節(jié)目播放過程中,為了滿足用戶快 速瀏覽節(jié)目內容的需要,播放器提供快進播放功能。
[0003] 現有技術中,本地媒體文件的快進播放功能通常采用選取播放媒體文件中的關鍵 幀的方式實現。對于有索引信息的媒體文件,例如AVI格式的媒體文件,可以通過索引信息 直接定位關鍵幀在媒體文件中的位置,從而快速獲得關鍵幀的數據。
[0004] 但是,發(fā)明人發(fā)現,TS媒體文件中沒有定位關鍵幀的索引信息,只有通過遍歷整個 TS媒體文件來查找關鍵幀完成索引信息的建立,而對于數據量大的TS媒體文件,完成索引 信息的建立需要花費大量的時間,影響用戶的體驗。
[0005] 另外,TS媒體文件中關鍵幀(I幀)的分布是不均勻的,如果通過抽取關鍵幀的方 式實現快進功能,會導致快進播放出現時快時慢。
【發(fā)明內容】
[0006] 本發(fā)明實施例提供一種傳輸流TS媒體文件播放速度的控制方法,用以實現非正 常播放速度下視頻圖像的均勻播放。
[0007] 本發(fā)明實施例提供的具體技術方案如下:
[0008] -種傳輸流TS媒體文件播放速度的控制方法,包括:
[0009] 獲取播放速度調整指令,所述播放速度調整指令中攜帶有調整倍率;
[0010] 解析待播放的TS碼流獲得每幀視頻圖像數據的解碼時間戳和顯示時間戳;
[0011] 計算相鄰兩幀視頻圖像數據的解碼時間戳的差值得到第一差值,以及計算相鄰兩 幀視頻圖像數據的顯示時間戳的差值得到第二差值,采用所述調整倍率調整所述第一差 值,根據調整后的所述第一差值確定每幀視頻圖像數據的新的解碼時間戳,以及采用所述 調整倍率調整所述第二差值,根據調整后的所述第二差值確定每幀視頻圖像的新的顯示時 間戳;
[0012] 在系統(tǒng)時鐘達到所述新的解碼時間戳時解碼對應的視頻圖像數據,以及在系統(tǒng)時 鐘達到所述新的顯示時間戳時顯示對應的視頻圖像數據。
[0013] 一種傳輸流TS媒體文件播放速度的控制裝置,包括:
[0014] 獲取模塊,用于獲取播放速度調整指令,所述播放速度調整指令中攜帶有調整倍 率;
[0015] 解析模塊,用于解析待播放的TS碼流獲得每幀視頻圖像數據的解碼時間戳和顯 示時間戳;
[0016] 重構模塊,用于計算相鄰兩幀視頻圖像數據的解碼時間戳的差值得到第一差值, 以及計算相鄰兩幀視頻圖像數據的顯示時間戳的差值得到第二差值,采用所述調整倍率調 整所述第一差值,根據調整后的所述第一差值確定每幀視頻圖像數據的新的解碼時間戳, 以及采用所述調整倍率調整所述第二差值,根據調整后的所述第二差值確定每幀視頻圖像 的新的顯示時間戳;
[0017] 解碼顯示模塊,用于在系統(tǒng)時鐘達到所述新的解碼時間戳時解碼對應的視頻圖像 數據,以及在系統(tǒng)時鐘達到所述新的顯示時間戳時顯示對應的視頻圖像數據。
[0018] 基于上述技術方案,本發(fā)明實施例中,按照獲取的調整倍率重構TS碼流中每幀視 頻圖像數據的解碼時間戳和顯示時間戳,按照重構得到的新的解碼時間戳解碼視頻圖像數 據,以及按照重構得到的新的顯示時間戳顯示視頻圖像數據,通過對每幀視頻圖像數據的 解碼時間和播放時間進行控制,達到控制整個TS碼流的播放速度的目的,保證了 TS碼流播 放速度的均勻性,避免了抽取關鍵幀的方式進行播放速率調整所導致的時快時慢的播放效 果。
【專利附圖】
【附圖說明】
[0019] 圖1為本發(fā)明實施例TS碼流的播放準備階段示意圖;
[0020] 圖2為本發(fā)明實施例正常速度播放TS碼流的音視頻數據的過程示意圖;
[0021] 圖3為本發(fā)明實施例中播放速度控制的方法流程示意圖;
[0022] 圖4為本發(fā)明實施例中TS碼流播放速度控制框圖;
[0023] 圖5為本發(fā)明實施例中TS媒體文件播放速度控制裝置的結構示意圖。
【具體實施方式】
[0024] 為了使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明作進 一步地詳細描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施 例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的 所有其它實施例,都屬于本發(fā)明保護的范圍。
[0025] 音頻模擬信號或者視頻模擬信號由編碼器按照動態(tài)圖像專家組(MPEG)_2的標 準,經過抽樣、量化及壓縮編碼,形成基本碼流(Elementary Stream, ES),該ES是不分 段的連續(xù)碼流。將該ES分成段,加上相應的頭文件并打包,形成分組基本碼流(Packet Elementary Stream, PES)〇
[0026] TS碼流中的每個PES包中的每個視頻幀都有對應的解碼時間戳(Decode Time Stamp,DTS)和顯不時間戮(Presentation Time Stamp,PTS),其中,DTS表不對應的一中貞 視頻圖像數據被解碼的時間,在解碼階段使用,PTS表示對應的一幀視頻圖像數據被顯示的 時間,在顯示階段使用。其中,DTS和PTS都是相對于TS碼流中的節(jié)目時鐘參考(Program Clock Reference,PCR)的時間戮。
[0027] 本發(fā)明以下各實施例中,分為TS碼流的播放準備階段、以正常播放速度播放階段 以及播放速度調整階段對整個播放過程進行說明。
[0028] 如圖1所示,TS碼流的播放準備階段,播放設備在讀取TS碼流文件后,解析該TS 碼流文件獲得節(jié)目關聯(PAT)表,該PAT表中包含有每路視頻節(jié)目的標識,從而根據該PAT 表確定該TS碼流中有幾路視頻節(jié)目。
[0029] 其中,根據PAT表中的每路視頻節(jié)目的標識可以獲得每路視頻節(jié)目對應的節(jié)目映 射表(PMT),PMT表中包含有相應的視頻節(jié)目的視頻標識、音頻標識以及節(jié)目時鐘參考標 識。其中視頻節(jié)目的標識用于確定一路視頻節(jié)目,視頻節(jié)目的視頻標識用于確定一路視頻 節(jié)目中包含的視頻圖像數據,視頻節(jié)目的音頻標識用于確定一路視頻節(jié)目中包含的音頻數 據,PCR標識用于確定一路視頻節(jié)目對應的PCR。
[0030] 根據PMT表中的視頻標識、音頻標識以及PCR標識設置過濾器(Filter),即可過濾 得到TS碼流中該路視頻節(jié)目的視頻PES數據包、音頻PES數據包和節(jié)目時鐘參考(PCR)。 每個視頻PES數據包的包頭中包含有該PES數據包中的每幀視頻圖像的DTS和PTS,每個音 頻PES數據包的包頭中包含有該PES數據包中的每幀音頻的DTS和PTS。
[0031] 以正常播放速度播放TS碼流的音視頻數據的過程如圖2所示,解析TS碼流,分別 對視頻、音頻以及PCR進行解復用,獲得用戶選擇播放的一路視頻節(jié)目的視頻PES數據包、 音頻PES數據包以及PCR,并采用解析獲得的該路視頻節(jié)目的PCR修正播放設備的本地系統(tǒng) 時鐘。
[0032] 解析該路視頻節(jié)目的待播放的視頻PES數據包,獲得待播放的每幀視頻圖像數據 的DTS和PTS,視頻解碼控制器在系統(tǒng)時鐘達到DTS時指示視頻解碼器解碼對應的視頻圖像 數據,視頻顯示控制器在系統(tǒng)時鐘達到PTS時指示視頻顯示器顯示對應的視頻圖像數據。
[0033] 解析該路視頻節(jié)目的待播放的音頻PES數據包,獲得待播放的每幀音頻的DTS和 PTS,音頻解碼控制器在系統(tǒng)時鐘達到DTS時指示音頻解碼器解碼對應的音頻數據,音頻輸 出控制器在系統(tǒng)時鐘達到PTS時指示音頻輸出器輸出對應的音頻數據。
[0034] 如圖3所示,在以正常播放速度、非正常播放速度播放TS碼流等播放過程中的任 意時刻,進行播放速度控制的詳細方法流程如下:
[0035] 步驟301 :獲取播放速度調整指令,該播放速度調整指令中攜帶有調整倍率。
[0036] 本發(fā)明實施例中,調整倍率R大于零值且不等于一。
[0037] 其中,播放速度調整指令為用戶通過操作播放器的按鈕輸入,在播放器中預設不 同按鈕對應的調整倍率,或者預設同一按鈕的不同操作方式對應的調整倍率。本發(fā)明實施 例并不限定播放速度調整指令的獲取方式,現有的獲取播放速度調整指令的方式均可應用 于本發(fā)明。
[0038] 步驟302 :解析待播放的TS碼流獲得每幀視頻圖像數據的解碼時間戳和顯示時間 戳。
[0039] 步驟303 :計算相鄰兩幀視頻圖像數據的解碼時間戳的差值得到第一差值,以及 計算相鄰兩幀視頻圖像數據的顯示時間戳的差值得到第二差值,采用所述調整倍率調整所 述第一差值,根據調整后的所述第一差值確定每幀視頻圖像數據的新的解碼時間戳,以及 采用所述調整倍率調整所述第二差值,根據調整后的所述第二差值確定每幀視頻圖像的新 的顯示時間戳。
[0040] 其中,第一差值與第二差值基本相同,具體實施時,可視為第一差值等同于第二差 值,計算時僅計算第一差值或第二差值即可。
[0041] 優(yōu)選地,將所述第一差值除以所述調整倍率后,與所述相鄰兩幀視頻圖像數據中 的前一幀視頻圖像數據的新的解碼時間戳求和,將得到的和值作為所述相鄰兩幀視頻圖像 數據中的后一幀視頻圖像數據的新的解碼時間戳;
[0042] 將所述第二差值除以所述調整倍率后,與所述相鄰兩幀視頻圖像數據中的前一幀 視頻圖像數據的新的顯示時間戳求和,將得到的和值作為所述相鄰兩幀視頻圖像數據中的 后一幀視頻圖像數據的新的顯示時間戳。
[0043] 該優(yōu)選地實施方式中,假設在調整倍率指示為加快播放速度時(即R大于1),通過 將相鄰兩幀視頻圖像數據的解碼時間戳之間的第一差值除以調整倍率,將相鄰兩幀視頻圖 像數據的解碼時間戳之間的第一差值按照調整倍率縮小,以及將相鄰兩幀視頻圖像數據的 顯示時間戳之間的第二差值除以調整倍率,將相鄰兩幀視頻圖像數據的顯示時間戳之間的 第二差值按照調整倍率縮小,通過縮小相鄰兩幀視頻圖像數據的解碼時間的差值以及顯示 時間的差值,以達到提前解碼并顯示視頻圖像的目的,達到快進的效果。
[0044] 假設在調整倍率指示為放慢播放速度時(即R小于1),通過將相鄰兩幀視頻圖像 數據的解碼時間戳之間的第一差值除以調整倍率,將相鄰兩幀視頻圖像數據的解碼時間戳 之間的第一差值按照調整倍率增大,以及將相鄰兩幀視頻圖像數據的顯示時間戳之間的第 二差值除以調整倍率,將相鄰兩幀視頻圖像數據的顯示時間戳之間的第二差值按照調整倍 率增大,通過增大相鄰兩幀視頻圖像數據的解碼時間的差值以及顯示時間的差值,以達到 推遲解碼并顯示視頻圖像的目的,達到慢進的效果。
[0045] 一個具體實施中,假設解析待播放的TS碼流,從PES數據包中獲得的每幀視頻 圖像數據的解碼時間戳以及顯示時間戳,按照各解碼時間戳的時間先后順序表示為:dt Sl、 dts2··· dtsn,按照各顯示時間戳的時間先后順序表示為:ptSl、Ptyptsn,解析獲得的各解 碼時間戳和顯示時間戳均為正常播放速度對應的時間戳。
[0046] 假設按照調整倍率R調整后得到的各待播放的視頻圖像數據的新的解碼時間戳 按照時間先后順序表示為:dt Sl、Clts2'…dtsn',按照調整倍率R調整后得到的各待播放的 視頻圖像數據的新的顯示時間戳按照時間先后順序表示為:pt Sl、Pts2'…ptsn',每相鄰兩 幀視頻圖像數據的解碼時間戳的差值(即第一差值)可表示為:Λ t2、Λ t3…Λ tn,每相鄰兩 幀視頻圖像數據的顯示時間戳的差值(即第二差值可表示為:Λ t2'、Λ t3'…Λ tn'。
[0047] 第一差值可按照以下公式(1)計算得到:
[0048]
【權利要求】
1. 一種傳輸流TS媒體文件播放速度的控制方法,其特征在于,包括: 獲取播放速度調整指令,所述播放速度調整指令中攜帶有調整倍率; 解析待播放的TS碼流獲得每幀視頻圖像數據的解碼時間戳和顯示時間戳; 計算相鄰兩幀視頻圖像數據的解碼時間戳的差值得到第一差值,以及計算相鄰兩幀視 頻圖像數據的顯示時間戳的差值得到第二差值,采用所述調整倍率調整所述第一差值,根 據調整后的所述第一差值確定每幀視頻圖像數據的新的解碼時間戳,以及采用所述調整倍 率調整所述第二差值,根據調整后的所述第二差值確定每幀視頻圖像的新的顯示時間戳; 在系統(tǒng)時鐘達到所述新的解碼時間戳時解碼對應的視頻圖像數據,以及在系統(tǒng)時鐘達 到所述新的顯示時間戳時顯示對應的視頻圖像數據。
2. 如權利要求1所述的方法,其特征在于,采用所述調整倍率調整所述第一差值,根據 調整后的所述第一差值確定每幀視頻圖像數據的新的解碼時間戳,以及采用所述調整倍率 調整所述第二差值,根據調整后的所述第二差值確定每幀視頻圖像的新的顯示時間戳,包 括: 將所述第一差值除以所述調整倍率后,與所述相鄰兩幀視頻圖像數據中的前一幀視頻 圖像數據的新的解碼時間戳求和,將得到的和值作為所述相鄰兩幀視頻圖像數據中的后一 幀視頻圖像數據的新的解碼時間戳; 將所述第二差值除以所述調整倍率后,與所述相鄰兩幀視頻圖像數據中的前一幀視頻 圖像數據的新的顯示時間戳求和,將得到的和值作為所述相鄰兩幀視頻圖像數據中的后一 幀視頻圖像數據的新的顯示時間戳。
3. 如權利要求2所述的方法,其特征在于,在系統(tǒng)時鐘達到所述新的解碼時間戳時解 碼對應的視頻圖像數據,以及在系統(tǒng)時鐘達到所述新的顯示時間戳時顯示對應的視頻圖像 數據后,所述方法還包括: 獲取切換至正常播放速度的指令,解析待播放的TS碼流獲得待播放的每幀視頻圖像 數據的解碼時間戳和顯示時間戳; 采用所述待播放的TS碼流中的第一幀視頻圖像的解碼時間戳或顯示時間戳修正系統(tǒng) 時鐘,在修正后的系統(tǒng)時鐘達到所述解碼時間戳時解碼對應的視頻圖像數據,以及在修正 后的系統(tǒng)時鐘達到所述顯示時間戳時顯示對應的視頻圖像數據。
4. 如權利要求3所述的方法,其特征在于,獲取播放速度調整指令之前,所述方法還包 括: 在以正常播放速度解析并播放TS碼流的過程中,解碼待播放的TS碼流,獲得待播放的 第一幀視頻圖像數據的節(jié)目時鐘參考,采用所述節(jié)目時鐘參考修正系統(tǒng)時鐘。
5. 如權利要求1-4任一項所述的方法,其特征在于,所述調整倍率大于零值且不等于 〇
6. -種傳輸流TS媒體文件播放速度的控制裝置,其特征在于,包括: 獲取模塊,用于獲取播放速度調整指令,所述播放速度調整指令中攜帶有調整倍率; 解析模塊,用于解析待播放的TS碼流獲得每幀視頻圖像數據的解碼時間戳和顯示時 間戳; 重構模塊,用于計算相鄰兩幀視頻圖像數據的解碼時間戳的差值得到第一差值,以及 計算相鄰兩幀視頻圖像數據的顯示時間戳的差值得到第二差值,采用所述調整倍率調整所 述第一差值,根據調整后的所述第一差值確定每幀視頻圖像數據的新的解碼時間戳,以及 采用所述調整倍率調整所述第二差值,根據調整后的所述第二差值確定每幀視頻圖像的新 的顯示時間戳; 解碼顯示模塊,用于在系統(tǒng)時鐘達到所述新的解碼時間戳時解碼對應的視頻圖像數 據,以及在系統(tǒng)時鐘達到所述新的顯示時間戳時顯示對應的視頻圖像數據。
7. 如權利要求6所述的裝置,其特征在于,所述重構模塊具體用于: 將所述第一差值除以所述調整倍率后,與所述相鄰兩幀視頻圖像數據中的前一幀視頻 圖像數據的新的解碼時間戳求和,將得到的和值作為所述相鄰兩幀視頻圖像數據中的后一 幀視頻圖像數據的新的解碼時間戳; 將所述第二差值除以所述調整倍率后,與所述相鄰兩幀視頻圖像數據中的前一幀視頻 圖像數據的新的顯示時間戳求和,將得到的和值作為所述相鄰兩幀視頻圖像數據中的后一 幀視頻圖像數據的新的顯示時間戳。
8. 如權利要求7所述的裝置,其特征在于,所述獲取模塊還用于: 獲取切換至正常播放速度的指令; 所述解碼顯示模塊具體用于: 采用所述解碼模塊解析所述待播放的TS碼流獲得的第一幀視頻圖像數據的解碼時間 戳或顯示時間戳修正系統(tǒng)時鐘,在修正后的系統(tǒng)時鐘達到所述解析模塊獲得的所述解碼時 間戳時解碼對應的視頻圖像數據,以及在修正后的系統(tǒng)時鐘達到所述解析模塊獲得的所述 顯示時間戳時顯示對應的視頻圖像數據。
9. 如權利要求8所述的裝置,其特征在于,還包括修正模塊,用于: 在所述獲取模塊獲取播放速度調整指令之前,以正常播放速度解析并播放TS碼流的 過程中,解碼待播放的TS碼流,獲得待播放的第一幀視頻圖像數據的節(jié)目時鐘參考,采用 所述節(jié)目時鐘參考修正系統(tǒng)時鐘。
10. 如權利要求6-9任一項所述的裝置,其特征在于,所述調整倍率大于零值且不等于 〇
【文檔編號】H04N21/434GK104410930SQ201410625461
【公開日】2015年3月11日 申請日期:2014年11月7日 優(yōu)先權日:2014年11月7日
【發(fā)明者】劉慶彬, 張麗萍 申請人:青島海信寬帶多媒體技術有限公司