System.ArgumentOutOfRangeException: 索引和長(zhǎng)度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本申請(qǐng)涉及計(jì)算機(jī)互聯(lián)網(wǎng),尤其涉及一種音視頻同步方法、裝置及存儲(chǔ)介質(zhì)。
技術(shù)介紹
1、在傳統(tǒng)的云桌面系統(tǒng)中,存在音頻流和視頻流。音頻流和視頻流一般情況下相互獨(dú)立,且都涉及采集、編碼、傳輸、解碼、渲染等步驟。當(dāng)主機(jī)的性能較差或者網(wǎng)絡(luò)擁塞的情況下,可能導(dǎo)致音視頻不同步,且隨著時(shí)間的積累,音視頻不同步的現(xiàn)象不僅不會(huì)消除,還只會(huì)越來(lái)越明顯。
2、因此,有必要提供一種新的技術(shù)方案改善上述方案中存在的一個(gè)或者多個(gè)問(wèn)題。
3、需要說(shuō)明的是,在上述
技術(shù)介紹
部分公開(kāi)的信息僅用于加強(qiáng)對(duì)本申請(qǐng)的背景的理解,因此可以包括不構(gòu)成對(duì)本領(lǐng)域普通技術(shù)人員已知的現(xiàn)有技術(shù)的信息。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)的目的在于提供一種音視頻同步方法、裝置及存儲(chǔ)介質(zhì),進(jìn)而至少在一定程度上克服由于相關(guān)技術(shù)的限制和缺陷而導(dǎo)致的一個(gè)或者多個(gè)問(wèn)題。
2、根據(jù)本申請(qǐng)實(shí)施例的第一方面,提供一種音視頻同步方法,該方法包括:
3、發(fā)送端基于開(kāi)始采集音視頻數(shù)據(jù)時(shí)的系統(tǒng)時(shí)間及對(duì)應(yīng)的采樣周期,分別生成音頻時(shí)間戳和視頻時(shí)間戳;其中,音視頻數(shù)據(jù)包括音頻數(shù)據(jù)和視頻數(shù)據(jù);
4、并將所述音頻時(shí)間戳封裝在所述音頻數(shù)據(jù)中,得到音頻數(shù)據(jù)包,將所述視頻時(shí)間戳封裝在所述視頻數(shù)據(jù)中,得到視頻數(shù)據(jù)包;
5、將所述音頻數(shù)據(jù)包和所述視頻數(shù)據(jù)包分別放入各自對(duì)應(yīng)的緩沖區(qū),并根據(jù)所述視頻數(shù)據(jù)包中的第一幀視頻數(shù)據(jù)的采集上報(bào)時(shí)間和所述音頻數(shù)據(jù)包中的第一包音頻數(shù)據(jù)的采集上報(bào)時(shí)間的大小關(guān)系,將所述音頻數(shù)據(jù)包中的第一包音頻數(shù)據(jù)
6、若所述視頻數(shù)據(jù)包中的第一幀視頻數(shù)據(jù)的采集上報(bào)時(shí)間大于等于所述音頻數(shù)據(jù)包中的第一包音頻數(shù)據(jù)的采集上報(bào)時(shí)間,則根據(jù)音頻偏移量將所述第一包音頻數(shù)據(jù)到所述音頻偏移量之間的音頻數(shù)據(jù)移除,以使剩余的所述音頻數(shù)據(jù)包中的第一包音頻數(shù)據(jù)和所述視頻數(shù)據(jù)包中的第一幀視頻數(shù)據(jù)對(duì)齊;其中,所述音頻偏移量通過(guò)所述視頻數(shù)據(jù)包中的第一幀視頻數(shù)據(jù)的采集上報(bào)時(shí)間、所述音頻數(shù)據(jù)包中的第一包音頻數(shù)據(jù)的采集上報(bào)時(shí)間及音頻采樣周期計(jì)算而得;
7、對(duì)所述視頻數(shù)據(jù)包和所述音頻數(shù)據(jù)包分別進(jìn)行編碼,并將所述視頻編碼數(shù)據(jù)包和所述音頻編碼數(shù)據(jù)包組成一個(gè)傳輸包,并在該所述傳輸包上加上包頭信息,進(jìn)行發(fā)送至接收端進(jìn)行解碼顯示。
8、本申請(qǐng)的實(shí)施例中,所述音頻偏移量的計(jì)算公式如下:
9、
10、式中,audio_offset_n表示音頻偏移量,t_video_0表示視頻數(shù)據(jù)包中的第一幀視頻數(shù)據(jù)的采集上報(bào)時(shí)間,t_audio_0表示音頻數(shù)據(jù)包中的第一包音頻數(shù)據(jù)的采集上報(bào)時(shí)間,interval_a表示音頻采樣周期。
11、本申請(qǐng)的實(shí)施例中,所述根據(jù)所述視頻數(shù)據(jù)包中的第一幀視頻數(shù)據(jù)的采集上報(bào)時(shí)間和所述音頻數(shù)據(jù)包中的第一包音頻數(shù)據(jù)的采集上報(bào)時(shí)間的大小關(guān)系,將所述音頻數(shù)據(jù)包中的第一包音頻數(shù)據(jù)和所述視頻數(shù)據(jù)包中的第一幀視頻數(shù)據(jù)對(duì)齊,之后包括:
12、若所述視頻數(shù)據(jù)包中的第一幀視頻數(shù)據(jù)的采集上報(bào)時(shí)間小于所述音頻數(shù)據(jù)包中的第一包音頻數(shù)據(jù)的采集上報(bào)時(shí)間,則根據(jù)視頻偏移量將所述第一幀視頻數(shù)據(jù)到所述視頻偏移量之間的視頻數(shù)據(jù)移除,以使剩余的所述視頻數(shù)據(jù)包中的第一個(gè)幀視頻數(shù)據(jù)和所述音頻數(shù)據(jù)包中的第一包音頻數(shù)據(jù)對(duì)齊;其中,所述視頻偏移量通過(guò)所述視頻數(shù)據(jù)包中的第一幀視頻數(shù)據(jù)的采集上報(bào)時(shí)間、所述音頻數(shù)據(jù)包中的第一包音頻數(shù)據(jù)的采集上報(bào)時(shí)間及視頻采樣周期計(jì)算而得。
13、本申請(qǐng)的實(shí)施例中,所述視頻偏移量的計(jì)算公式如下:
14、
15、式中,video_offset_n表示視頻偏移量,t_video_0表示視頻數(shù)據(jù)包中的第一幀視頻數(shù)據(jù)的采集上報(bào)時(shí)間,t_audio_0表示音頻數(shù)據(jù)包中的第一包音頻數(shù)據(jù)的采集上報(bào)時(shí)間,interval_v表示視頻采樣周期。
16、本申請(qǐng)的實(shí)施例中,所述對(duì)所述視頻數(shù)據(jù)包和所述音頻數(shù)據(jù)包分別進(jìn)行編碼,并將視頻編碼數(shù)據(jù)包和音頻編碼數(shù)據(jù)包組成一個(gè)傳輸包,包括:
17、按視頻數(shù)據(jù)的一幀長(zhǎng)度對(duì)所述視頻數(shù)據(jù)包進(jìn)行編碼,得到視頻編碼數(shù)據(jù)包;
18、根據(jù)音頻偏移數(shù)從音頻緩沖區(qū)內(nèi)找到和視頻幀時(shí)間上對(duì)應(yīng)的音頻數(shù)據(jù),并進(jìn)行編碼,得到音頻編碼數(shù)據(jù)包;其中,所述音頻偏移數(shù)通過(guò)當(dāng)前視頻緩沖區(qū)的第一幀視頻數(shù)據(jù)的視頻時(shí)間戳、視頻采樣周期、當(dāng)前音頻緩沖區(qū)的第一包音頻數(shù)據(jù)的音頻時(shí)間戳、音頻采樣周期計(jì)算得到。
19、本申請(qǐng)的實(shí)施例中,所述音頻偏移數(shù)的計(jì)算公式如下:
20、
21、式中,t_video_k表示當(dāng)前視頻緩沖區(qū)的第一幀視頻數(shù)據(jù)的視頻時(shí)間戳,interval_v表示視頻采樣周期,t_audio_n表示移數(shù)通過(guò)當(dāng)前視頻緩沖區(qū)的第一幀視頻數(shù)據(jù)的視頻時(shí)間戳,interval_a表示音頻采樣周期。
22、根據(jù)本申請(qǐng)實(shí)施例的第二方面,提供一種音視頻同步方法,該方法包括:
23、接收端對(duì)接收到的傳輸包進(jìn)行拆包,得到拆包后的音頻編碼數(shù)據(jù)包和視頻編碼數(shù)據(jù)包,并分別進(jìn)行解碼,得到音頻解碼數(shù)據(jù)包和視頻解碼數(shù)據(jù)包;
24、通過(guò)網(wǎng)絡(luò)均衡模塊對(duì)所述音頻解碼數(shù)據(jù)包進(jìn)行處理,得到處理后的所述音頻解碼數(shù)據(jù)包和音頻播放結(jié)果,處理后的所述音頻解碼數(shù)據(jù)包進(jìn)行渲染;其中,所述音頻播放結(jié)果包括:正常播放、加速播放和減速播放;
25、所述視頻解碼數(shù)據(jù)包根據(jù)所述音頻播放結(jié)果修正視頻解碼數(shù)據(jù)原始時(shí)長(zhǎng),得到修正后的視頻解碼數(shù)據(jù)時(shí)長(zhǎng),以使所述視頻解碼數(shù)據(jù)包根據(jù)修正后的所述視頻解碼數(shù)據(jù)時(shí)長(zhǎng)進(jìn)行渲染。
26、本申請(qǐng)的實(shí)施例中,所述視頻解碼數(shù)據(jù)包根據(jù)所述音頻播放結(jié)果修正視頻解碼數(shù)據(jù)時(shí)長(zhǎng),得到修正后的視頻解碼數(shù)據(jù)時(shí)長(zhǎng),包括:
27、當(dāng)所述音頻播放結(jié)果為正常播放時(shí),修正后的所述視頻解碼數(shù)據(jù)時(shí)長(zhǎng)為所述視頻解碼數(shù)據(jù)原始時(shí)長(zhǎng)。
28、本申請(qǐng)的實(shí)施例中,所述視頻解碼數(shù)據(jù)包根據(jù)所述音頻播放結(jié)果修正視頻解碼數(shù)據(jù)時(shí)長(zhǎng),得到修正后的視頻解碼數(shù)據(jù)時(shí)長(zhǎng),包括:
29、當(dāng)所述音頻播放結(jié)果為加速播放時(shí),修正后的所述視頻解碼數(shù)據(jù)時(shí)長(zhǎng)的計(jì)算公式如下:
30、
31、式中,a_samples表示音頻解碼數(shù)據(jù)包中的音頻解碼數(shù)據(jù)的數(shù)量,ksamples表示減少的音頻解碼數(shù)據(jù)的數(shù)量,duration0表示視頻解碼數(shù)據(jù)原始時(shí)長(zhǎng)。
32、本申請(qǐng)的實(shí)施例中,所述視頻解碼數(shù)據(jù)根據(jù)所述音頻播放結(jié)果修正視頻解碼數(shù)據(jù)時(shí)長(zhǎng),得到修正后的視頻解碼數(shù)據(jù)時(shí)長(zhǎng),包括:
33、當(dāng)所述音頻播放結(jié)果為減速播放時(shí),修正后的所述視頻解碼數(shù)據(jù)時(shí)長(zhǎng)的計(jì)算公式如下:
34、
35、式中,a_samples表示音頻解碼數(shù)據(jù)包中的音頻解碼數(shù)據(jù)的數(shù)量,ksamples表示減少的音頻解碼數(shù)據(jù)的數(shù)量,duration0表示視頻解碼數(shù)據(jù)原始時(shí)長(zhǎng)。
36、根據(jù)本申請(qǐng)實(shí)施例的第三方面,提供一種音視頻同步裝置,該裝置包括:
37、生成模塊,用于發(fā)送端基于開(kāi)始采集音視本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
1.一種音視頻同步方法,其特征在于,該方法包括:
2.根據(jù)權(quán)利要求1所述的音視頻同步方法,其特征在于,所述音頻偏移量的計(jì)算公式如下:
3.根據(jù)權(quán)利要求1所述的音視頻同步方法,其特征在于,所述根據(jù)所述視頻數(shù)據(jù)包中的第一幀視頻數(shù)據(jù)的采集上報(bào)時(shí)間和所述音頻數(shù)據(jù)包中的第一包音頻數(shù)據(jù)的采集上報(bào)時(shí)間的大小關(guān)系,將所述音頻數(shù)據(jù)包中的第一包音頻數(shù)據(jù)和所述視頻數(shù)據(jù)包中的第一幀視頻數(shù)據(jù)對(duì)齊,之后包括:
4.根據(jù)權(quán)利要求3所述的音視頻同步方法,其特征在于,所述視頻偏移量的計(jì)算公式如下:
5.根據(jù)權(quán)利要求1所述的音視頻同步方法,其特征在于,所述對(duì)所述視頻數(shù)據(jù)包和所述音頻數(shù)據(jù)包分別進(jìn)行編碼,并將視頻編碼數(shù)據(jù)包和音頻編碼數(shù)據(jù)包組成一個(gè)傳輸包,包括:
6.根據(jù)權(quán)利要求5所述的音視頻同步方法,其特征在于,所述音頻偏移數(shù)的計(jì)算公式如下:
7.一種音視頻同步方法,其特征在于,該方法包括:
8.根據(jù)權(quán)利要求7所述的音視頻同步方法,其特征在于,所述視頻解碼數(shù)據(jù)包根據(jù)所述音頻播放結(jié)果修正視頻解碼數(shù)據(jù)時(shí)長(zhǎng),得到修正后的視頻解碼數(shù)據(jù)時(shí)長(zhǎng),包括
9.根據(jù)權(quán)利要求7所述的音視頻同步方法,其特征在于,所述視頻解碼數(shù)據(jù)包根據(jù)所述音頻播放結(jié)果修正視頻解碼數(shù)據(jù)時(shí)長(zhǎng),得到修正后的視頻解碼數(shù)據(jù)時(shí)長(zhǎng),包括:
10.根據(jù)權(quán)利要求7所述的音視頻同步方法,其特征在于,所述視頻解碼數(shù)據(jù)根據(jù)所述音頻播放結(jié)果修正視頻解碼數(shù)據(jù)時(shí)長(zhǎng),得到修正后的視頻解碼數(shù)據(jù)時(shí)長(zhǎng),包括:
11.一種音視頻同步裝置,其特征在于,該裝置包括:
12.一種音視頻同步裝置,其特征在于,該裝置包括:
13.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1~10任一項(xiàng)所述音視頻同步方法的步驟。
...【技術(shù)特征摘要】
1.一種音視頻同步方法,其特征在于,該方法包括:
2.根據(jù)權(quán)利要求1所述的音視頻同步方法,其特征在于,所述音頻偏移量的計(jì)算公式如下:
3.根據(jù)權(quán)利要求1所述的音視頻同步方法,其特征在于,所述根據(jù)所述視頻數(shù)據(jù)包中的第一幀視頻數(shù)據(jù)的采集上報(bào)時(shí)間和所述音頻數(shù)據(jù)包中的第一包音頻數(shù)據(jù)的采集上報(bào)時(shí)間的大小關(guān)系,將所述音頻數(shù)據(jù)包中的第一包音頻數(shù)據(jù)和所述視頻數(shù)據(jù)包中的第一幀視頻數(shù)據(jù)對(duì)齊,之后包括:
4.根據(jù)權(quán)利要求3所述的音視頻同步方法,其特征在于,所述視頻偏移量的計(jì)算公式如下:
5.根據(jù)權(quán)利要求1所述的音視頻同步方法,其特征在于,所述對(duì)所述視頻數(shù)據(jù)包和所述音頻數(shù)據(jù)包分別進(jìn)行編碼,并將視頻編碼數(shù)據(jù)包和音頻編碼數(shù)據(jù)包組成一個(gè)傳輸包,包括:
6.根據(jù)權(quán)利要求5所述的音視頻同步方法,其特征在于,所述音頻偏移數(shù)的計(jì)算公式如下:
7.一種音視頻...
【專(zhuān)利技術(shù)屬性】
技術(shù)研發(fā)人員:易鑫,
申請(qǐng)(專(zhuān)利權(quán))人:西安萬(wàn)像電子科技有限公司,
類(lèi)型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。