實(shí)時(shí)音視頻轉(zhuǎn)碼方法和系統(tǒng)的制作方法
【專(zhuān)利摘要】一種實(shí)時(shí)音視頻轉(zhuǎn)碼方法和系統(tǒng),其中方法包括步驟:獲取直播請(qǐng)求,其中,所述直播請(qǐng)求包括音視頻數(shù)據(jù)包的名稱(chēng)及其格式信息;根據(jù)所述直播請(qǐng)求的音視頻數(shù)據(jù)包的名稱(chēng)獲取上傳的音視頻數(shù)據(jù)包及其格式信息;判斷所述上傳的音視頻數(shù)據(jù)包的格式信息與直播請(qǐng)求中的格式信息是否完全匹配,若否,則將所述上傳的音視頻數(shù)據(jù)包進(jìn)行解析,獲得音視頻源數(shù)據(jù),對(duì)音視頻源數(shù)據(jù)進(jìn)行解碼處理;根據(jù)所述直播請(qǐng)求中的格式信息對(duì)解碼后的音視頻解碼數(shù)據(jù)進(jìn)行編碼,并對(duì)應(yīng)合并生成新的音視頻數(shù)據(jù)包。通過(guò)本發(fā)明方案靈活的降低了CPU及內(nèi)存資源的消耗,大大提升了處理能力。
【專(zhuān)利說(shuō)明】實(shí)時(shí)音視頻轉(zhuǎn)碼方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及轉(zhuǎn)碼【技術(shù)領(lǐng)域】,特別是涉及一種實(shí)時(shí)音視頻轉(zhuǎn)碼方法和系統(tǒng)。
【背景技術(shù)】
[0002]傳統(tǒng)技術(shù)中,每一直播視頻服務(wù)器都有一個(gè)直播源,即直播視頻內(nèi)容的來(lái)源,也可稱(chēng)之為直播視頻上傳客戶(hù)端,直播服務(wù)器需要完成的重要功能就是將直播源的內(nèi)容發(fā)送到多個(gè)播放客戶(hù)端。不同客戶(hù)端往往支持不同編碼類(lèi)型的視頻流,此時(shí)要實(shí)現(xiàn)同一直播服務(wù)器將直播源內(nèi)容發(fā)送到各個(gè)播放客戶(hù)端,則需要進(jìn)行音視頻轉(zhuǎn)碼。
[0003]上述技術(shù),將上傳的音視頻數(shù)據(jù)包中音視頻數(shù)據(jù)解碼為視頻解碼數(shù)據(jù)和音頻解碼數(shù)據(jù),將解碼后的音頻解碼數(shù)據(jù)和視頻解碼數(shù)據(jù)根據(jù)直播請(qǐng)求進(jìn)行相應(yīng)編碼。傳統(tǒng)技術(shù)雖然解決了音視頻轉(zhuǎn)碼問(wèn)題,但是將所有音視頻數(shù)據(jù)包經(jīng)過(guò)解碼、緩存、編碼過(guò)程,大量消耗CPU以及內(nèi)存資源。
【發(fā)明內(nèi)容】
[0004]基于此,有必要針對(duì)耗費(fèi)CPU以及內(nèi)存資源大的問(wèn)題,提供一種實(shí)時(shí)音視頻轉(zhuǎn)碼方法和系統(tǒng)。
[0005]一種實(shí)時(shí)音視頻轉(zhuǎn)碼方法,包括步驟:
[0006]獲取直播請(qǐng)求,其中,所述直播請(qǐng)求包括音視頻數(shù)據(jù)包的名稱(chēng)及其格式信息;
[0007]根據(jù)所述直播請(qǐng)求的音視頻數(shù)據(jù)包的名稱(chēng)獲取上傳的音視頻數(shù)據(jù)包及其格式信息;·
[0008]判斷所述上傳的音視頻數(shù)據(jù)包的格式信息與直播請(qǐng)求中的格式信息是否完全匹配,若否,則將所述上傳的音視頻數(shù)據(jù)包進(jìn)行解析,獲得音視頻源數(shù)據(jù),對(duì)音視頻源數(shù)據(jù)進(jìn)行解碼處理;
[0009]根據(jù)所述直播請(qǐng)求中的格式信息對(duì)解碼后的音視頻解碼數(shù)據(jù)進(jìn)行編碼,并對(duì)應(yīng)合并生成新的音視頻數(shù)據(jù)包。
[0010]一種實(shí)時(shí)音視頻轉(zhuǎn)碼系統(tǒng),其特征在于,包括:
[0011]直播請(qǐng)求獲取模塊,用于獲取直播請(qǐng)求,其中,所述直播請(qǐng)求包括音視頻數(shù)據(jù)包的名稱(chēng)及其格式?目息;
[0012]數(shù)據(jù)獲取模塊,用于根據(jù)所述直播請(qǐng)求的音視頻數(shù)據(jù)包的名稱(chēng)獲取上傳的音視頻數(shù)據(jù)包及其格式信息;
[0013]第一判斷模塊,用于判斷所述上傳的音視頻數(shù)據(jù)包的格式信息與直播請(qǐng)求中的格式信息是否完全匹配;
[0014]解析模塊,用于當(dāng)所述格式信息不完全匹配時(shí),將所述上傳的音視頻數(shù)據(jù)包進(jìn)行解析,獲得音視頻源數(shù)據(jù);
[0015]解碼模塊,用于對(duì)音視頻源數(shù)據(jù)進(jìn)行解碼處理;
[0016]編碼合并模塊,用于根據(jù)所述直播請(qǐng)求中的格式信息對(duì)解碼后的音視頻解碼數(shù)據(jù)進(jìn)行編碼,并對(duì)應(yīng)合并生成新的音視頻數(shù)據(jù)包。
[0017]上述實(shí)時(shí)音視頻轉(zhuǎn)碼方法和系統(tǒng),通過(guò)對(duì)直播客戶(hù)端請(qǐng)求的視頻及音頻格式信息與上傳的音視頻數(shù)據(jù)包的格式信息進(jìn)行匹配,并根據(jù)匹配結(jié)果,當(dāng)格式信息是否完全匹配時(shí)將上傳的音視頻數(shù)據(jù)包進(jìn)行解析,獲得音視頻源數(shù)據(jù),對(duì)音視頻源數(shù)據(jù)進(jìn)行解碼處理。根據(jù)直播請(qǐng)求中的格式信息對(duì)解碼后的音視頻解碼數(shù)據(jù)進(jìn)行編碼,并對(duì)應(yīng)合并生成新的音視頻數(shù)據(jù)包。當(dāng)格式信息完全匹配時(shí)對(duì)音視頻數(shù)據(jù)包不進(jìn)行解碼、編碼處理。從而靈活的降低了 CPU及內(nèi)存資源的消耗,大大提升了處理能力。同樣的硬件成本,本方案可以支持更多的客戶(hù)端。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0018]圖1為本發(fā)明實(shí)時(shí)音視頻轉(zhuǎn)碼方法實(shí)施例的流程示意圖;
[0019]圖2為本發(fā)明實(shí)時(shí)音視頻轉(zhuǎn)碼系統(tǒng)實(shí)施例的結(jié)構(gòu)示意圖;
[0020]圖3為本發(fā)明實(shí)時(shí)音視頻轉(zhuǎn)碼系統(tǒng)具體實(shí)例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0021]以下針對(duì)本發(fā)明實(shí)時(shí)音視頻轉(zhuǎn)碼方法和系統(tǒng)的各實(shí)施例進(jìn)行詳細(xì)的描述。
[0022]如圖1所示,為本發(fā)明實(shí)時(shí)音視頻轉(zhuǎn)碼方法實(shí)施例的流程示意圖,包括步驟:
[0023]步驟SlOl:獲取直播請(qǐng)求,其中,直播請(qǐng)求包括音視頻數(shù)據(jù)包的名稱(chēng)及其格式信息;
[0024]直播客戶(hù)端需要播放音視頻內(nèi)容時(shí),需要發(fā)出直播請(qǐng)求。即本步驟可以是獲取直播客戶(hù)端發(fā)送的直播請(qǐng)求。
[0025]步驟S102:根據(jù)直播請(qǐng)求的音視頻數(shù)據(jù)包的名稱(chēng)獲取上傳的音視頻數(shù)據(jù)包及其格式信息;
[0026]本步驟目的是為了根據(jù)直播請(qǐng)求獲取長(zhǎng)傳的音視頻數(shù)據(jù)包以及該音視頻數(shù)據(jù)包的格式信息。格式信息中記錄著音視頻數(shù)據(jù)包中音頻數(shù)據(jù)的格式信息和視頻數(shù)據(jù)的格式信肩、O
[0027]在其中一個(gè)實(shí)施例中,可以對(duì)音視頻數(shù)據(jù)包的存在狀態(tài)進(jìn)行判斷,即是否存在對(duì)應(yīng)的音視頻數(shù)據(jù)包進(jìn)行判斷。因此,步驟S102可以包括:
[0028]根據(jù)直播請(qǐng)求的音視頻數(shù)據(jù)包的名稱(chēng)查詢(xún)對(duì)應(yīng)音視頻數(shù)據(jù)包是否上傳,若否,則提示錯(cuò)誤信息,若是,則獲取上傳的音視頻數(shù)據(jù)包及其格式信息。
[0029]其中,查詢(xún)對(duì)應(yīng)音視頻數(shù)據(jù)包是否上傳包括是否處于上傳狀態(tài)或者是否已經(jīng)上傳。本實(shí)施例先通過(guò)判斷,可以將不存在音視頻數(shù)據(jù)包的情況反饋,并避免了后續(xù)多余的處理。
[0030]步驟S103:判斷上傳的音視頻數(shù)據(jù)包的格式信息與直播請(qǐng)求中的格式信息是否完全匹配,若否,進(jìn)入步驟S104 ;
[0031]上傳的音視頻數(shù)據(jù)包的格式信息與直播請(qǐng)求中的格式信息完全匹配是指上傳的音視頻數(shù)據(jù)包中的音頻數(shù)據(jù)的格式信息和視頻數(shù)據(jù)的格式信息均匹配。當(dāng)然,不完全匹配即包括三種情況:上傳的音視頻數(shù)據(jù)包中的音頻數(shù)據(jù)的格式信息不匹配、視頻數(shù)據(jù)的格式信息匹配;上傳的音視頻數(shù)據(jù)包中的音頻數(shù)據(jù)的格式信息匹配、視頻數(shù)據(jù)的格式信息不匹配;上傳的音視頻數(shù)據(jù)包中的音頻數(shù)據(jù)的格式信息和視頻數(shù)據(jù)的格式信息均不匹配。
[0032]另外,當(dāng)該上傳的音視頻數(shù)據(jù)包的格式信息與直播請(qǐng)求中的格式信息完全匹配時(shí),則無(wú)需進(jìn)行后續(xù)的解碼和重新編碼,將該音視頻數(shù)據(jù)包進(jìn)行緩存,直接發(fā)送給直播客戶(hù)端播放即可。因此,靈活的降低了 CPU及內(nèi)存資源的消耗,大大提升了處理能力。
[0033]步驟S104:將上傳的音視頻數(shù)據(jù)包進(jìn)行解析,獲得音視頻源數(shù)據(jù),對(duì)音視頻源數(shù)據(jù)進(jìn)行解碼處理;
[0034]步驟S105:根據(jù)直播請(qǐng)求中的格式信息對(duì)解碼后的音視頻解碼數(shù)據(jù)進(jìn)行編碼,并對(duì)應(yīng)合并生成新的音視頻數(shù)據(jù)包。
[0035]在其中一個(gè)實(shí)施例中,只要格式信息不完全匹配,則將上傳的音視頻數(shù)據(jù)包進(jìn)行解析,獲得音頻源數(shù)據(jù)和視頻源數(shù)據(jù),對(duì)音頻源數(shù)據(jù)和視頻源數(shù)據(jù)均進(jìn)行解碼處理。然后根據(jù)直播請(qǐng)求中的格式信息對(duì)解碼后的音頻解碼數(shù)據(jù)和視頻解碼數(shù)據(jù)進(jìn)行編碼,并對(duì)編碼后的音頻編碼數(shù)據(jù)和視頻編碼數(shù)據(jù)進(jìn)行合并,獲得新的音視頻數(shù)據(jù)包。
[0036]在另一個(gè)實(shí)施例中,對(duì)音視頻數(shù)據(jù)包解析后,可以只對(duì)不匹配的音頻/視頻數(shù)據(jù)進(jìn)行解碼和重新編碼,對(duì)匹配的音頻/視頻數(shù)據(jù)不進(jìn)行解碼和重新編碼,這樣可以進(jìn)一步降低CPU及內(nèi)存資源的消耗,提升處理能力。具體包括:
[0037]音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)的格式信息不匹配、視頻源數(shù)據(jù)的格式信息匹配;
[0038]對(duì)音視頻源數(shù)據(jù)進(jìn)行解碼處理步驟,包括:對(duì)音頻源數(shù)據(jù)進(jìn)行解碼,獲得音頻解碼數(shù)據(jù);
[0039]根據(jù)直播請(qǐng)求中的格式信息對(duì)解碼后的音視頻解碼數(shù)據(jù)進(jìn)行編碼,并對(duì)應(yīng)合并生成新的音視頻數(shù)據(jù)包步驟,包括:根據(jù)直播請(qǐng)求中的格式信息對(duì)音頻解碼數(shù)據(jù)進(jìn)行編碼,將編碼后的音頻數(shù)據(jù)和視頻源數(shù)據(jù)進(jìn)行合并獲得新的音視頻數(shù)據(jù)包,
[0040]或
[0041]音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)的格式信息匹配、視頻源數(shù)據(jù)的格式信息不匹配;
[0042]對(duì)音視頻源數(shù)據(jù)進(jìn)行解碼處理步驟,包括:對(duì)視頻源數(shù)據(jù)進(jìn)行解碼,獲得視頻解碼數(shù)據(jù);
[0043]根據(jù)直播請(qǐng)求中的格式信息對(duì)解碼后的音視頻解碼數(shù)據(jù)進(jìn)行編碼,并對(duì)應(yīng)合并生成新的音視頻數(shù)據(jù)包步驟,包括:根據(jù)直播請(qǐng)求中的格式信息對(duì)視頻解碼數(shù)據(jù)進(jìn)行編碼,將編碼后的視頻數(shù)據(jù)和音頻源數(shù)據(jù)進(jìn)行合并獲得新的音視頻數(shù)據(jù)包,
[0044]或
[0045]音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)和視頻源數(shù)據(jù)的格式信息均不匹配;
[0046]對(duì)音視頻源數(shù)據(jù)進(jìn)行解碼處理步驟,包括:對(duì)音頻源數(shù)據(jù)和視頻源數(shù)據(jù)進(jìn)行解碼,獲得音頻解碼數(shù)據(jù)和視頻解碼數(shù)據(jù);
[0047]根據(jù)直播請(qǐng)求中的格式信息對(duì)解碼后的音視頻解碼數(shù)據(jù)進(jìn)行編碼,并對(duì)應(yīng)合并生成新的音視頻數(shù)據(jù)包步驟,包括:根據(jù)直播請(qǐng)求中的格式信息對(duì)音頻解碼數(shù)據(jù)和視頻解碼數(shù)據(jù)進(jìn)行編碼,將編碼后的音頻數(shù)據(jù)和視頻數(shù)據(jù)進(jìn)行合并獲得新的音視頻數(shù)據(jù)包。
[0048]在其中一個(gè)實(shí)施例中,還可以將解碼或者無(wú)需解碼的數(shù)據(jù)進(jìn)行緩存。即在步驟S104之后,步驟S105之前,還包括:
[0049]將視頻源數(shù)據(jù)和解碼處理的音頻解碼數(shù)據(jù)緩存,其中,音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)的格式信息不匹配、視頻源數(shù)據(jù)的格式信息匹配,[0050]或
[0051]將音頻源數(shù)據(jù)和解碼處理的視頻解碼數(shù)據(jù)緩存,其中,音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)的格式信息匹配、視頻源數(shù)據(jù)的格式信息不匹配,
[0052]或
[0053]將解碼處理后的音頻解碼數(shù)據(jù)和視頻解碼數(shù)據(jù)緩存,其中,音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)和視頻源數(shù)據(jù)的格式信息均不匹配;
[0054]或
[0055]將音視頻數(shù)據(jù)包緩存,其中,音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)和視頻源數(shù)據(jù)的格式信息均匹配。
[0056]在其中一個(gè)實(shí)施例中,為了實(shí)現(xiàn)音頻數(shù)據(jù)和視頻數(shù)據(jù)的同步,將上傳的音視頻數(shù)據(jù)包進(jìn)行解析,可以獲得音視頻源數(shù)據(jù),還可以獲得音視頻同步信息,在步驟S105中,根據(jù)直播請(qǐng)求中的格式信息對(duì)解碼后的音視頻解碼數(shù)據(jù)進(jìn)行編碼,根據(jù)該音視頻同步信息進(jìn)行同步并對(duì)應(yīng)合并,生成新的音視頻數(shù)據(jù)包。
[0057]上述各實(shí)施例可以自由組合,比如同步實(shí)施例與不同情況下如何實(shí)現(xiàn)解碼實(shí)施例組合,不同情況下如何實(shí)現(xiàn)解碼實(shí)施例與數(shù)據(jù)緩存實(shí)施例組合等,在此不再一一贅述。
[0058]本發(fā)明舉其中一個(gè)運(yùn)用實(shí)例進(jìn)行詳細(xì)說(shuō)明。
[0059]首先接收音視頻上傳客戶(hù)端上傳的音視頻網(wǎng)絡(luò)包以及流格式信息,但并未對(duì)音視頻進(jìn)行解碼。
[0060]當(dāng)直播客戶(hù)端發(fā)送直播請(qǐng)求時(shí),接收直播請(qǐng)求,其中包括直播視頻的名字、編碼信息等。
[0061]接收到直播請(qǐng)求后,檢查請(qǐng)求的直播視頻是否正處于上傳過(guò)程中,如果存在,則進(jìn)入下一步,否則向直播客戶(hù)端返回錯(cuò)誤信息;
[0062]將直播請(qǐng)求中包含的請(qǐng)求音視頻格式信息進(jìn)行分析匹配處理;
[0063]根據(jù)匹配結(jié)果,開(kāi)啟2條不同的處理路徑。路徑Al是當(dāng)音頻不匹配、視頻不匹配或音視頻均不匹配;路徑A2是音頻與視頻都匹配。
[0064]路徑Al中,對(duì)音視頻流進(jìn)行拆包,獲取視頻源數(shù)據(jù)及音頻源數(shù)據(jù)。并根據(jù)匹配結(jié)果開(kāi)啟3條不同的路徑,并將音頻源數(shù)據(jù)和視頻源數(shù)據(jù)傳入不同的路徑。3條路徑有:A1-1是僅視頻格式不匹配;Α1-2是僅音頻格式不匹配;Α1-3是音頻視頻格式都不匹配。
[0065]路徑Al-1中,僅對(duì)視頻流進(jìn)行解碼,輸出YUV數(shù)據(jù),音頻源數(shù)據(jù)不變;路徑A1-2中,僅對(duì)音頻流進(jìn)行解碼,輸出PCM數(shù)據(jù),視頻源數(shù)據(jù)不變;路徑A1-3中,分別對(duì)音頻流和視頻流進(jìn)行解碼,分別輸出YUV視頻數(shù)據(jù)及PCM音頻數(shù)據(jù)。所有輸出的YUV數(shù)據(jù),PCM數(shù)據(jù)以及未經(jīng)解碼的音視頻源數(shù)據(jù)都進(jìn)行緩存。
[0066]將解碼后音視頻數(shù)據(jù)分別根據(jù)直播請(qǐng)求中的格式信息進(jìn)行編碼;將未經(jīng)解碼的音視頻源數(shù)據(jù)與后續(xù)編碼后的音頻或視頻數(shù)據(jù)進(jìn)行合并。
[0067]將合并后的音視頻流數(shù)據(jù)分開(kāi)2路,一路用于存儲(chǔ),供非實(shí)時(shí)點(diǎn)播用;另一路發(fā)送給直播客戶(hù)端進(jìn)行實(shí)時(shí)流播放。至此Al路徑結(jié)束。
[0068]A2路徑中,音視數(shù)據(jù)包分成2路,一路用于存儲(chǔ),供非實(shí)時(shí)點(diǎn)播用;另一路發(fā)送給直播客戶(hù)端進(jìn)行實(shí)時(shí)流播放。至此A2路徑結(jié)束。
[0069]本發(fā)明對(duì)直播客戶(hù)端請(qǐng)求的視頻及音頻格式與上傳的音視頻數(shù)據(jù)包的格式進(jìn)行分析匹配,并根據(jù)分析匹配結(jié)果啟動(dòng)多條處理路徑,僅僅當(dāng)視頻以及音頻都與目標(biāo)格式不匹配時(shí)所在的路徑中才同時(shí)啟用視頻及音頻的解碼、緩存、編碼。而其余的路徑是部分啟用音頻或視頻的解碼及編碼處理或者完全不經(jīng)過(guò)解碼、緩存及編碼處理。從而靈活的降低了(PU及內(nèi)存資源的消耗,大大提升了服務(wù)器的處理能力。比如,同樣的配置,客戶(hù)端多了,到了瓶頸的地方,傳統(tǒng)方法到了 10個(gè)客戶(hù)端就又慢又卡了,采用本方案可以輕松支持10個(gè),甚至幾十個(gè)。同樣的硬件成本,本方案可以支持更多的業(yè)務(wù)。[0070]根據(jù)上述實(shí)時(shí)音視頻轉(zhuǎn)碼方法,本發(fā)明還提供一種實(shí)時(shí)音視頻轉(zhuǎn)碼系統(tǒng),如圖2所示,包括:
[0071]直播請(qǐng)求獲取模塊210,用于獲取直播請(qǐng)求,其中,直播請(qǐng)求包括音視頻數(shù)據(jù)包的名稱(chēng)及其格式?目息;
[0072]數(shù)據(jù)獲取模塊220,用于根據(jù)直播請(qǐng)求的音視頻數(shù)據(jù)包的名稱(chēng)獲取上傳的音視頻數(shù)據(jù)包及其格式信息;
[0073]第一判斷模塊230,用于判斷上傳的音視頻數(shù)據(jù)包的格式信息與直播請(qǐng)求中的格式信息是否完全匹配;
[0074]解析模塊240,用于當(dāng)格式信息不完全匹配時(shí),將上傳的音視頻數(shù)據(jù)包進(jìn)行解析,獲得音視頻源數(shù)據(jù);
[0075]解碼模塊250,用于對(duì)音視頻源數(shù)據(jù)進(jìn)行解碼處理;
[0076]編碼合并模塊260,用于根據(jù)直播請(qǐng)求中的格式信息對(duì)解碼后的音視頻解碼數(shù)據(jù)進(jìn)行編碼,并對(duì)應(yīng)合并生成新的音視頻數(shù)據(jù)包。
[0077]其中,解析模塊中不需要解碼的音頻源數(shù)據(jù)或視頻源數(shù)據(jù)則直接發(fā)送給編碼合并模塊進(jìn)行合并。比如,只有音頻源數(shù)據(jù)格式不匹配時(shí),則將解碼模塊將音頻源數(shù)據(jù)進(jìn)行解碼,編碼合并模塊將解碼后的音頻解碼數(shù)據(jù)進(jìn)行編碼。同時(shí),解析模塊將視頻源數(shù)據(jù)發(fā)送至編碼合并模塊,編碼合并模塊將重新編碼的音頻數(shù)據(jù)和視頻源數(shù)據(jù)進(jìn)行同步合并。
[0078]在其中一個(gè)實(shí)施例中,音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)的格式信息不匹配、視頻源數(shù)據(jù)的格式信息匹配;
[0079]解碼模塊,用于對(duì)音頻源數(shù)據(jù)進(jìn)行解碼,獲得音頻解碼數(shù)據(jù);
[0080]編碼合并模塊,用于根據(jù)直播請(qǐng)求中的格式信息對(duì)音頻解碼數(shù)據(jù)進(jìn)行編碼,將編碼后的音頻數(shù)據(jù)和視頻源數(shù)據(jù)進(jìn)行合并獲得新的音視頻數(shù)據(jù)包,
[0081]或
[0082]音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)的格式信息匹配、視頻源數(shù)據(jù)的格式信息不匹配;
[0083]解碼模塊,用于對(duì)視頻源數(shù)據(jù)進(jìn)行解碼,獲得視頻解碼數(shù)據(jù);
[0084]編碼合并模塊,用于根據(jù)直播請(qǐng)求中的格式信息對(duì)視頻解碼數(shù)據(jù)進(jìn)行編碼,將編碼后的視頻數(shù)據(jù)和音頻源數(shù)據(jù)進(jìn)行合并獲得新的音視頻數(shù)據(jù)包,
[0085]或
[0086]音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)和視頻源數(shù)據(jù)的格式信息均不匹配;
[0087]解碼模塊,用于對(duì)音頻源數(shù)據(jù)和視頻源數(shù)據(jù)進(jìn)行解碼,獲得音頻解碼數(shù)據(jù)和視頻解碼數(shù)據(jù);
[0088]編碼合并模塊,用于根據(jù)直播請(qǐng)求中的格式信息對(duì)音頻解碼數(shù)據(jù)和視頻解碼數(shù)據(jù)進(jìn)行編碼,將編碼后的音頻數(shù)據(jù)和視頻數(shù)據(jù)進(jìn)行合并獲得新的音視頻數(shù)據(jù)包。[0089]在其中一個(gè)實(shí)施例中,編碼合并模塊之前,還包括緩存模塊,用于:
[0090]將視頻源數(shù)據(jù)和解碼處理的音頻解碼數(shù)據(jù)緩存,其中,音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)的格式信息不匹配、視頻源數(shù)據(jù)的格式信息匹配,
[0091]或
[0092]將音頻源數(shù)據(jù)和解碼處理的視頻解碼數(shù)據(jù)緩存,其中,音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)的格式信息匹配、視頻源數(shù)據(jù)的格式信息不匹配,
[0093]或
[0094]將解碼處理后的音頻解碼數(shù)據(jù)和視頻解碼數(shù)據(jù)緩存,其中,音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)和視頻源數(shù)據(jù)的格式信息均不匹配;
[0095]或
[0096]將音視頻數(shù)據(jù)包緩存,其中,音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)和視頻源數(shù)據(jù)的格式信息均匹配。
[0097]在其中一個(gè)實(shí)施例中,數(shù)據(jù)獲取模塊,包括:
[0098]第二判斷 模塊,用于根據(jù)直播請(qǐng)求的音視頻數(shù)據(jù)包的名稱(chēng)查詢(xún)對(duì)應(yīng)音視頻數(shù)據(jù)包是否上傳;
[0099]處理模塊,用于當(dāng)音視頻數(shù)據(jù)包不處于上傳過(guò)程時(shí),提示錯(cuò)誤信息;當(dāng)音視頻數(shù)據(jù)包處于上傳過(guò)程時(shí),獲取上傳的音視頻數(shù)據(jù)包及其格式信息。
[0100]舉其中一個(gè)具體運(yùn)用實(shí)例進(jìn)行說(shuō)明,如圖3所示,包括:
[0101]直播請(qǐng)求獲取模塊301,用于獲取直播請(qǐng)求,其中,直播請(qǐng)求包括音視頻數(shù)據(jù)包的名稱(chēng)及其格式?目息。
[0102]數(shù)據(jù)獲取模塊302,用于根據(jù)直播請(qǐng)求的音視頻數(shù)據(jù)包的名稱(chēng)獲取上傳的音視頻數(shù)據(jù)包及其格式信息。
[0103]音視頻格式匹配單元303用于對(duì)收到的客戶(hù)端信息進(jìn)行分析及匹配,并根據(jù)不同的匹配結(jié)果選擇不同的處理路徑。
[0104]第一音視頻處理路徑選擇單元304,用于根據(jù)匹配結(jié)果選擇不同的音視頻處理路徑,處理路徑有:Α1)格式信息不完全匹配和Α2)視頻音頻格式都匹配路徑。
[0105]音視頻流解析單元305,用于當(dāng)音視頻不完全匹配時(shí),對(duì)音視頻數(shù)據(jù)包進(jìn)行拆包,用于后續(xù)的解碼、緩存及編碼處理流程。
[0106]第二音視頻處理路徑選擇單元306,用于將根據(jù)匹配結(jié)果對(duì)Al)路徑進(jìn)行拆分選擇,包括:Α1-1)視頻格式不匹配路徑,Α1-2)音頻格式不匹配路金,Α1-3)視頻音頻格式都不匹配路徑。
[0107]視頻解碼單元307用于將上傳的音視頻數(shù)據(jù)包中的視頻數(shù)據(jù)解碼為視頻YUV數(shù)據(jù);
[0108]音頻解碼單元308用于將音視頻數(shù)據(jù)包中的音頻數(shù)據(jù)解碼為音頻PCM格式數(shù)據(jù);
[0109]數(shù)據(jù)緩沖單元309用于將視頻解碼單元和音頻解碼單元解碼后所得的音頻PCM和視頻YUV數(shù)據(jù)放入存儲(chǔ)單元中的緩存區(qū)予以緩存以備待用。數(shù)據(jù)緩沖單元可以包括用于緩存解碼后YUV視頻數(shù)據(jù)的視頻緩存子區(qū)、用于緩存解碼后PCM音頻數(shù)據(jù)的音頻緩存子區(qū)、用于緩存拆包后無(wú)須解碼并未經(jīng)解碼的源視頻數(shù)據(jù)的視頻緩存子區(qū)、用于緩存拆包后無(wú)須解碼并未經(jīng)解碼的源音頻數(shù)據(jù)的音頻緩存子區(qū)。[0110]音視頻同步單元310用于將數(shù)據(jù)緩存區(qū)中的音視頻數(shù)據(jù)按照其時(shí)間戳進(jìn)行同步。根據(jù)直播請(qǐng)求獲取模塊301確定直播客戶(hù)端所需要的音視頻信息和其所采用的音視頻編碼格式。
[0111]視頻編碼單元311用于根據(jù)直播信令處理單元所確定的直播客戶(hù)端所需要的音視頻信息和音視頻編碼格式,將緩存的對(duì)應(yīng)視頻數(shù)據(jù)進(jìn)行相應(yīng)編碼。
[0112]音頻編碼單元312用于根據(jù)直播信令處理單元所確定的直播客戶(hù)端所需要的音視頻信息和音視頻編碼格式,將緩存的對(duì)應(yīng)音頻PCM數(shù)據(jù)進(jìn)行相應(yīng)編碼。
[0113]合并流單元313用于將視頻編碼單元和音頻編碼單元編碼后的音視頻數(shù)據(jù)或者從不同音視頻流處理路徑中輸出的未經(jīng)解碼的源音頻或視頻數(shù)據(jù)發(fā)送到直播客戶(hù)端。
[0114]本發(fā)明對(duì)直播客戶(hù)端請(qǐng)求的視頻及音頻格式與上傳的音視頻數(shù)據(jù)包的格式進(jìn)行分析匹配,并根據(jù)分析匹配結(jié)果啟動(dòng)多條處理路徑,僅僅當(dāng)視頻以及音頻都與目標(biāo)格式不匹配時(shí)所在的路徑中才同時(shí)啟用視頻及音頻的解碼、緩存、編碼。而其余的路徑是部分啟用音頻或視頻的解碼及編碼處理或者完全不經(jīng)過(guò)解碼、緩存及編碼處理。從而靈活的降低了(PU及內(nèi)存資源的消耗,大大提升了服務(wù)器的處理能力。
[0115]本發(fā)明的實(shí)時(shí)音視頻轉(zhuǎn)碼系統(tǒng)與本發(fā)明的實(shí)時(shí)音視頻轉(zhuǎn)碼方法是一一對(duì)應(yīng)的,上述實(shí)時(shí)音視頻轉(zhuǎn)碼方法實(shí)施例中的相關(guān)技術(shù)特征及其技術(shù)效果均適用于實(shí)時(shí)音視頻轉(zhuǎn)碼系統(tǒng)實(shí)施例中,在此不再贅述。
[0116]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專(zhuān)利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專(zhuān)利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1.一種實(shí)時(shí)音視頻轉(zhuǎn)碼方法,其特征在于,包括步驟: 獲取直播請(qǐng)求,其中,所述直播請(qǐng)求包括音視頻數(shù)據(jù)包的名稱(chēng)及其格式信息; 根據(jù)所述直播請(qǐng)求的音視頻數(shù)據(jù)包的名稱(chēng)獲取上傳的音視頻數(shù)據(jù)包及其格式信息;判斷所述上傳的音視頻數(shù)據(jù)包的格式信息與直播請(qǐng)求中的格式信息是否完全匹配,若否,則將所述上傳的音視頻數(shù)據(jù)包進(jìn)行解析,獲得音視頻源數(shù)據(jù),對(duì)音視頻源數(shù)據(jù)進(jìn)行解碼處理; 根據(jù)所述直播請(qǐng)求中的格式信息對(duì)解碼后的音視頻解碼數(shù)據(jù)進(jìn)行編碼,并對(duì)應(yīng)合并生成新的音視頻數(shù)據(jù)包。
2.根據(jù)權(quán)利要求1所述的實(shí)時(shí)音視頻轉(zhuǎn)碼方法,其特征在于, 所述音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)的格式信息不匹配、視頻源數(shù)據(jù)的格式信息匹配;所述對(duì)音視頻源數(shù)據(jù)進(jìn)行解碼處理步驟,包括:對(duì)所述音頻源數(shù)據(jù)進(jìn)行解碼,獲得音頻解碼數(shù)據(jù); 所述根據(jù)所述直播請(qǐng)求中的格式信息對(duì)解碼后的音視頻解碼數(shù)據(jù)進(jìn)行編碼,并對(duì)應(yīng)合并生成新的音視頻數(shù)據(jù)包步驟,包括:根據(jù)所述直播請(qǐng)求中的格式信息對(duì)所述音頻解碼數(shù)據(jù)進(jìn)行編碼,將編碼后的音頻數(shù)據(jù)和所述視頻源數(shù)據(jù)進(jìn)行合并獲得新的音視頻數(shù)據(jù)包, 或 所述音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)的格式信息匹配、視頻源數(shù)據(jù)的格式信息不匹配;所述對(duì)音視頻源數(shù)據(jù)進(jìn)行解碼處理步驟,包括:對(duì)所述視頻源數(shù)據(jù)進(jìn)行解碼,獲得視頻解碼數(shù)據(jù); 所述根據(jù)所述直播請(qǐng)求中的格式信息對(duì)解碼后的音視頻解碼數(shù)據(jù)進(jìn)行編碼,并對(duì)應(yīng)合并生成新的音視頻數(shù)據(jù)包步驟,包括:根據(jù)所述直播請(qǐng)求中的格式信息對(duì)所述視頻解碼數(shù)據(jù)進(jìn)行編碼,將編碼后的視頻數(shù)據(jù)和所述音頻源數(shù)據(jù)進(jìn)行合并獲得新的音視頻數(shù)據(jù)包, 或 所述音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)和視頻源數(shù)據(jù)的格式信息均不匹配; 所述對(duì)音視頻源數(shù)據(jù)進(jìn)行解碼處理步驟,包括:對(duì)所述音頻源數(shù)據(jù)和視頻源數(shù)據(jù)進(jìn)行解碼,獲得音頻解碼數(shù)據(jù)和視頻解碼數(shù)據(jù); 所述根據(jù)所述直播請(qǐng)求中的格式信息對(duì)解碼后的音視頻解碼數(shù)據(jù)進(jìn)行編碼,并對(duì)應(yīng)合并生成新的音視頻數(shù)據(jù)包步驟,包括:根據(jù)所述直播請(qǐng)求中的格式信息對(duì)所述音頻解碼數(shù)據(jù)和視頻解碼數(shù)據(jù)進(jìn)行編碼,將編碼后的音頻數(shù)據(jù)和視頻數(shù)據(jù)進(jìn)行合并獲得新的音視頻數(shù)據(jù)包。
3.根據(jù)權(quán)利要求2所述的實(shí)時(shí)音視頻轉(zhuǎn)碼方法,其特征在于,合并生成新的音視頻數(shù)據(jù)包步驟之前,還包括: 將所述視頻源數(shù)據(jù)和解碼處理的音頻解碼數(shù)據(jù)緩存,其中,所述音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)的格式信息不匹配、視頻源數(shù)據(jù)的格式信息匹配, 或 將所述音頻源數(shù)據(jù)和解碼處理的視頻解碼數(shù)據(jù)緩存,其中,所述音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)的格式信息匹配、視頻源數(shù)據(jù)的格式信息不匹配, 或 將解碼處理后的音頻解碼數(shù)據(jù)和視頻解碼數(shù)據(jù)緩存,其中,所述音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)和視頻源數(shù)據(jù)的格式信息均不匹配; 或 將所述音視頻數(shù)據(jù)包緩存,其中,所述音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)和視頻源數(shù)據(jù)的格式信息均匹配。
4.根據(jù)權(quán)利要求1至3任意一項(xiàng)所述的實(shí)時(shí)音視頻轉(zhuǎn)碼方法,其特征在于,所述根據(jù)所述直播請(qǐng)求的音視頻數(shù)據(jù)包的名稱(chēng)獲取上傳的音視頻數(shù)據(jù)包及其格式信息步驟,包括: 根據(jù)所述直播請(qǐng)求的音視頻數(shù)據(jù)包的名稱(chēng)查詢(xún)對(duì)應(yīng)音視頻數(shù)據(jù)包是否上傳,若否,則提示錯(cuò)誤信息,若是,則獲取上傳的音視頻數(shù)據(jù)包及其格式信息。
5.一種實(shí)時(shí)音視頻轉(zhuǎn)碼系統(tǒng),其特征在于,包括: 直播請(qǐng)求獲取模塊,用于獲取直播請(qǐng)求,其中,所述直播請(qǐng)求包括音視頻數(shù)據(jù)包的名稱(chēng)及其格式信息; 數(shù)據(jù)獲取模塊,用于根據(jù)所述直播請(qǐng)求的音視頻數(shù)據(jù)包的名稱(chēng)獲取上傳的音視頻數(shù)據(jù)包及其格式信息; 第一判斷模塊,用于判斷所述上傳的音視頻數(shù)據(jù)包的格式信息與直播請(qǐng)求中的格式信息是否完全匹配; 解析模塊,用于當(dāng)所述格式信息不完全匹配時(shí),將所述上傳的音視頻數(shù)據(jù)包進(jìn)行解析,獲得音視頻源數(shù)據(jù); 解碼模塊,用于對(duì)音視頻源數(shù)據(jù)進(jìn)行解碼處理; 編碼合并模塊,用于根據(jù)所述直播請(qǐng)求中的格式信息對(duì)解碼后的音視頻解碼數(shù)據(jù)進(jìn)行編碼,并對(duì)應(yīng)合并生成新的音視頻數(shù)據(jù)包。
6.根據(jù)權(quán)利要求5所述的實(shí)時(shí)音視頻轉(zhuǎn)碼系統(tǒng),其特征在于, 所述音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)的格式信息不匹配、視頻源數(shù)據(jù)的格式信息匹配; 所述解碼模塊,用于對(duì)所述音頻源數(shù)據(jù)進(jìn)行解碼,獲得音頻解碼數(shù)據(jù); 所述編碼合并模塊,用于根據(jù)所述直播請(qǐng)求中的格式信息對(duì)所述音頻解碼數(shù)據(jù)進(jìn)行編碼,將編碼后的音頻數(shù)據(jù)和所述視頻源數(shù)據(jù)進(jìn)行合并獲得新的音視頻數(shù)據(jù)包, 或 所述音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)的格式信息匹配、視頻源數(shù)據(jù)的格式信息不匹配; 所述解碼模塊,用于對(duì)所述視頻源數(shù)據(jù)進(jìn)行解碼,獲得視頻解碼數(shù)據(jù); 所述編碼合并模塊,用于根據(jù)所述直播請(qǐng)求中的格式信息對(duì)所述視頻解碼數(shù)據(jù)進(jìn)行編碼,將編碼后的視頻數(shù)據(jù)和所述音頻源數(shù)據(jù)進(jìn)行合并獲得新的音視頻數(shù)據(jù)包, 或 所述音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)和視頻源數(shù)據(jù)的格式信息均不匹配; 所述解碼模塊,用于對(duì)所述音頻源數(shù)據(jù)和視頻源數(shù)據(jù)進(jìn)行解碼,獲得音頻解碼數(shù)據(jù)和視頻解碼數(shù)據(jù); 所述編碼合并模塊,用于根據(jù)所述直播請(qǐng)求中的格式信息對(duì)所述音頻解碼數(shù)據(jù)和視頻解碼數(shù)據(jù)進(jìn)行編碼,將編碼后的音頻數(shù)據(jù)和視頻數(shù)據(jù)進(jìn)行合并獲得新的音視頻數(shù)據(jù)包。
7.根據(jù)權(quán)利要求6所述的實(shí)時(shí)音視頻轉(zhuǎn)碼系統(tǒng),其特征在于,所述編碼合并模塊之前,還包括緩存模塊,用于: 將所述視頻源數(shù)據(jù)和解碼處理的音頻解碼數(shù)據(jù)緩存,其中,所述音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)的格式信息不匹配、視頻源數(shù)據(jù)的格式信息匹配, 或 將所述音頻源數(shù)據(jù)和解碼處理的視頻解碼數(shù)據(jù)緩存,其中,所述音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)的格式信息匹配、視頻源數(shù)據(jù)的格式信息不匹配, 或 將解碼處理后的音頻解碼數(shù)據(jù)和視頻解碼數(shù)據(jù)緩存,其中,所述音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)和視頻源數(shù)據(jù)的格式信息均不匹配; 或 將所述音視頻數(shù)據(jù)包緩存,其中,所述音視頻源數(shù)據(jù)中的音頻源數(shù)據(jù)和視頻源數(shù)據(jù)的格式信息均匹配。
8.根據(jù)權(quán)利要求5至7任意一項(xiàng)所述的實(shí)時(shí)音視頻轉(zhuǎn)碼系統(tǒng),其特征在于,所述數(shù)據(jù)獲取模塊,包括: 第二判斷模塊,用于根據(jù)所述直播請(qǐng)求的音視頻數(shù)據(jù)包的名稱(chēng)查詢(xún)對(duì)應(yīng)音視頻數(shù)據(jù)包是否上傳; 處理模塊,用于當(dāng)音視頻數(shù)據(jù)包不處于上傳過(guò)程時(shí),提示錯(cuò)誤信息;當(dāng)音視頻數(shù)據(jù)包處于上傳過(guò)程時(shí),獲取上傳的音視 頻數(shù)據(jù)包及其格式信息。
【文檔編號(hào)】H04N21/2343GK103686210SQ201310704140
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2013年12月17日 優(yōu)先權(quán)日:2013年12月17日
【發(fā)明者】梁博文 申請(qǐng)人:廣東威創(chuàng)視訊科技股份有限公司