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

一種播放音視頻同步的方法

文檔序號(hào):7896557閱讀:2023來源:國知局
專利名稱:一種播放音視頻同步的方法
技術(shù)領(lǐng)域
本發(fā)明屬于多媒體技術(shù)領(lǐng)域,尤其涉及一種播放音視頻同步的方法。
背景技術(shù)
通常,數(shù)字媒體文件或媒體流中的音頻數(shù)據(jù)和視頻數(shù)據(jù)是分離存放和處理的,因 此,當(dāng)進(jìn)行音視頻播放的時(shí)候,播放器必須對(duì)音頻和視頻進(jìn)行同步,否則觀賞者看到圖像和 聽到的聲音就不同步。為達(dá)到同步的目的,媒體源會(huì)有一個(gè)時(shí)鐘,每一幀音頻數(shù)據(jù)或視頻數(shù) 據(jù)都會(huì)打上一個(gè)時(shí)間戳(以下簡(jiǎn)稱PTQ,時(shí)間戳指示了播放器播放每幀音頻或視頻的相對(duì) 時(shí)間,此時(shí)間是相對(duì)于媒體源時(shí)鐘的時(shí)間基點(diǎn)。在播放時(shí),播放器必須確保在指定的時(shí)間播放相應(yīng)的音頻幀或視頻幀。為此,播放 器會(huì)有一個(gè)本地時(shí)鐘,音頻或視頻的呈現(xiàn)裝置(renderer)會(huì)比較PTS和本地時(shí)鐘,如果吻 合,即PTS落入一定的本地時(shí)鐘接收區(qū)間范圍,則播放相應(yīng)的音頻幀或視頻幀;在PTS早于 該接收區(qū)間,則丟掉該數(shù)據(jù)幀;當(dāng)PTS晚于該接收區(qū)間,則保留并延遲到相應(yīng)的時(shí)間再呈現(xiàn) 該數(shù)據(jù)幀。綜上所述,播放器中音視頻的同步,涉及許多復(fù)雜的操作,其中一項(xiàng)重要的操作就 是要建立PTS和播放器本地時(shí)鐘間的對(duì)應(yīng)關(guān)系。這種對(duì)應(yīng)關(guān)系的建立,本質(zhì)上可以通過兩 種方法來實(shí)現(xiàn)更改PTS,使其對(duì)應(yīng)播放器本地時(shí)鐘的計(jì)數(shù)值;修改播放器本地時(shí)鐘的計(jì)數(shù) 值,使其對(duì)應(yīng)PTS的變化。絕大多數(shù)同步系統(tǒng)所使用的方法,都直接或間接地涉及修改播放 器本地時(shí)鐘計(jì)數(shù)值。例如,當(dāng)接收到第一幀數(shù)據(jù)時(shí),直接或間接地用相應(yīng)的PTS設(shè)置播放 器本地時(shí)鐘計(jì)數(shù)初始值;當(dāng)播放器進(jìn)行定位播放時(shí),用定位后的新數(shù)據(jù)幀的PTS重新設(shè)置 播放器本地時(shí)鐘計(jì)數(shù)值;當(dāng)進(jìn)行網(wǎng)絡(luò)流媒體播放時(shí),插入廣告媒體流,由于廣告媒體流所使 用的媒體源時(shí)鐘和正常媒體流的媒體源時(shí)鐘的時(shí)間基點(diǎn)不一致,造成了 PTS值出現(xiàn)躍變的 時(shí)鐘不連續(xù)問題,為解決這一問題,而修改播放器本地時(shí)鐘計(jì)數(shù)值;當(dāng)進(jìn)行網(wǎng)絡(luò)流媒體播放 時(shí),由于網(wǎng)絡(luò)的延遲和不穩(wěn)定,造成某一時(shí)刻播放器端接收到的數(shù)據(jù)幀的PTS嚴(yán)重滯后播 放器本地時(shí)鐘相應(yīng)的計(jì)數(shù)值(同樣造成了時(shí)鐘不連續(xù)問題),為此需修改播放器本地時(shí)鐘 計(jì)數(shù)值;其它造成時(shí)鐘躍變不連續(xù)的情形,亦需修改播放器本地時(shí)鐘計(jì)數(shù)值。上述修改本地時(shí)鐘的方法會(huì)涉及到硬件操作,在無法進(jìn)行硬件操作或者不便于進(jìn) 行硬件操作的情形下,無法完成同步。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種播放音視頻同步的方法,旨在解決現(xiàn)有技術(shù)中在無法 進(jìn)行硬件操作或者不便于進(jìn)行硬件操作的情形下,無法完成音視頻同步問題。本發(fā)明是這樣實(shí)現(xiàn)的,一種播放音視頻同步的方法,該方法包括:A.輸入一幀數(shù) 據(jù)至解復(fù)用組件;B.判斷PTS是否發(fā)生跳變,跳變則計(jì)算CL0CK_0FFSET值;C.計(jì)算數(shù)據(jù) 幀調(diào)整后的PTS ;D.判斷Delta是否在ERR_RANGE內(nèi),如果在,則進(jìn)行計(jì)算CL0CK_0FFSET, 否則,進(jìn)行步驟E ;E.將調(diào)整后的PTS值寫回?cái)?shù)據(jù)幀,并將數(shù)據(jù)幀發(fā)送給解碼器,該方法中,ERR_RANGE是調(diào)整后的數(shù)據(jù)幀PTS值與播放器本地時(shí)鐘之間允許的誤差范圍;PTS_GAP是用 于判斷PTS值是否發(fā)生躍變的區(qū)間范圍;CL0CK_0FFSET值是接收的數(shù)據(jù)幀PTS與本地時(shí)鐘 PTS之間的偏移值;Delta值是網(wǎng)絡(luò)延遲造成的調(diào)整后PTS值與本地PTS之間的差值。該方法的步驟B中,判斷PTS跳變是判斷接收的數(shù)據(jù)幀是首幀數(shù)據(jù)或定位后的首 幀數(shù)據(jù),是則表示PTS跳變;或判斷幀PTS是否在PTS_GAP內(nèi),是則PTS發(fā)生跳變。步驟B中具體包括B1.判斷是否是首幀數(shù)據(jù),如果是,則進(jìn)行步驟B4,否則進(jìn)行步 驟B2 ;B2.判斷是否是定位后讀到的首幀數(shù)據(jù),如果是,則進(jìn)行步驟B4,否則進(jìn)行步驟B3 ; B3.判斷幀PTS是否在PTS_GAP內(nèi),如果是則進(jìn)行步驟C,否則進(jìn)行步驟B4 ;B4.計(jì)算CL0CK_ OFFSET 值。步驟C中,如果PTS發(fā)送跳變,則根據(jù)步驟B中的CL0CK_0FFSET計(jì)算調(diào)整后的PTS, 否則根據(jù)接收數(shù)據(jù)幀的PTS作為調(diào)整后的PTS。步驟D中具體包括D1.判斷是否是網(wǎng)絡(luò)媒體流,如果是,則進(jìn)行步驟H,否則進(jìn) 行步驟J;D2.計(jì)算網(wǎng)絡(luò)延遲造成的調(diào)整后PTS值與本地PTS之間的差值Delta ;D3.判斷 Delta是否在ERR_RANGE內(nèi),如果在,則計(jì)算CL0CK_0FFSET,否則進(jìn)行步驟E。本發(fā)明只需在解復(fù)用組件中修改PTS值,不需修改播放器本地時(shí)鐘,因此也無需 進(jìn)行硬件方面的操作。


圖1是本發(fā)明播放音視頻同步方法的流程圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì) 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。如圖1所示,是本發(fā)明播放音視頻同步方法的流程圖。該方法通過在解復(fù)用組件 中修改PTS值來完成音視頻同步。利用該方法進(jìn)行播放音視頻之前,需要解復(fù)用組件中定 義以下參數(shù)值ERR_RANGE 調(diào)整后的數(shù)據(jù)幀PTS值與播放器本地時(shí)鐘之間允許的誤差范圍;PTS_GAP 用于判斷PTS值是否發(fā)生躍變的區(qū)間范圍;CL0CK_0FFSET值接收的數(shù)據(jù)幀PTS與本地時(shí)鐘PTS之間的偏移值;Delta值網(wǎng)絡(luò)延遲造成的調(diào)整后PTS值與本地PTS之間的差值?;谏鲜龆x的參數(shù),播放音視頻同步的方法包括如下步驟A.輸入一幀數(shù)據(jù)至解復(fù)用器;B.判斷PTS是否發(fā)生跳變,跳變則計(jì)算CL0CK_0FFSET值;判斷PTS跳變主要是判斷接收的數(shù)據(jù)幀是首幀數(shù)據(jù)或定位后的首幀數(shù)據(jù)或幀PTS 不在PTS_GAP內(nèi)。具體來說,步驟B包括Bi.判斷是否是首幀數(shù)據(jù),如果是,則進(jìn)行步驟B4,否則進(jìn)行步驟B2 ;B2.判斷是否是定位后讀到的首幀數(shù)據(jù),如果是,則進(jìn)行步驟B4,否則進(jìn)行步驟 B3 ;在步驟B2中判斷接收的并非首幀數(shù)據(jù),則解復(fù)用組件對(duì)接收到的幀進(jìn)行定位,定位后的首幀作為數(shù)據(jù)的首幀。B3.判斷幀PTS是否在PTS_GAP內(nèi),如果是則進(jìn)行步驟C,否則進(jìn)行步驟B4 ;B4.計(jì)算 CL0CK_0FFSET 值;C.計(jì)算數(shù)據(jù)幀調(diào)整后的PTS ;如果PTS發(fā)送跳變,則根據(jù)步驟B中的CL0CK_0FFSET計(jì)算調(diào)整后的PTS,否則根據(jù) 接收數(shù)據(jù)幀的PTS作為調(diào)整后的PTS ;D.判斷Delta是否在ERR_RANGE內(nèi),如果在,則進(jìn)行計(jì)算CL0CK_0FFSET,否則,進(jìn) 行步驟E ;該步驟具體包括 Dl.判斷是否是網(wǎng)絡(luò)媒體流,如果是,則進(jìn)行步驟H,否則進(jìn)行步驟J ;D2.計(jì)算網(wǎng)絡(luò)延遲造成的調(diào)整后PTS值與本地PTS之間的差值Delta ;D3.判斷Delta是否在ERR_RANGE內(nèi),如果在,則計(jì)算CL0CK_0FFSET,否則進(jìn)行步 驟E;E.將調(diào)整后的PTS值寫回?cái)?shù)據(jù)幀,并將數(shù)據(jù)幀發(fā)送給解碼器。本發(fā)明只需在解復(fù)用組件中修改PTS值,不需修改播放器本地時(shí)鐘,因此也無需 進(jìn)行硬件方面的操作。此外,本發(fā)明通過自動(dòng)檢測(cè)由定位播放操作或網(wǎng)絡(luò)延遲造成的PTS躍變,并進(jìn)行 校正,允許多段PTS躍變的數(shù)據(jù)存在于解碼器緩沖區(qū)中。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種播放音視頻同步的方法,該方法包括A.輸入一幀數(shù)據(jù)至解復(fù)用組件;B.判斷PTS是否發(fā)生跳變,跳變則計(jì)算CL0CK_0FFSET值;C.計(jì)算數(shù)據(jù)幀調(diào)整后的PTS;D.判斷Delta是否在ERR_RANGE內(nèi),如果在,則進(jìn)行計(jì)算CL0CK_0FFSET,否則,進(jìn)行步 驟E;E.將調(diào)整后的PTS值寫回?cái)?shù)據(jù)幀,并將數(shù)據(jù)幀發(fā)送給解碼器,該方法中,ERR_RANGE是調(diào)整后的數(shù)據(jù)幀PTS值與播放器本地時(shí)鐘之間允許的誤差范 圍;PTS_GAP是用于判斷PTS值是否發(fā)生躍變的區(qū)間范圍;CL0CK_0FFSET值是接收的數(shù)據(jù) 幀PTS與本地時(shí)鐘PTS之間的偏移值;Delta值是網(wǎng)絡(luò)延遲造成的調(diào)整后PTS值與本地PTS 之間的差值。
2.根據(jù)權(quán)利要求1所述的播放音視頻同步的方法,其特征在于,步驟B中,判斷PTS跳 變是判斷接收的數(shù)據(jù)幀是首幀數(shù)據(jù)或定位后的首幀數(shù)據(jù),是則表示PTS跳變;或判斷幀PTS 是否在PTS_GAP內(nèi),是則PTS發(fā)生跳變。
3.根據(jù)權(quán)利要求1所述的播放音視頻同步的方法,其特征在于,步驟B中具體包括Bi.判斷是否是首幀數(shù)據(jù),如果是,則進(jìn)行步驟B4,否則進(jìn)行步驟B2 ;B2.判斷是否是定位后讀到的首幀數(shù)據(jù),如果是,則進(jìn)行步驟B4,否則進(jìn)行步驟B3 ;B3.判斷幀PTS是否在PTS_GAP內(nèi),如果是則進(jìn)行步驟C,否則進(jìn)行步驟B4 ;B4.計(jì)算 CL0CK_0FFSET 值。
4.根據(jù)權(quán)利要求1所述的播放音視頻同步的方法,其特征在于,步驟C中,如果PTS發(fā) 送跳變,則根據(jù)步驟B中的CL0CK_0FFSET計(jì)算調(diào)整后的PTS,否則根據(jù)接收數(shù)據(jù)幀的PTS作 為調(diào)整后的PTS。
5.根據(jù)權(quán)利要求1所述的播放音視頻同步的方法,其特征在于,步驟D中具體包括Dl.判斷是否是網(wǎng)絡(luò)媒體流,如果是,則進(jìn)行步驟H,否則進(jìn)行步驟J ;D2.計(jì)算網(wǎng)絡(luò)延遲造成的調(diào)整后PTS值與本地PTS之間的差值Delta ;D3.判斷Delta是否在ERR_RANGE內(nèi),如果在,則計(jì)算CL0CK_0FFSET,否則進(jìn)行步驟E。
全文摘要
本發(fā)明適用于多媒體技術(shù)領(lǐng)域,提供了一種播放音視頻同步的方法。該方法包括A.輸入一幀數(shù)據(jù)至解復(fù)用組件;B.判斷PTS是否發(fā)生跳變,跳變則計(jì)算CLOCK_OFFSET值;C.計(jì)算數(shù)據(jù)幀調(diào)整后的PTS;D.判斷Delta是否在ERR_RANGE內(nèi),如果在,則進(jìn)行計(jì)算CLOCK_OFFSET,否則,進(jìn)行步驟E;E.將調(diào)整后的PTS值寫回?cái)?shù)據(jù)幀,并將數(shù)據(jù)幀發(fā)送給解碼器。本發(fā)明只需在解復(fù)用組件中修改PTS值,不需修改播放器本地時(shí)鐘,因此也無需進(jìn)行硬件方面的操作。
文檔編號(hào)H04N21/434GK102075803SQ201010601598
公開日2011年5月25日 申請(qǐng)日期2010年12月22日 優(yōu)先權(quán)日2010年12月22日
發(fā)明者唐耀斌, 簡(jiǎn)玉娟 申請(qǐng)人:Tcl通力電子(惠州)有限公司, Tcl集團(tuán)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1