一種ts流播放中的音視頻同步方法
【專利摘要】本發(fā)明公開了一種TS流播放中的音視頻同步方法,本發(fā)明對來自發(fā)送端的TS流時間戳進(jìn)行處理,以媒體單元自身時間戳的前后相關(guān)性,以及媒體單元之間的時間戳相關(guān)性作為依據(jù),正確識別出音頻、視頻時間戳的跳變情況,并將不連續(xù)的時間戳映射為連續(xù)的時間戳,以方便播放器更好的控制媒體同步,更準(zhǔn)確地向用戶提供播放進(jìn)度信息。通過本發(fā)明,播放器在易錯信道中播放媒體時仍然能夠穩(wěn)定地保持音視頻同步。使用本發(fā)明,媒體發(fā)送端軟件不需要做任何改造,本發(fā)明適用于現(xiàn)有市場上大多數(shù)數(shù)字電視、網(wǎng)路流媒體服務(wù)提供商的業(yè)務(wù)。
【專利說明】一種TS流播放中的音視頻同步方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及視頻播放【技術(shù)領(lǐng)域】,具體涉及一種TS流播放中的音視頻同步方法。
【背景技術(shù)】
[0002]基于“IS0/IEC13818-1”國際標(biāo)準(zhǔn)協(xié)議封裝的媒體文件又叫TS (TransportStream)流,是廣播電視和寬帶流媒體應(yīng)用領(lǐng)域中最常見的媒體格式。該協(xié)議規(guī)定了一套時間戳技術(shù)用以控制播放時的音頻、視頻同步。在實(shí)際應(yīng)用中,多個基于不同時基的TS流會被拼接在一起形成一個單一的TS流進(jìn)行傳輸。因此播放器需要處理TS流中時間戳的跳變情況。但是在移動電視廣播、寬帶流媒體傳輸?shù)纫族e信道傳輸TS流時,播放器很難正確區(qū)分是信道的突發(fā)錯誤還是TS流的拼接導(dǎo)致時間戳的不連續(xù),因此不能正確根據(jù)時間戳控制音視頻的播放以保持同步。已有的解決方案需要媒體發(fā)送端在傳輸協(xié)議中額外增加一些信息,以方便播放器正確控制音視頻同步,這就需要媒體發(fā)送端對相關(guān)設(shè)備或軟件進(jìn)行改造,對傳輸協(xié)議也進(jìn)行了限制,因此不具備通用性。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的不足,提供一種TS流播放中的音視頻同步方法,克服現(xiàn)有技術(shù)在TS流播放過程中,時間戳不連續(xù)時,播放器無法根據(jù)時間戳控制音視頻同步的缺陷。
[0004]本發(fā)明為解決上述技術(shù)問題所采用的技術(shù)方案為:
[0005]一種TS流播放中的音視頻同步方法,包括步驟:
[0006]Al、依次輸入視頻時間戳和音頻時間戳;
[0007]A2、判斷是否是第一幀視頻或者第一幀音頻,如果是則執(zhí)行步驟A3,否則執(zhí)行步驟A4 ;
[0008]A3、將第一幀視頻時間戳設(shè)為視頻時基,將第一幀音頻時間戳設(shè)為音頻時基,將所述視頻時基和所述音頻時基中的較小者設(shè)為共同時基;
[0009]A4、判斷當(dāng)前幀視頻時間戳與前一幀視頻時間戳的差值是否超過設(shè)定的時間跳變閾值,如果是,繼續(xù)判斷此前是否有連續(xù)兩個音頻時間戳的差值超過設(shè)定的時間跳變閾值的現(xiàn)象發(fā)生,如果是,則將所述視頻時基的值設(shè)為所述共同時基,判斷當(dāng)前音視頻時間戳與前一幀音頻時間戳的差值是否超過設(shè)定的時間跳變閾值,如果是,繼續(xù)判斷此前是否有連續(xù)兩個視頻時間戳的差值超過設(shè)定的時間跳變閾值的現(xiàn)象發(fā)生,如果是,則將所述音頻時基的值設(shè)為所述共同時基;
[0010]A5、判斷當(dāng)前幀視頻時間戳與前一幀音頻時間戳的差值是否超過設(shè)定的時間跳變閾值,如果是,更改所述共同時基并將所述視頻時基的值設(shè)為所述共同時基,判斷當(dāng)前幀音頻時間戳與前一幀視頻時間戳的差值是否超過設(shè)定的時間跳變閾值,如果是,更改所述共同時基并將所述音頻時基的值設(shè)為所述共同時基;
[0011]A6、用當(dāng)前幀視頻時間戳減去所述共同時基的值作為視頻時間戳,用當(dāng)前幀音頻時間戳減去所述共同時基的值作為音頻時間戳。
[0012]根據(jù)本發(fā)明的實(shí)施例,所述時間跳變閾值設(shè)為2000ms。
[0013]根據(jù)本發(fā)明的實(shí)施例,在所述步驟A5中按照如下公式更改所述共同時基:
[0014]新的共同時基值=當(dāng)前輸入時間戳的值一上一幀視頻時間戳的值一視頻幀間隔時間+原有共同時基值。
[0015]根據(jù)本發(fā)明的實(shí)施例,還包括步驟A7:檢測所述音頻時基和所述視頻時基是否相等,如果不相等的次數(shù)超過判定閾值,則將所述共同時基賦值給所述音頻時基和所述視頻時基。
[0016]根據(jù)本發(fā)明的實(shí)施例,所述判定閾值設(shè)為10次。
[0017]實(shí)施本發(fā)明的技術(shù)方案,具有以下有益效果:本發(fā)明對來自發(fā)送端的TS流時間戳進(jìn)行處理,以媒體單元自身時間戳的前后相關(guān)性,以及媒體單元之間的時間戳相關(guān)性作為依據(jù),正確識別出音頻、視頻時間戳的跳變情況,并將不連續(xù)的時間戳映射為連續(xù)的時間戳,以方便播放器更好的控制媒體同步,更準(zhǔn)確地向用戶提供播放進(jìn)度信息。通過本發(fā)明,播放器在易錯信道中播放媒體時仍然能夠穩(wěn)定地保持音視頻同步。使用本發(fā)明,媒體發(fā)送端軟件不需要做任何改造,本發(fā)明適用于現(xiàn)有市場上大多數(shù)數(shù)字電視、網(wǎng)路流媒體服務(wù)提供商的業(yè)務(wù)。
【專利附圖】
【附圖說明】
[0018]下面通過參考附圖并結(jié)合實(shí)例具體地描述本發(fā)明,本發(fā)明的優(yōu)點(diǎn)和實(shí)現(xiàn)方式將會更加明顯,其中附圖所示內(nèi)容僅用于對本發(fā)明的解釋說明,而不構(gòu)成對本發(fā)明的任何意義上的限制,在附圖中:
[0019]圖1為本發(fā)明TS流播放中的音視頻同步方法流程圖。
【具體實(shí)施方式】
[0020]如圖1所示,本發(fā)明TS流播放中的音視頻同步方法,包括步驟:
[0021]Al、依次輸入視頻時間戳和音頻時間戳;
[0022]A2、判斷是否是第一幀視頻或者第一幀音頻,如果是則執(zhí)行步驟A3,否則執(zhí)行步驟A4 ;
[0023]A3、將第一幀視頻時間戳設(shè)為視頻時基,將第一幀音頻時間戳設(shè)為音頻時基,將所述視頻時基和所述音頻時基中的較小者設(shè)為共同時基;
[0024]A4、判斷當(dāng)前幀視頻時間戳與前一幀視頻時間戳的差值是否超過設(shè)定的時間跳變閾值,如果是,繼續(xù)判斷此前是否有連續(xù)兩個音頻時間戳的差值超過設(shè)定的時間跳變閾值的現(xiàn)象發(fā)生,如果是,則將所述視頻時基的值設(shè)為所述共同時基,判斷當(dāng)前音視頻時間戳與前一幀音頻時間戳的差值是否超過設(shè)定的時間跳變閾值,如果是,繼續(xù)判斷此前是否有連續(xù)兩個視頻時間戳的差值超過設(shè)定的時間跳變閾值的現(xiàn)象發(fā)生,如果是,則將所述音頻時基的值設(shè)為所述共同時基;
[0025]A5、判斷當(dāng)前幀視頻時間戳與前一幀音頻時間戳的差值是否超過設(shè)定的時間跳變閾值,如果是,更改所述共同時基并將所述視頻時基的值設(shè)為所述共同時基,判斷當(dāng)前幀音頻時間戳與前一幀視頻時間戳的差值是否超過設(shè)定的時間跳變閾值,如果是,更改所述共同時基并將所述音頻時基的值設(shè)為所述共同時基;
[0026]A6、用當(dāng)前幀視頻時間戳減去所述共同時基的值作為視頻時間戳,用當(dāng)前幀音頻時間戳減去所述共同時基的值作為音頻時間戳。
[0027]根據(jù)本發(fā)明的實(shí)施例,所述時間跳變閾值設(shè)為2000ms。在所述步驟A5中按照如下公式更改所述共同時基:
[0028]新的共同時基值=當(dāng)前輸入時間戳的值一上一幀視頻時間戳的值一視頻幀間隔時間+原有共同時基值。
[0029]還包括步驟A7:檢測所述音頻時基和所述視頻時基是否相等,如果不相等的次數(shù)超過判定閾值,則將所述共同時基賦值給所述音頻時基和所述視頻時基。判定閾值設(shè)為10次。
[0030]實(shí)施例1:具有時間戳跳變情況的廣播電視流
[0031]假設(shè)一段TS流的音頻、視頻時間戳數(shù)值如表1所列:
[0032]表1
[0033]
【權(quán)利要求】
1.一種TS流播放中的音視頻同步方法,其特征在于,包括步驟: Al、依次輸入視頻時間戳和音頻時間戳; A2、判斷是否是第一幀視頻或者第一幀音頻,如果是則執(zhí)行步驟A3,否則執(zhí)行步驟A4 ; A3、將第一幀視頻時間戳設(shè)為視頻時基,將第一幀音頻時間戳設(shè)為音頻時基,將所述視頻時基和所述音頻時基中的較小者設(shè)為共同時基; A4、判斷當(dāng)前幀視頻時間戳與前一幀視頻時間戳的差值是否超過設(shè)定的時間跳變閾值,如果是,繼續(xù)判斷此前是否有連續(xù)兩個音頻時間戳的差值超過設(shè)定的時間跳變閾值的現(xiàn)象發(fā)生,如果是,則將所述視頻時基的值設(shè)為所述共同時基,判斷當(dāng)前音視頻時間戳與前一幀音頻時間戳的差值是否超過設(shè)定的時間跳變閾值,如果是,繼續(xù)判斷此前是否有連續(xù)兩個視頻時間戳的差值超過設(shè)定的時間跳變閾值的現(xiàn)象發(fā)生,如果是,則將所述音頻時基的值設(shè)為所述共同時基; A5、判斷當(dāng)前幀視頻時間戳與前一幀音頻時間戳的差值是否超過設(shè)定的時間跳變閾值,如果是,更改所述共同時基并將所述視頻時基的值設(shè)為所述共同時基,判斷當(dāng)前幀音頻時間戳與前一幀視頻時間戳的差值是否超過設(shè)定的時間跳變閾值,如果是,更改所述共同時基并將所述音頻時基的值設(shè)為所述共同時基; A6、用當(dāng)前幀視頻時間戳減去所述共同時基的值作為視頻時間戳,用當(dāng)前幀音頻時間戳減去所述共同時基的值作為音頻時間戳。
2.根據(jù)權(quán)利要求1所述的TS流播放中的音視頻同步方法,其特征在于:所述時間跳變閾值設(shè)為2000ms。
3.根據(jù)權(quán)利要求2所述的TS流播放中的音視頻同步方法,其特征在于:在所述步驟A5中按照如下公式更改所述共同時基: 新的共同時基值=當(dāng)前輸入時間戳的值一上一幀視頻時間戳的值一視頻幀間隔時間+原有共同時基值。
4.根據(jù)權(quán)利要求1所述的TS流播放中的音視頻同步方法,其特征在于:還包括步驟A7:檢測所述音頻時基和所述視頻時基是否相等,如果不相等的次數(shù)超過判定閾值,則將所述共同時基賦值給所述音頻時基和所述視頻時基。
5.根據(jù)權(quán)利要求4所述的TS流播放中的音視頻同步方法,其特征在于:所述判定閾值設(shè)為10次。
【文檔編號】H04N21/8547GK103731716SQ201410009474
【公開日】2014年4月16日 申請日期:2014年1月8日 優(yōu)先權(quán)日:2014年1月8日
【發(fā)明者】陳小川 申請人:珠海全志科技股份有限公司