非線性編輯軟件音視頻同步處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于視頻技術(shù)領(lǐng)域,尤其涉及一種非線性編輯軟件音視頻同步處理方法及 裝置。
【背景技術(shù)】
[0002] 錄制好的文件經(jīng)常需要通過非線性編輯軟件編輯(包括復(fù)制、剪切、添加片頭片 尾等),原錄播系統(tǒng)錄制的文件通過播放器可W音視頻同步播放,但在用非線性編輯軟件播 放時(shí)音視頻播放不同步,原因是播放器播放文件是按照音視頻的時(shí)戳播放,而非線性編輯 軟件不會(huì)讀取音視頻的時(shí)戳?,F(xiàn)有的常用方法是通過編解碼軟件進(jìn)行處理,但是編解碼軟 件需要對(duì)音視頻文件重新進(jìn)行解碼和編碼,耗費(fèi)的時(shí)間很長。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的在于提供一種非線性編輯軟件音視頻同步處理方法,旨在解決現(xiàn)有 錄播系統(tǒng)錄制的音視頻文件在播放器中播放音視頻同步,但在非線性編輯軟件中播放音視 頻不同步,音視頻文件需要重新進(jìn)行解碼和編碼,耗費(fèi)的時(shí)間很長的問題。
[0004] 本發(fā)明提供了一種非線性編輯軟件音視頻同步處理方法,包括:
[0005] 獲取編碼器的視頻流和音頻流,并緩存對(duì)應(yīng)的視頻頓和音頻頓;
[0006] 讀取所述視頻頓和音頻頓;
[0007] 對(duì)讀取的所述視頻頓和音頻頓進(jìn)行寫入操作,所述寫入操作包括;將所述視頻頓 和音頻頓進(jìn)行均勻分布處理和時(shí)戳同步處理。
[0008] 進(jìn)一步的,所述將所述視頻頓和音頻頓進(jìn)行均勻分布處理和時(shí)戳同步處理,包 括:
[0009] 根據(jù)頓率計(jì)算所述視頻頓頓間時(shí)差,并根據(jù)所述視頻頓頓間時(shí)差對(duì)所述視頻頓進(jìn) 行均勻分布處理和時(shí)戳同步處理;
[0010] 根據(jù)采樣率計(jì)算音頻頓頓間時(shí)差,并根據(jù)所述音頻頓頓間時(shí)差對(duì)所述音頻頓進(jìn)行 均勻分布處理和時(shí)戳同步處理。
[0011] 進(jìn)一步的,根據(jù)所述視頻頓頓間時(shí)差對(duì)所述視頻頓進(jìn)行均勻分布處理和時(shí)戳同步 處理,包括:
[0012] 調(diào)整I頓的時(shí)戳,使得兩個(gè)I頓之間的時(shí)間間隔等于所述視頻頓頓間時(shí)差的整數(shù) 倍;
[0013] 根據(jù)相鄰兩個(gè)I頓之間的時(shí)間間隔,計(jì)算所述相鄰兩個(gè)I頓之間的P頓數(shù)目,若計(jì) 算得到的所述相鄰兩個(gè)I頓之間的P頓數(shù)目大于讀取時(shí)的所述相鄰兩個(gè)I頓之間的P頓數(shù) 目,則在所述相鄰兩個(gè)I頓之間進(jìn)行補(bǔ)頓;若計(jì)算得到的所述相鄰兩個(gè)I頓之間的P頓數(shù)目 小于讀取時(shí)的所述相鄰兩個(gè)I頓之間的P頓數(shù)目,則在所述相鄰兩個(gè)I頓之間進(jìn)行減頓。
[0014] 進(jìn)一步的,所述調(diào)整I頓的時(shí)戳,包括將I頓進(jìn)行向前調(diào)整或向后調(diào)整,調(diào)整的時(shí) 間范圍小于等于所述視頻頓頓間時(shí)差。
[0015] 進(jìn)一步的,所述根據(jù)所述音頻頓頓間時(shí)差對(duì)所述音頻頓進(jìn)行均勻分布處理和時(shí)戳 同步處理,包括:
[0016] 根據(jù)所述音頻頓頓間時(shí)差計(jì)算所述音頻頓的真實(shí)時(shí)戳Tr,如果T〇-Tr〉A(chǔ)UDI0_ INTERVAL則插入一個(gè)空頓,如果Tr-T〇〉A(chǔ)UDIO_INTERVAL就減掉所述音頻頓,所述To表示 讀取時(shí)所述音頻頓的原始時(shí)戳,所述AUDI0_INTERVA表示所述音頻頓頓間時(shí)差。
[0017] 本發(fā)明還提供了一種非線性編輯軟件音視頻同步處理裝置,包括:
[0018]獲取緩存模塊、讀取模塊W及寫入模塊,所述寫入模塊包括均勻分布與時(shí)戳同步 處理模塊;
[0019] 所述獲取緩存模塊,用于獲取編碼器的視頻流和音頻流,并緩存對(duì)應(yīng)的視頻頓和 音頻頓;
[0020] 所述讀取模塊,用于讀取所述視頻頓和音頻頓;
[0021] 所述寫入模塊,用于對(duì)讀取的所述視頻頓和音頻頓進(jìn)行寫入操作;
[0022] 所述均勻分布與時(shí)戳同步處理模塊,用于將所述視頻頓和音頻頓進(jìn)行均勻分布處 理和時(shí)戳同步處理。
[0023] 進(jìn)一步的,所述均勻分布與時(shí)戳同步處理模塊,包括:
[0024] 第一計(jì)算模塊W及第二計(jì)算模塊;
[0025]所述第一計(jì)算模塊,用于根據(jù)頓率計(jì)算所述視頻頓頓間時(shí)差,并根據(jù)所述視頻頓 頓間時(shí)差對(duì)所述視頻頓進(jìn)行均勻分布處理和時(shí)戳同步處理;
[0026]所述第二計(jì)算模塊,用于根據(jù)采樣率計(jì)算音頻頓頓間時(shí)差,并根據(jù)所述音頻頓頓 間時(shí)差對(duì)所述音頻頓進(jìn)行均勻分布處理和時(shí)戳同步處理。
[0027] 進(jìn)一步的,所述第一計(jì)算模塊還包括:
[0028] 調(diào)整模塊、第一計(jì)算子模塊、第一補(bǔ)頓模塊W及第一減頓模塊;
[0029] 所述調(diào)整模塊,用于調(diào)整I頓的時(shí)戳,使得兩個(gè)I頓之間的時(shí)間間隔等于所述視頻 頓頓間時(shí)差的整數(shù)倍;
[0030] 所述第一計(jì)算子模塊,用于根據(jù)相鄰兩個(gè)I頓之間的時(shí)間間隔,計(jì)算所述相鄰兩 個(gè)I頓之間的P頓數(shù)目η ;
[0031]所述第一補(bǔ)頓模塊,用于當(dāng)計(jì)算得到的所述相鄰兩個(gè)I頓之間的Ρ頓數(shù)目大于讀 取時(shí)的所述相鄰兩個(gè)I頓之間的Ρ頓數(shù)目時(shí),在所述相鄰兩個(gè)I頓之間進(jìn)行補(bǔ)頓;
[0032]所述第一減頓模塊,用于當(dāng)計(jì)算得到的所述相鄰兩個(gè)I頓之間的Ρ頓數(shù)目小于讀 取時(shí)的所述相鄰兩個(gè)I頓之間的Ρ頓數(shù)目時(shí),在所述相鄰兩個(gè)I頓之間進(jìn)行減頓。
[0033] 進(jìn)一步的,所述調(diào)整模塊,還用于將I頓進(jìn)行向前調(diào)整或向后調(diào)整,調(diào)整的時(shí)間范 圍小于等于所述視頻頓頓間時(shí)差。
[0034] 進(jìn)一步的,所述第二計(jì)算模塊還包括:
[0035] 第二計(jì)算子模塊、第二補(bǔ)頓模塊W及第二減頓模塊;
[0036]所述第二計(jì)算子模塊,用于根據(jù)所述音頻頓頓間時(shí)差計(jì)算所述音頻頓的真實(shí)時(shí)戳 Tr;
[0037] 所述第二補(bǔ)頓模塊,用于當(dāng)T〇-Tr〉A(chǔ)UDIO_INTERVAL時(shí),插入一個(gè)空頓;
[0038] 所述第二減頓模塊,用于當(dāng)Tr-T〇〉A(chǔ)UDIO_INTERVAL時(shí),減掉所述音頻頓;所述To 表示讀取時(shí)所述音頻頓的原始時(shí)戳,所述AUDI0_INTERVA表示所述音頻頓頓間時(shí)差。
[0039] 在本發(fā)明中,通過獲取編碼器的視頻流和音頻流,并緩存對(duì)應(yīng)的視頻頓和音頻頓; 讀取所述視頻頓和音頻頓;對(duì)讀取的視頻頓和音頻頓進(jìn)行寫入操作,所述寫入操作包括: 將所述視頻頓和音頻頓進(jìn)行均勻分布處理和時(shí)戳同步處理。本發(fā)明中由于對(duì)視頻頓和音頻 頓進(jìn)行重寫,對(duì)視頻頓和音頻頓進(jìn)行均勻分布處理和時(shí)戳同步處理,送樣能夠保證非線性 編輯軟件播放時(shí)音視頻同步,同時(shí)不需要重新解碼和編碼,提高了效率。
【附圖說明】
[0040] 圖1是本發(fā)明實(shí)施例提供的非線性編輯軟件音視頻同步處理方法的實(shí)現(xiàn)流程圖;
[0041] 圖2是本發(fā)明實(shí)施例提供的從編碼器獲取的音視頻流的一個(gè)示意圖;
[0042] 圖3是本發(fā)明實(shí)施例提供的非線性編輯軟件音視頻同步處理裝置的結(jié)構(gòu)框圖;
[0043] 圖4是本發(fā)明實(shí)施例提供的圖3中的均勻分布與時(shí)戳同步處理模塊的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0044] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,W下結(jié)合附圖及實(shí)施例,對(duì) 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用W解釋本發(fā)明,并 不用于限定本發(fā)明。
[0045] 圖1示出了本發(fā)明實(shí)施例提供的一種非線性編輯軟件音視頻同步處理方法的實(shí) 現(xiàn)流程,詳述如下:
[0046] 步驟101、獲取編碼器的視頻流和音頻流,并緩存對(duì)應(yīng)的視頻頓和音頻頓。
[0047] 本發(fā)明實(shí)施例中,首先獲取編碼器的視頻流和音頻流,獲取音視頻流后并不直接 進(jìn)行寫入操作,而是先緩存對(duì)應(yīng)的音視頻頓。優(yōu)選的,對(duì)兩個(gè)視頻I頓之間的音視頻數(shù)據(jù)進(jìn) 行一