專利名稱:音視頻同步播放方法
音視頻同步播放方法
技術領域:
本發明涉及一種音視頻播放方法,特別是涉及一種效果較好地音視頻同步才番;改方法。背景技術:
隨著計算機技術的發展,音頻視頻交錯(Audio Video Interleaved, AVI)格式 的文件也廣泛被應用。所謂"音頻視頻交錯",就是可以將視頻和音頻交織在一起 進行同步播放。這種視頻格式的優點是圖像質量好,可以跨多個平臺使用,其 缺點是體積過于龐大,而且更加糟糕的是壓縮標準不統一,最普遍的現象就是 高版本Windows媒體播放器播放不了采用早期編碼編輯的AVI格式視頻,而低 版本Windows媒體播放器又播放不了釆用最新編碼編輯的AVI格式視頻,所以 我們在進行一些AVI格式的視頻播放時常會出現由于視頻編碼問題而造成的視 頻不能播放或即使能夠播放,但存在不能調節播放進度和播放時只有聲音沒有 圖像等 一些莫名其妙的問題。AVI格式的文件中包含有音頻流和視頻流,在播放過程中由于系統資源不 足、任務調度等原因很容易出現視頻和音頻不同步的情況。應用程序通常會將 視頻流和音頻流分開單獨解碼,每個i某體流在播放的過程中都自行和系統修正 播放。在這種情況下,程序需要有精確的時鐘,且算法的復雜度高,需消耗大 量的CPU資源。 一旦CPU的運行速率不夠,回放AVI時有可能出現圖像和音 頻不同步的現象。
發明內容本發明為了克服上述現有技術的不足,本發明提供一種效果較好的音視頻 同步播放方法。本發明解決其技術問題所采用的技術方案是提供一種音視頻同步播放方 法,其包括以下步驟對播放文件的音頻幀及視頻幀進行索引解析;根據該解 析的索引進行播放;根據該音頻幀及視頻幀的誤差對播放進行修正。本發明解決進一步技術問題的方案是在該索引解析步驟中,在每個視頻 幀索引信息中增加一個單獨的域,使用這個單獨的域標記相鄰的音頻幀信息; 同時在每個音頻幀信息中也增加一個單獨的域,用來標記相鄰的視頻幀信息。
本發明解決進一步技術問題的方案是當前視頻幀超前當前音頻幀對應的 視頻標記幀的誤差大于一預設閥值時,則在一定時間內減慢視頻幀播放的幀速率。本發明解決進一步技術問題的方案是當前視頻幀落后當前音頻幀對應的 視頻標記幀的誤差大于一預設閥值時,對視頻幀進行跳幀處理,使視頻幀跳過 若干幀,直接播放后面的視頻幀數據。本發明解決進一步技術問題的方案是當前視頻幀超前或落后當前音頻幀 對應的視頻標記幀的誤差小于或等于一預設閥值時,則繼續播放。本發明解決進一步技術問題的方案是無法對播放文件的音頻幀及視頻幀 進行索引解析時,直接結束播放。本發明解決進一步技術問題的方案是進一步包括一判斷某一視頻幀是否 為結束幀的步驟,當某一視頻幀為結束幀時則結束播放。相較于現有技術,本發明的有益效果是在播放過程中,本發明的音視頻 同步播放方法可以利用播放文件中的音頻幀及視頻幀的交叉特性對媒體流進行 動態的交叉修正,使得播放效果達到音頻與視頻同步,程序的效率高,在系統 配置較低情況下,也能達到較好的播放效果。
圖1是本發明的音視頻同步播放方法的文件播放流程圖。 圖2是本發明的音視頻同步播放方法的視頻索引指示音頻索引的對應關系 示意圖。圖3是本發明的音視頻同步播放方法的音頻索引指示視頻索引的對應關系 示意圖。圖4是本發明的音視頻同步播放方法的視頻播放落后于音頻指示的示意圖。 圖5是本發明的音視頻同步播放方法的修正示意圖。
具體實施方式下面結合附圖和實施例對本發明的音視頻同步播放方法作進一步說明。 本發明的音視頻同步播放方法包括以下步驟 (1 )對播放文件的音頻幀及視頻幀進行索? 1解析請一并參考圖1、圖2及圖3,在播放視頻文件之前對該視頻文件進行解析, 提取的索引文件,并生成"播放索引","播放索引"中將視頻和音頻文件分別 生成一個索引數組。在提取索引文件的時候,根據索引文件的前后關系,在生
成每個視頻幀時,用相鄰的下一個音頻幀來標記,在生成每個音頻幀時,用相 鄰的下 一個一見頻幀來標記。
生成的單條視頻索引為:
音頻幀標i己關4建幀標i己視頻數據地址視頻幀長度
生成的單條音頻索引為:
^L頻幀標記音頻幀起始地址音頻幀長度音頻流總長度
在該索引解析步驟中,在每個視頻幀索引信息中增加一個單獨的域,使用
這個單獨的域標記相鄰的音頻幀信息;同時在每個音頻幀信息中也增加一個單 獨的域,用來標記相鄰的視頻幀信息。
如果對播放文件的音頻幀及視頻幀進行索引解析成功則執行下一播放步
驟,如果對播放文件的音頻幀及視頻幀進行索引解析不成功則直接結束播放。
(2) 根據該解析的索引進行播放
請 一 并參閱圖4,其中Current—Video記錄當前播放的視頻幀地址, Current—audio i己錄當前4番i文的音頻幀i也址,Current—indecate—video為音頻幀對應 的視頻標記幀地址;解碼視頻幀數據時立即更新Current_Video,解碼音頻幀數 據時立即更新Current—audio 。
當播放文件的音頻幀及視頻幀進行索引解析成功而執行播放步驟時,首先 判斷目前的Current—Video是否是結尾幀,如果目前的Current—Video是結尾幀, 則直接結束;如果目前的Current_Video不是結尾幀,則執行播放。
(3) 根據該音頻幀及視頻幀的誤差對播放進行修正
請一并參閱圖4及圖5,在播放過程中,根據音頻幀及視頻幀的之間誤差來 判斷是否對播放進行修正。預設一岡值,該閥值的確定由應用程序的具體情況 自行設置。如果當前視頻幀超前或落后當前音頻幀對應的視頻標記幀的誤差小 于或等于該預設閥值時,則繼續播放。如果當前視頻幀和音頻指示當前視頻幀 的差值大于該閥值的時候,則對播放進行修正。
修正過程以音頻的播放為基準,動態修正視頻播放。先在播放每幀視頻數 據的時候,動態檢查當前音頻幀所指示的^L頻索引Current—indecate—video。這里 我們假定設置的閥值為1,當誤差大于1幀時進行跳幀操作。
在播放每幀視頻數據時,同時判斷Current_Video和Current—indecate一video 的差<直,當Current—indecate—video — Current_Video >閥4直時,即當前#見頻幀落 后當前音頻幀對應的視頻標記幀的誤差大于一預設閥值時,對視頻幀進行跳幀 處理,使視頻幀跳過若干幀,直接播放后面的視頻幀數據,使得其后的播放可
以達到音頻幀及^L頻幀同步。
當Current—Video _ Current—indecate—video >閥值時,即當前^f見頻幀超前當 前音頻幀對應的視頻標記幀的誤差大于一預設閥值時,則在一定時間內減慢視 頻幀播放的幀速率,降低視頻播放的速度,使其在播放完這些幀以后,音視頻 能夠重新同步起來。
本發明的方法音視頻同步播放方法可以對音視頻之間的誤差進行判斷,并 且對音視頻的播放進行修正,使得播放效果達到音頻與視頻同步,程序的效率 高。
權利要求
1.一種音視頻同步播放方法,其包括以下步驟對播放文件的音頻幀及視頻幀進行索引解析;根據該解析的索引進行播放;根據該音頻幀及視頻幀的誤差對播放進行修正。
2. 根據權利要求1所述的音視頻同步播放方法,其特征在于在該索引解 析步驟中,在每個視頻幀索引信息中增加一個單獨的域,使用這個單獨的域標 記相鄰的音頻幀信息;同時在每個音頻幀信息中也增加一個單獨的域,用來標 記相鄰的^L頻幀信息。
3. 根據權利要求2所述的音視頻同步播放方法,其特征在于當前視頻幀 超前當前音頻幀對應的視頻標記幀的誤差大于一預設閥值時,則在一定時間內 減慢視頻幀播放的幀速率。
4. 根據權利要求2所述的音視頻同步播放方法,其特征在于當前視頻幀 落后當前音頻幀對應的視頻標記幀的誤差大于一預設閥值時,對視頻幀進行跳 幀處理,使視頻幀跳過若干幀,直接播放后面的視頻幀數據。
5. 根據權利要求2所述的音視頻同步播放方法,其特征在于當前視頻幀 超前或落后當前音頻幀對應的視頻標記幀的誤差小于或等于一預設閥值時,則 繼續播放。
6. 根據權利要求1所述的音視頻同步播放方法,其特征在于無法對播放 文件的音頻幀及視頻幀進行索引解析時,直接結束播放。
7. 根據權利要求1所述的音視頻同步播放方法,其特征在于進一步包括 一判斷某一視頻幀是否為結束幀的步驟。
8. 根據權利要求7所述的音視頻同步播放方法,其特征在于當某一視頻 幀為結束幀時則結束播放。
全文摘要
本發明涉及一種音視頻同步播放方法,其包括以下步驟對播放文件的音頻幀及視頻幀進行索引解析;根據該解析的索引進行播放;根據該音頻幀及視頻幀的誤差對播放進行修正。本發明的音視頻同步播放方法可以利用播放文件中的音頻幀及視頻幀的交叉特性對媒體流進行動態的交叉修正,使得播放效果達到音頻與視頻同步。
文檔編號H04N7/52GK101150729SQ20061006280
公開日2008年3月26日 申請日期2006年9月22日 優先權日2006年9月22日
發明者雷 張 申請人:康佳集團股份有限公司