專利名稱:碼流錄制、重建方法及設(shè)備、碼流錄制及重建設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,并且特別地,涉及一種碼流錄制設(shè)備及 方法、碼流重建i殳備及方法、碼流錄制及重建i殳備。
背景技術(shù):
在多媒體系統(tǒng)的數(shù)據(jù)源端,需要設(shè)備產(chǎn)生多路媒體流,以提供 不同的媒體服務(wù)。編碼器設(shè)備價(jià)格昂貴,因此如果全部采用編碼器 則會增加成本。
多媒體系統(tǒng)設(shè)備和一般的網(wǎng)絡(luò)設(shè)備不同,多媒體系統(tǒng)設(shè)備除了 具有一般網(wǎng)絡(luò)設(shè)備傳輸數(shù)據(jù)的功能外,還必須按照時(shí)間序列來傳輸 數(shù)據(jù)。 一旦輸入碼流帶有時(shí)間屬性,那么多媒體設(shè)備傳輸?shù)臄?shù)據(jù)就 會不斷變化。為了能夠重現(xiàn)編碼器輸出的碼流,有必要對編碼器輸 出的碼流進(jìn)行捕捉存儲成文件,并且將存儲文件再恢復(fù)為原始碼流。
多Jf某體網(wǎng)絡(luò)傳輸大多采用實(shí)時(shí)傳輸協(xié)議(Real-time Transport Protocol ,簡4爾為RTP ) /實(shí)時(shí)傳l命4空制妨、_漢(Real-time Transport Control Protocol,簡稱為RTCP),因此, 一條含有音^L頻的i某體流 在網(wǎng)絡(luò)上進(jìn)行傳輸實(shí)際上至少需要傳輸四條流,分別為視頻RTP 流、 一見頻RTCP流、音頻RTP流和音頻RTCP流。常用的錄制方法 是^5U又錄制纟見頻RTP流有效載荷和音頻RTP流有效載荷,然后將 錄制的有效載荷放入文件容器,例如,MP4或者AVI。^!夸文件再還原為碼流時(shí),^U又還原圖〗象和聲音序列,時(shí)間信息 是重新構(gòu)建的,因此,原始碼流的時(shí)間信息丟失,重新生成的碼流 凄丈據(jù)包與原始碼流的勒:據(jù)包也不相同。因此,利用這個(gè)方法錄制并 且重建后的石馬流與原始石馬流不一致。
為了保i正錄制再重建的碼流和原始碼流完全一致,乂人而能夠替 代編碼器,必須對上述錄制和重建方法進(jìn)^f于改進(jìn)。然而,目前尚未 提出解決上述問題的技術(shù)方案。
發(fā)明內(nèi)容
考慮到4吏用編碼器發(fā)送碼流的成本大,并且不能〗呆i正錄制再重 建的碼流和原始碼流完全一致的問題而做出本發(fā)明,為此,本發(fā)明 的主要目的在于提供一種碼流錄制設(shè)備及方法、碼流重建設(shè)備及方 法、碼流錄制及重建設(shè)備,已解決相關(guān)技術(shù)中的上述問題。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種碼流錄制設(shè)備,用于錄制 音^L頻々某體碼流。
根據(jù)本發(fā)明實(shí)施例的碼流錄制設(shè)備包括至少一個(gè)接收端口 , 分別用于接收媒體包中不同格式的碼流,其中,媒體包的格式包括 視頻實(shí)時(shí)傳送協(xié)議流、視頻實(shí)時(shí)傳送控制協(xié)議流、音頻實(shí)時(shí)傳送協(xié) 議流、音頻實(shí)時(shí)傳送控制協(xié)議流;記錄單元,用于記錄接收到媒體 包的錄制時(shí)刻;存儲單元,用于按照記錄單元記錄的錄制時(shí)刻存儲 媒體包。
此外,上述存儲單元進(jìn)一步包括獲取模塊,用于獲取媒體包 的屬性,其中,媒體包的屬性至少包括媒體包類型和媒體包大??; 保存模塊,用于按照預(yù)定格式將媒體包放入緩沖隊(duì)列,并且,在緩 沖隊(duì)列已滿的情況下,將緩沖隊(duì)列中的凝:據(jù)寫入文件。其中,上述預(yù)定格式為按照錄制時(shí)刻、^ 某體包類型、^^某體包 大小、纟某體包載荷的順序。
此外,上述碼流錄制設(shè)備進(jìn)一步包括判斷模塊,用于判斷是 否到達(dá)預(yù)先設(shè)置的錄制時(shí)間,如果判斷結(jié)果為是,則碼流錄制設(shè)備 結(jié)束錄制。
才艮據(jù)本發(fā)明的另一方面,提供了一種碼流錄制方法,用于錄制 音一見頻々某體流。
才艮據(jù)本發(fā)明實(shí)施例的碼流錄制方法包括使用至少一個(gè)端口接 收士某體包,其中,至少一個(gè)端口分別用于4矣收士某體包中的一見頻實(shí)時(shí) 傳送協(xié)議流、視頻實(shí)時(shí)傳送控制協(xié)議流、音頻實(shí)時(shí)傳送協(xié)議流、音 頻實(shí)時(shí)傳送控制協(xié)議流;將接收到媒體包的時(shí)間記錄作為媒體包的 錄制時(shí)刻;獲取媒體包的屬性,其中,々某體包的屬性至少包括々某體 包類型和媒體包大小;按照預(yù)定格式將媒體包放入緩沖隊(duì)列,并且, 在緩沖隊(duì)列已滿的情況下,將緩沖隊(duì)列中的數(shù)據(jù)寫入文件。
其中,上述預(yù)定格式為按照錄制時(shí)刻、媒體包類型、媒體包 大小、々某體包載荷順序的順序。
此外,上述方法進(jìn)一步包括判斷是否到達(dá)預(yù)先"^殳置的錄制時(shí) 間,如果判斷結(jié)果為是,則結(jié)束錄制。
根據(jù)本發(fā)明的再一方面,提供了一種碼流重建設(shè)備,用于重建 所錄制的碼流。
根據(jù)本發(fā)明實(shí)施例的碼流重建設(shè)備包括讀取模塊,用于從已 經(jīng)錄制的碼流文件中讀取一段時(shí)間長度為T的媒體包放入發(fā)送緩沖 區(qū),并從發(fā)送緩沖區(qū)取出一個(gè)待發(fā)媒體包;第一判斷模塊,用于根 據(jù)待發(fā)媒體包的錄制時(shí)間判斷待發(fā)媒體包是否為第 一個(gè)發(fā)送的媒體包,如果判斷為是,則記錄系統(tǒng)時(shí)刻TO和第一個(gè)發(fā)送的4某體包的 錄制時(shí)刻t0,如果判斷為否,則記錄當(dāng)前系統(tǒng)時(shí)刻Tn和待發(fā)媒體 包錄制時(shí)刻tn;計(jì)算模塊,用于在第一判斷模塊的判斷結(jié)果為否的 情況下,計(jì)算當(dāng)前系統(tǒng)時(shí)刻和發(fā)送第 一個(gè)媒體包的系統(tǒng)時(shí)刻之間的 差值,即,DeltaT-Tn-TO以及計(jì)算待發(fā)媒體包的錄制時(shí)刻與第一個(gè) 發(fā)送的媒體包錄制時(shí)刻的差值,即,Ddtat=tn-tO;第二判斷模塊, 用于判斷Deltat是否大于DeltaT,如果判斷為是,將碼流重建設(shè)備 設(shè)置為睡眠Deltat-DeltaT時(shí)間;發(fā)送模塊,用于發(fā)送待發(fā)^某體包。
其中,上述發(fā)送模塊用于在第一判斷模塊的判斷結(jié)果為是的情 況下,發(fā)送第一個(gè)媒體包、在第二判斷模塊的判斷結(jié)果為否的情況 下,發(fā)送待發(fā)々某體包、以及在碼流重建設(shè)備到達(dá)睡眠時(shí)間后,發(fā)送 待發(fā)媒體包。
此外,上述碼流重建設(shè)備進(jìn)一步包括第三判斷模塊,用于在 讀取模塊讀取待發(fā)媒體包之前,判斷碼流文件中是否為空;第四判 斷模塊,用于在讀取模塊讀取一段時(shí)間長度為T的媒體包放入發(fā)送 緩沖區(qū)后,判斷發(fā)送緩沖區(qū)的媒體包時(shí)間段是否'J 、于發(fā)送緩沖區(qū)預(yù) 定的時(shí)間段t;其中,在第三模塊判斷為是的情況下,讀取模塊讀取 碼流文件中 一段時(shí)間為T的媒體包放入發(fā)送緩沖區(qū),在第三模塊判 斷為否的情況下,結(jié)束操作;并且,在第四模塊判斷為是的情況下, 讀取模塊繼續(xù)讀取一段時(shí)間長度為T的J 某體包。
根據(jù)本發(fā)明的再一方面,4是供了一種碼流重建方法,用于重建 所錄制的碼流。
才艮據(jù)本發(fā)明實(shí)施例的碼流重建方法包括從已經(jīng)錄制的碼流文 件中讀取一段時(shí)間長度為T的媒體包放入發(fā)送緩沖區(qū),并從發(fā)送緩 沖區(qū)取出 一個(gè)待發(fā)媒體包;根據(jù)待發(fā)媒體包的錄制時(shí)間判斷待發(fā)媒 體包是否為第一個(gè)發(fā)送的^某體包,如果判斷為是,則記錄系統(tǒng)時(shí)刻TO和第一個(gè)發(fā)送的媒體包的錄制時(shí)刻tO,如果判讀為否,則記錄當(dāng) 前系統(tǒng)時(shí)刻Tn和4寺發(fā)々某體包錄制時(shí)刻tn;在判斷為否的情況下, 計(jì)算當(dāng)前系統(tǒng)時(shí)刻和發(fā)送第一個(gè)々某體包的系統(tǒng)時(shí)刻之間的差值,即, DeltaT=Tn-TO以及計(jì)算待發(fā)4某體包錄制時(shí)刻與第 一個(gè)發(fā)送的4某體包 錄制時(shí)刻的差j直,即,Deltat=tn-tO;判斷Deltat是否大于DeltaT, 如果判斷為是,則睡眠Deltat-DeltaT時(shí)間;在判斷為第一個(gè)發(fā)送的 々某體包的情況下,發(fā)送第一個(gè)々某體包,以及在判斷DeltaT等于Deltat 的情況下,發(fā)送待發(fā)々某體包,以及在到達(dá)睡眠時(shí)間后,發(fā)送待發(fā)媒 體包。
此外,方法進(jìn)一步包4舌在讀取4寺發(fā)々某體包之前,判斷碼流文 件中是否為空,在判斷為否的情況下,讀取碼流文件中的數(shù)據(jù),在 判斷為是的情況下,結(jié)束操作。
此外,方法進(jìn)一步包括在讀取一段時(shí)間長度為T的媒體包放 入發(fā)送緩沖區(qū)后,判斷發(fā)送緩沖區(qū)的媒體包時(shí)間段是否小于發(fā)送緩 沖區(qū)預(yù)定的時(shí)間段t,如果判斷為是,則繼續(xù)讀取一段時(shí)間長度為T 的々某體包。
根據(jù)本發(fā)明的再一方面,提供了一種碼流錄制及重建設(shè)備,用 于錄制音纟見頻纟某體碼流以及重建所錄制的音纟見頻+某體碼流。
根據(jù)本發(fā)明實(shí)施例的碼流錄制及重建設(shè)備包括至少一個(gè)接收 端口,分別用于接收媒體包中不同合適的碼流,其中,媒體包的格 式包括3見頻實(shí)時(shí)傳送協(xié)i義流、4見頻實(shí)時(shí)傳送控制協(xié)議流、音頻實(shí)時(shí) 傳送協(xié)議流、音頻實(shí)時(shí)傳送控制協(xié)議流;記錄單元,用于記錄接收 到々某體包的錄制時(shí)刻;存儲單元,用于4安照記錄單元記錄的錄制時(shí) 刻存儲媒體包;讀取模塊,用于從已經(jīng)錄制的碼流文件中讀取一段 時(shí)間長度為T的媒體包放入發(fā)送緩沖區(qū),并從發(fā)送緩沖區(qū)取出一個(gè) 待發(fā)媒體包;第一判斷模塊,用于根據(jù)待發(fā)媒體包的錄制時(shí)間判斷待發(fā)媒體包是否為第一個(gè)發(fā)送的媒體包,如果判斷為是,則記錄系
統(tǒng)時(shí)刻TO和第一個(gè)々某體包的錄制時(shí)刻tO, 3o果判讀為否,則i己錄 當(dāng)前系統(tǒng)時(shí)刻Tn和待發(fā)媒體包錄制時(shí)刻tn;計(jì)算模塊,用于在第 一判斷模塊的判斷結(jié)果為否的情況下,計(jì)算當(dāng)前系統(tǒng)時(shí)刻和發(fā)送第 一個(gè)々某體包的系統(tǒng)時(shí)刻之間的差值,即,DeltaT=Tn-TO以及計(jì)算待 發(fā)媒體包的錄制時(shí)刻與第 一個(gè)發(fā)送的媒體包錄制時(shí)刻的差值,即, Deltat=tn-tO;第二判斷才莫塊,用于判斷Deltat是否大于DeltaT,如 果判斷為是,則將碼流錄制及重建設(shè)備設(shè)置為睡眠Deltat-DeltaT時(shí) 間。發(fā)送模塊,用于發(fā)送待發(fā)媒體包。
通過上述技術(shù)方案,能夠利用錄制保存的文件將碼流進(jìn)行重建, 恢復(fù)碼流本身的所有特性,保證錄制前的碼流和利用錄制文件重建 后的碼流屬性一致,能夠?yàn)槎嗝襟w系統(tǒng)提供數(shù)據(jù)源,能夠替代編碼 器降低系統(tǒng)i殳備成本。
本發(fā)明的其它特4i和優(yōu)點(diǎn)將在隨后的i兌明書中闡述,并且,部 分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā) 明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附 圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
附圖用來4是供對本發(fā)明的進(jìn)一 步理解,并且構(gòu)成說明書的 一部
分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的 限制。在附圖中
圖1是根據(jù)本發(fā)明實(shí)施例的碼流錄制設(shè)備的框圖2是才艮據(jù)本發(fā)明實(shí)施例的碼流錄制方法的流程圖3是根據(jù)本發(fā)明實(shí)施例的碼流錄制方法的詳細(xì)處理流程圖;圖4是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)包格式示意圖5是根據(jù)本發(fā)明實(shí)施例的碼流重建設(shè)備的框圖6是才艮據(jù)本發(fā)明實(shí)施例的碼流重建方法的流禾呈圖7是根據(jù)本發(fā)明實(shí)施例的碼流重建方法的詳細(xì)處理的流程
圖8是根據(jù)本發(fā)明實(shí)施例的碼流錄制及重建設(shè)備的框圖; 圖9是根據(jù)本發(fā)明實(shí)施例的碼流錄制及重建設(shè)備的示意圖。
具體實(shí)施例方式
以下結(jié)合附圖對本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,此 處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本 發(fā)明。
裝置實(shí)施例一
在本實(shí)施例中,提供了一種碼流錄制i殳備,用于錄制音—見頻^某 體碼流,圖1是才艮據(jù)本發(fā)明實(shí)施例的碼流錄制設(shè)備的框圖,如圖1 所示,包才舌
至少一個(gè)4矣收端口 10,分別用于接收々某體包中不同4各式的碼 流,其中,々某體包的格式包括3見頻RTP流、#見頻RTCP流、音頻 RTP流、音頻RTCP流;
記錄單元12,用于記錄接收到媒體包的錄制時(shí)刻;存々者單元14,用于按照記錄單元12記錄的錄制時(shí)刻存々者々某體包。
優(yōu)選地,上述存儲單元14進(jìn)一步包括獲取4莫塊,用于獲取媒 體包的屬性,其中,i某體包的屬性至少包括i某體包類型和J 某體包大 小;保存模塊,用于按照錄制時(shí)刻、媒體包類型、媒體包大小、媒 體包載荷的順序?qū)⒚襟w包放入緩沖隊(duì)列,并且,在緩沖隊(duì)列已滿的 情況下,將緩沖隊(duì)列中的數(shù)據(jù)寫入文件。其中,圖4給出了將i某體 包放入緩沖隊(duì)列格式的示意圖。
優(yōu)選地,上述碼流錄制i殳備進(jìn)一步包括
判斷^f莫塊,用于判斷是否到達(dá)預(yù)先設(shè)置的錄制時(shí)間,如果判斷 結(jié)果為是,則碼流錄制設(shè)備結(jié)束錄制。
借助于上述技術(shù)方案,能夠通過碼流錄制設(shè)備進(jìn)行碼流的錄制。
方法實(shí)施例一
在本實(shí)施例中,提供了一種碼流錄制方法,用于錄制音視頻々某 體流,圖2是根據(jù)本發(fā)明實(shí)施例的碼流錄制方法的流程圖,如圖2 所示,包4舌以下步驟
步驟S202,使用至少一個(gè)端口接收媒體包,其中,至少一個(gè)端 口分別用于接收媒體包中的視頻實(shí)時(shí)傳送協(xié)議流、視頻實(shí)時(shí)傳送控 制協(xié)i義流、音頻實(shí)時(shí)傳送協(xié)i義流、音頻實(shí)時(shí)傳送控制協(xié)議流;
步驟S204,將接收到媒體包的時(shí)間記錄作為媒體包的錄制時(shí)
刻;步驟S206,獲取媒體包的屬性,其中,々某體包的屬性至少包括 媒體包類型和媒體包大小;
步驟S208,按照預(yù)定格式將媒體包放入緩沖隊(duì)列,并且,在緩 沖隊(duì)列已滿的情況下,將緩沖隊(duì)列中的數(shù)據(jù)寫入文件,其中,上述 預(yù)定格式為按照錄制時(shí)刻、媒體包類型、媒體包大小、媒體包載 荷順序的順序。
在步驟S208之后,判斷是否到達(dá)預(yù)先設(shè)置的錄制時(shí)間,如果 判斷結(jié)果為是,則結(jié)束錄制。
下面,對上述技術(shù)方案進(jìn)行詳細(xì)說明。圖3是根據(jù)本發(fā)明實(shí)施 例的碼流錄制方法的詳細(xì)處理流程圖,如圖3所示,包括以下步驟
第一步,啟動系統(tǒng)準(zhǔn)備接收多鴻4某體流,包括接收3見頻RTP流、 #見頻RTCP流、音頻RTP流和音頻RTCP流;
第二步,接收到一個(gè)凄史據(jù)包后,確定凄t據(jù)包的屬性,這些屬性 包括錄制時(shí)刻,凄t據(jù)包類型和凄t據(jù)包大小,然后按照附圖4所示的 才各式力文入纟爰沖隊(duì)列;
第三步,判斷緩沖隊(duì)列是否滿,如果沒有滿則繼續(xù)第二步,如 果滿則將緩沖隊(duì)列中的數(shù)據(jù)一次寫入文件;
第四步,判斷錄制時(shí)間是否到,如果到了則結(jié)束錄制,否則繼 續(xù)第二步。
通過上述4支術(shù)方案,實(shí)現(xiàn)了碼流錄制的方法。裝置實(shí)施例二
在本實(shí)施例中,提供了一種碼流重建設(shè)備,用于重建所錄制的
碼流,圖5是根據(jù)本發(fā)明實(shí)施例的碼流重建設(shè)備的框圖。如圖5所 示,包4舌
讀取模塊50,用于從已經(jīng)錄制的碼流文件中讀取一段時(shí)間長度 為T的媒體包放入發(fā)送緩沖區(qū),并從發(fā)送緩沖區(qū)取出 一個(gè)待發(fā)媒體 包;
第 一判斷模塊52,用于根據(jù)待發(fā)媒體包的錄制時(shí)間判斷待發(fā)媒 體包是否為第一個(gè)發(fā)送的々某體包,如果判斷為是,則記錄系統(tǒng)時(shí)刻 TO和第一個(gè)發(fā)送的々某體包的錄制時(shí)刻t0,如果判斷為否,則記錄當(dāng) 前系統(tǒng)時(shí)刻Tn和待發(fā)々某體包錄制時(shí)刻tn;
計(jì)算模塊54,用于在第一判斷模塊的判斷結(jié)果為否的情況下, 計(jì)算當(dāng)前系統(tǒng)時(shí)刻和發(fā)送第 一 個(gè)士某體包的系統(tǒng)時(shí)刻之間的差值,即, DeltaT=Tn-TO以及計(jì)算待發(fā)媒體包的錄制時(shí)刻與第 一個(gè)發(fā)送的媒體 包錄制時(shí)刻的差^f直,即,Deltat=tn-tO;
第二判斷模塊56,用于判斷Deltat是否大于DeltaT,如果判斷 為是,將碼流重建i殳備"i殳置為睡眠Deltat-DeltaT時(shí)間;
發(fā)送模塊58,用于發(fā)送待發(fā)媒體包。
其中,上述發(fā)送模塊58用于在第一判斷模塊52的判斷結(jié)果為 是的情況下,發(fā)送第一個(gè)媒體包、在第二判斷模塊56的判斷結(jié)果為 否的情況下,發(fā)送待發(fā)媒體包、以及在碼流重建設(shè)備到達(dá)睡眠時(shí)間 后,發(fā)送待發(fā)媒體包。
此外,上述碼流重建i殳備進(jìn)一步包括第三判斷模塊,用于在讀取模塊讀取待發(fā)媒體包之前,判斷碼
流文件中是否為空;
第四判斷模塊,用于在讀取模塊讀取一段時(shí)間長度為T的媒體 包放入發(fā)送緩沖區(qū)后,判斷發(fā)送緩沖區(qū)的媒體包時(shí)間段是否小于發(fā) 送緩沖區(qū)預(yù)定的時(shí)間^殳t;
其中,在第三模塊判斷為是的情況下,讀取模塊讀取碼流文件 中 一段時(shí)間為T的媒體包放入發(fā)送緩沖區(qū),在第三模塊判斷為否的 情況下,結(jié)束操作;并且,在第四模塊判斷為是的情況下,讀取模 塊繼續(xù)讀取一段時(shí)間長度為T的媒體包。
通過上述4支術(shù)方案,4昔助于碼流重建i殳備,能夠?qū)崿F(xiàn)碼流的重 建,并且,保證了重建的碼流和源碼流的時(shí)間序列的一致性。
方法實(shí)施例二
在本實(shí)施例中提供了一種碼流重建方法,用于重建所錄制的碼 流。需要iJt明的是,本實(shí)施例中的方法可以與方法實(shí)施例一中提供 的碼流錄制方法結(jié)合使用。圖6是根據(jù)本發(fā)明實(shí)施例的碼流重建方 法的流程圖,如圖6所示,包括以下步驟
步驟S602,從已經(jīng)錄制的碼流文件中讀取一段時(shí)間長度為T的 媒體包放入發(fā)送緩沖區(qū),并從發(fā)送緩沖區(qū)取出一個(gè)待發(fā)媒體包;并 且,在讀取待發(fā)媒體包之前,判斷碼流文件中是否為空,在判斷為 否的情況下,讀取碼流文件中的數(shù)據(jù),在判斷為是的情況下,結(jié)束 操作;
并且,步驟S602之后,進(jìn)一步包括在讀取一段時(shí)間長度為T 的媒體包放入發(fā)送緩沖區(qū)后,判斷發(fā)送緩沖區(qū)的媒體包時(shí)間段是否小于發(fā)送緩沖區(qū)預(yù)定的時(shí)間段t,如果判斷為是,則繼續(xù)讀取一段時(shí)
間長度為T的媒體包。
步驟S604, 4艮據(jù)待發(fā)媒體包的錄制時(shí)間判斷待發(fā)媒體包是否為 第一個(gè)發(fā)送的々某體包,如果判斷為是,則記錄系統(tǒng)時(shí)刻TO和第一 個(gè)發(fā)送的媒體包的錄制時(shí)刻tO,如果判讀為否,則記錄當(dāng)前系統(tǒng)時(shí) 刻Tn和待發(fā)媒體包錄制時(shí)刻tn;
步驟S606,在判斷為否的情況下,計(jì)算當(dāng)前系統(tǒng)時(shí)刻和發(fā)送第 一個(gè)媒體包的系統(tǒng)時(shí)刻之間的差值,即,DeltaT=Tn-TO以及計(jì)算待 發(fā)媒體包錄制時(shí)刻與第 一個(gè)發(fā)送的媒體包錄制時(shí)刻的差值,即, Deltat=tn-tO;
步驟S608,判斷Deltat是否大于DeltaT,如果判斷為是,則睡 眠Deltat-DeltaT時(shí)間;
步驟S610,在判斷為第一個(gè)發(fā)送的々某體包的情況下,發(fā)送第一 個(gè)媒體包,以及在判斷DeltaT等于Deltat的情況下,發(fā)送待發(fā)媒體 包,以及在到達(dá)睡眠時(shí)間后,發(fā)送待發(fā)々某體包。
下面,結(jié)合附圖,對上述技術(shù)方案進(jìn)行詳細(xì)說明。圖7是根據(jù) 本發(fā)明實(shí)施例的碼流重建方法的詳細(xì)處理的流程圖,如圖7所示, 包4舌以下步驟
第一步,準(zhǔn)備好已經(jīng)錄制的碼流文件并且啟動系統(tǒng);
第二步,判斷錄制文件中是否有數(shù)據(jù),如果沒有數(shù)據(jù)則結(jié)束, 如果有數(shù)據(jù)則讀取一段時(shí)間段為T的數(shù)據(jù)放入發(fā)送緩沖區(qū);
第三步,判斷發(fā)送緩沖區(qū)的數(shù)據(jù)包時(shí)間段是否小于t,如果小 于t則繼續(xù)第二步,否則從緩沖區(qū)中取出一個(gè)數(shù)據(jù)包;第四步,判斷該數(shù)據(jù)包是否是第一個(gè)發(fā)送的數(shù)據(jù)包,如果判斷
結(jié)果為是,則記錄系統(tǒng)時(shí)間TO和該包的錄制時(shí)刻tO,并且將該包 發(fā)送到網(wǎng)絡(luò)。如果判斷結(jié)果為否,則執(zhí)行第五步;
第五步,記錄當(dāng)前系統(tǒng)時(shí)刻Tn和該包錄制時(shí)刻tn,并且計(jì)算 當(dāng)前時(shí)刻與發(fā)送第一個(gè)凄t據(jù)包時(shí)刻之間的差4直DeltaT=Tn-TO,再 計(jì)算該包的錄制時(shí)刻與第 一個(gè)數(shù)據(jù)包錄制時(shí)刻之間的差值Deltat = tn —10;
第六步,判斷Deltat是否大于DeltaT,如果大于則睡眠(Deltat -DeltaT)時(shí)間段,否則扭j亍第七步;
第七步,將數(shù)據(jù)包發(fā)送到網(wǎng)絡(luò),然后執(zhí)行第三步。
通過上述4支術(shù)方案,借助于碼流重建方法,能夠?qū)崿F(xiàn)碼流的重 建,并且,保證了重建的碼流和源碼流的時(shí)間序列的一致性。
裝置實(shí)施例三
在本實(shí)施例中,提供了一種碼流錄制及重建設(shè)備,用于錄制音 視頻i某體碼流以及重建所錄制的音視頻:樣體碼流,該設(shè)備可以使用 圖1所示的碼流錄制i殳備和圖5所示的碼流重建i殳備來實(shí)現(xiàn),例如, 圖8是根據(jù)本發(fā)明實(shí)施例的碼流錄制及重建設(shè)備的框圖。如圖8所 示,包4舌
至少一個(gè)接收端口 802,分別用于接收i某體包中不同合適的碼 流,其中,媒體包的格式包括視頻實(shí)時(shí)傳送協(xié)議流、視頻實(shí)時(shí)傳送 控制協(xié)議流、音頻實(shí)時(shí)傳送協(xié)議流、音頻實(shí)時(shí)傳送控制協(xié)議流;
記錄單元804,用于記錄4妄收到々某體包的錄制時(shí)刻;存儲單元806,用于按照記錄單元記錄的錄制時(shí)刻存儲媒體包; 讀取模塊,用于從已經(jīng)錄制的碼流文件中讀取一段時(shí)間長度為T的 媒體包放入發(fā)送緩沖區(qū),并從發(fā)送緩沖區(qū)取出 一個(gè)待發(fā)媒體包;
第一判斷模塊808,用于根據(jù)待發(fā)媒體包的錄制時(shí)間判斷待發(fā) 々某體包是否為第一個(gè)發(fā)送的^某體包,如果判斷為是,則記錄系統(tǒng)時(shí) 刻T0和第一個(gè)々某體包的錄制時(shí)刻t0,如果判讀為否,貝'K己錄當(dāng)前 系統(tǒng)時(shí)刻Tn和^爭發(fā)^某體包錄制時(shí)刻tn;
計(jì)算模塊810,用于在第 一判斷模塊的判斷結(jié)果為否的情況下, 計(jì)算當(dāng)前系統(tǒng)時(shí)刻和發(fā)送第一個(gè)々某體包的系統(tǒng)時(shí)刻之間的差值,即, DeltaT-Tn-TO以及計(jì)算待發(fā)媒體包的錄制時(shí)刻與第 一個(gè)發(fā)送的媒體 包錄制時(shí)刻的差4直,即,Deltat=tn-tO;
第二判斷模塊812,用于判斷Deltat是否大于DeltaT,如果判 斷為是,則將碼流錄制及重建設(shè)備設(shè)置為睡眠Deltat-DeltaT時(shí)間;
發(fā)送模塊814,用于發(fā)送待發(fā)媒體包。
下面,對上述技術(shù)方案進(jìn)行舉例說明。
采用本方法研制的多々某體碼流發(fā)生器UDPCrazy,作為中國移 動多々某體廣播M200復(fù)用器的々某體源,能夠替代編碼器作為碼流的 輸入源,為手機(jī)電視提供多種媒體業(yè)務(wù)。具體實(shí)施如下
第一步,啟動編-馬器并且啟動UDPCrazy錄制功能準(zhǔn)備錄制編 石馬器的碼流,包括-見頻RTP包、視頻RTCP包、音頻RTP包和音頻 RTCP包,同時(shí)i殳置錄制時(shí)間為60分鐘;
第二步,設(shè)置編碼器發(fā)送CCTV-1節(jié)目的碼流,設(shè)置UDPCrazy 錄制生成的碼流文件名為CCTV-l.rtp, UDPCrazy每接收到一個(gè)包,設(shè)置該包的屬性,并且將該包放入緩沖隊(duì)列,如果緩沖隊(duì)列滿,則 將緩沖區(qū)中的媒體包和媒體包的屬性按照錄制文件的格式寫入媒體
文件CCTV-l.rtp,當(dāng)錄制時(shí)間60分鐘到時(shí),停止錄制;
第三步,重復(fù)第二步并且設(shè)置編碼器分別發(fā)送CCTV-2、 CCTV-3、 CCTV-4和CCTV-5節(jié)目的碼流,就可以分別得到錄制的 々某體文件CCTV-l.rtp、 CCTV-2.rtp、 CCTV-3.rtp、 CCTV畫4.rtp和 CCTV畫5.rtp;
第四步,關(guān)閉編石馬器,關(guān)閉UDPCrazy錄制功能,啟動UDPCrazy 碼流重建功能;
第五步,啟動設(shè)備M200復(fù)用器,啟動調(diào)試器,啟動發(fā)射才幾;
第六步,在UDPCrazy上增加一條輸出碼流,設(shè)置這條碼流的 源文件為CCTV-l.rtp, UDPCrazy打開々某體文件CCTV-l.rtp,按照 i某體文件的格式讀取數(shù)據(jù)包,然后確定該數(shù)據(jù)包能否發(fā)送,如果能 夠發(fā)送,則將該包通過網(wǎng)絡(luò)傳送到M200復(fù)用器,在M200復(fù)用器 上增加一個(gè)新業(yè)務(wù)接收UDPCrazy重建后的碼流,并且將重建后的 音頻流和4見頻流復(fù)用后傳送給調(diào)制器,最后通過發(fā)送機(jī)向空中發(fā)射;
第七步,重復(fù)第六步分別i殳置碼流的源文件為CCTV-2.rtp、 CCTV-3.rtp, CCTV-4.rtp和CCTV-5.rtp。 UDPCrazy同時(shí)重建5條々某 體流通過網(wǎng)紹-傳送到M200復(fù)用器;
第八步,啟動接收終端設(shè)備,通過切換業(yè)務(wù)依次可以接收并且 才番》文CCTV畫1、 CCTV-2、 CCTV畫3.rtp、 CCTV-4和CCTV國5的內(nèi)容。
同時(shí),上述才莫塊也可以4姿照圖9所示的碼流錄制及重建i殳備的 示意圖進(jìn)行設(shè)置。如圖9所示,接收模塊處理用于接收碼流,并且 與文件存取模塊向連接,并把錄制的碼流存入文件存取模塊,在重建碼流是,發(fā)送控制模塊從與之相聯(lián)的文件存取模塊中讀取碼流文 件,并發(fā)送出去。其中文件讀取模塊負(fù)責(zé)進(jìn)行媒體文件的存儲。
綜上所述,借助于本發(fā)明的技術(shù)方案,能夠利用錄制保存的文 件將碼流進(jìn)行重建,恢復(fù)碼流本身的所有特性,保證錄制前的碼流 和利用錄制文件重建后的碼流屬性一致,能夠?yàn)槎郕 某體系統(tǒng)提供數(shù) 據(jù)源,能夠替代編碼器降低系統(tǒng)設(shè)備成本。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明, 對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在 本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等, 均應(yīng)包含在本發(fā)明的4呆護(hù)范圍之內(nèi)。
權(quán)利要求
1. 一種碼流錄制設(shè)備,用于錄制音視頻媒體碼流,其特征在于,所述設(shè)備包括至少一個(gè)接收端口,分別用于接收媒體包中不同格式的碼流,其中,所述媒體包的格式包括視頻實(shí)時(shí)傳送協(xié)議流、視頻實(shí)時(shí)傳送控制協(xié)議流、音頻實(shí)時(shí)傳送協(xié)議流、音頻實(shí)時(shí)傳送控制協(xié)議流;記錄單元,用于記錄接收到所述媒體包的錄制時(shí)刻;存儲單元,用于按照所述記錄單元記錄的所述錄制時(shí)刻存儲所述媒體包。
2. 根據(jù)權(quán)利要求1所述的碼流錄制設(shè)備,其特征在于,所述存儲 單元進(jìn)一步包括獲取模塊,用于獲取所述媒體包的屬性,其中,所述媒體 包的屬性至少包括4某體包類型和々某體包大??;保存模塊,用于按照預(yù)定格式將所述媒體包放入緩沖隊(duì) 歹'J,并且,在緩沖隊(duì)列已滿的情況下,將所述緩沖隊(duì)列中的數(shù) 據(jù)寫入文件。
3. 根據(jù)權(quán)利要求2所述的碼流錄制設(shè)備,其特征在于,所述預(yù)定 格式為按照所述錄制時(shí)刻、々某體包類型、々某體包大小、4某體 包載荷的順序。
4. 根據(jù)權(quán)利要求1所述的碼流錄制設(shè)備,其特征在于,所述碼流 錄制設(shè)備進(jìn)一步包括判斷才莫塊,用于判斷是否到達(dá)預(yù)先設(shè)置的錄制時(shí)間,如果 判斷結(jié)果為是,則所述碼流錄制設(shè)備結(jié)束錄制。
5. —種碼流錄制方法,用于錄制音^L頻纟某體流,其特征在于,所 述方法包括^吏用至少一個(gè)端口^妄收4某體包,其中,所述至少一個(gè)端口 分別用于接收所述^某體包中的視頻實(shí)時(shí)傳送協(xié)議流、視頻實(shí)時(shí) 傳送控制協(xié)議流、音頻實(shí)時(shí)傳送協(xié)議流、音頻實(shí)時(shí)傳送控制協(xié) 議流;將接收到所述媒體包的時(shí)間記錄作為所述媒體包的錄制 時(shí)刻;獲取所述纟某體包的屬性,其中,所述纟某體包的屬性至少包 括々某體包類型和媒體包大?。话凑疹A(yù)定格式將所述媒體包放入緩沖隊(duì)列,并且,在緩沖 隊(duì)列已滿的情況下,將所述緩沖隊(duì)列中的數(shù)據(jù)寫入文件。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述預(yù)定格式為 按照所述錄制時(shí)刻、纟某體包類型、纟某體包大小、纟某體包載荷順 序的順序。
7. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法進(jìn)一步包 括判斷是否到達(dá)預(yù)先設(shè)置的錄制時(shí)間,如果判斷結(jié)果為是, 則結(jié)束錄制。
8. —種碼流重建i殳備,用于重建所錄制的碼流,其特征在于,所 述設(shè)備包括讀取模塊,用于從已經(jīng)錄制的碼流文件中讀取一段時(shí)間長度為T的媒體包放入發(fā)送緩沖區(qū),并從所述發(fā)送緩沖區(qū)取出一 個(gè)待發(fā)媒體包;第一判斷模塊,用于根據(jù)所述待發(fā)媒體包的錄制時(shí)間判斷 所述待發(fā)媒體包是否為第 一個(gè)發(fā)送的媒體包,如果判斷為是, 貝'J記錄系統(tǒng)時(shí)刻TO和所述第一個(gè)發(fā)送的J 某體包的錄制時(shí)刻 t0,如果判斷為否,則記錄當(dāng)前系統(tǒng)時(shí)刻Tn和所述待發(fā)媒體 包錄制時(shí)刻tn;計(jì)算模塊,用于在所述第 一判斷模塊的判斷結(jié)果為否的情 況下,計(jì)算當(dāng)前系統(tǒng)時(shí)刻和發(fā)送第 一個(gè)媒體包的系統(tǒng)時(shí)刻之間 的差值,即,DeltaT=Tn-TO以及計(jì)算所述待發(fā)媒體包的錄制 時(shí)刻與所述第 一個(gè)發(fā)送的媒體包錄制時(shí)刻的差值,即, Deltat=tn-tO;第二判斷才莫塊,用于判斷Deltat是否大于DeltaT,如果判 斷為是,將所述碼流重建設(shè)備設(shè)置為睡眠Deltat-DeltaT時(shí)間;發(fā)送模塊,用于發(fā)送所述待發(fā)媒體包。
9. 根據(jù)權(quán)利要求8所述的碼流重建設(shè)備,其特征在于,所述發(fā)送 模塊用于在第一判斷模塊的判斷結(jié)果為是的情況下,發(fā)送所述 第一個(gè)媒體包、在所述第二判斷模塊的判斷結(jié)果為否的情況 下,發(fā)送所述待發(fā)纟某體包、以及在所述碼流重建設(shè)備到達(dá)所述 睡眠時(shí)間后,發(fā)送所述待發(fā)媒體包。
10. 根據(jù)權(quán)利要求8所述的碼流重建設(shè)備,其特征在于,所述碼流 重建設(shè)備進(jìn)一步包括第三判斷模塊,用于在所述讀取模塊讀取所述待發(fā)媒體包 之前,判斷所述碼流文件中是否為空;第四判斷模塊,用于在讀取模塊讀取一段所述時(shí)間長度為T的媒體包放入所述發(fā)送緩沖區(qū)后,判斷所述發(fā)送緩沖區(qū)的媒 體包時(shí)間段是否小于所述發(fā)送緩沖區(qū)預(yù)定的時(shí)間段t;其中,在第三模塊判斷為是的情況下,所述讀取模塊讀取 所述碼流文件中 一段時(shí)間為T的媒體包放入所述發(fā)送緩沖區(qū), 在第三模塊判斷為否的情況下,結(jié)束操作;并且,在第四模塊 判斷為是的情況下,所述讀取模塊繼續(xù)讀取一段時(shí)間長度為T 的J 某體包。
11.一種碼流重建方法,用于重建所錄制的碼流,其特征在于,所 述方法包括從已經(jīng)錄制的碼流文件中讀取一段時(shí)間長度為T的媒體 包放入發(fā)送緩沖區(qū),并從所述發(fā)送緩沖區(qū)取出一個(gè)待發(fā)媒體包;否為第一個(gè)發(fā)送的々某體包,如果判斷為是,則記錄系統(tǒng)時(shí)刻TO和所述第一個(gè)發(fā)送的媒體包的錄制時(shí)刻tO,如果判讀為否, 則記錄當(dāng)前系統(tǒng)時(shí)刻Tn和所述4寺發(fā)々某體包錄制時(shí)刻tn;在判斷為否的情況下,計(jì)算當(dāng)前系統(tǒng)時(shí)刻和發(fā)送第一個(gè)媒 體包的系統(tǒng)時(shí)刻之間的差值,即,DeltaT=Tn-TO以及計(jì)算所 述待發(fā)媒體包錄制時(shí)刻與所述第 一個(gè)發(fā)送的媒體包錄制時(shí)刻 的差l直,即,Deltat=tn-tO;判斷Deltat是否大于DeltaT,如果判斷為是,則睡眠 Deltat-DeltaT時(shí)間;在判斷為所述第一個(gè)發(fā)送的々某體包的情況下,發(fā)送所述第 一個(gè)i某體包,以及在判斷DeltaT等于Deltat的情況下,發(fā)送 所述待發(fā)々某體包,以及在到達(dá)所述睡眠時(shí)間后,發(fā)送所述待發(fā) 媒體包。
12. 4艮據(jù)4又利要求11所述的方法,其特4正在于,所述方法進(jìn)一步 包括在讀取所述待發(fā)媒體包之前,判斷所述碼流文件中是否為 空,在判斷為否的情況下,讀取所述碼流文件中的凄t據(jù),在判 斷為是的情況下,結(jié)束操作。
13. 才艮據(jù)斥又利要求11所述的方法,其特;f正在于,所述方法進(jìn)一步 包括在讀取一段所述時(shí)間長度為T的媒體包放入所述發(fā)送緩 沖區(qū)后,判斷所述發(fā)送緩沖區(qū)的媒體包時(shí)間段是否小于所述發(fā) 送緩沖區(qū)預(yù)定的時(shí)間段t,如果判斷為是,則繼續(xù)讀取一段時(shí) 間長度為T的媒體包。
14. 一種碼流錄制及重建i殳備,用于錄制音4見頻々某體碼流以及重建 所錄制的音^L頻々某體碼流,其特;f正在于,所述i殳備包括至少一個(gè)接收端口 ,分別用于接收々某體包中不同合適的碼 流,其中,所述媒體包的格式包括視頻實(shí)時(shí)傳送協(xié)議流、視頻 實(shí)時(shí)傳送控制協(xié)i義流、音頻實(shí)時(shí)傳送協(xié),漢流、音頻實(shí)時(shí)傳送控 制十辦i義流;記錄單元,用于記錄4妄收到所述纟某體包的錄制時(shí)刻;存儲單元,用于按照所述記錄單元記錄的所述錄制時(shí)刻存 儲所述4某體包;讀取才莫塊,用于乂人已經(jīng)錄制的碼流文件中讀取一,殳時(shí)間長 度為T的媒體包放入發(fā)送緩沖區(qū),并從所述發(fā)送緩沖區(qū)取出一 個(gè)待發(fā)媒體包;第 一判斷模塊,用于根據(jù)所述待發(fā)媒體包的錄制時(shí)間判斷 所述待發(fā)纟某體包是否為第 一個(gè)發(fā)送的媒體包,如果判斷為是, 則記錄系統(tǒng)時(shí)刻TO和所述第一個(gè)々某體包的錄制時(shí)刻t0,如果判讀為否,則記錄當(dāng)前系統(tǒng)時(shí)刻Tn和所述4寺發(fā)+某體包錄制時(shí) 刻tn;計(jì)算模塊,用于在所述第一判斷模塊的判斷結(jié)果為否的情 況下,計(jì)算當(dāng)前系統(tǒng)時(shí)刻和發(fā)送第 一 個(gè)媒體包的系統(tǒng)時(shí)刻之間 的差值,即,DeltaT=Tn-TO以及計(jì)算所述待發(fā)媒體包的錄制 時(shí)刻與所述第 一 個(gè)發(fā)送的媒體包錄制時(shí)刻的差值,即, Deltat=tn-tO;第二判斷模塊,用于判斷Deltat是否大于DeltaT,如果判 斷為是,則將所述碼流錄制及重建i殳備i殳置為睡眠 Deltat-DeltaT時(shí)間;發(fā)送模塊,用于發(fā)送所述待發(fā)々某體包。
全文摘要
本發(fā)明公開了一種碼流錄制、重建方法及設(shè)備、碼流錄制及重建設(shè)備,其中,碼流錄制設(shè)備包括至少一個(gè)接收端口,分別用于接收媒體包中不同格式的碼流,其中,媒體包的格式包括視頻實(shí)時(shí)傳送協(xié)議流、視頻實(shí)時(shí)傳送控制協(xié)議流、音頻實(shí)時(shí)傳送協(xié)議流、音頻實(shí)時(shí)傳送控制協(xié)議流;記錄單元,用于記錄接收到媒體包的錄制時(shí)刻;存儲單元,用于按照記錄單元記錄的錄制時(shí)刻存儲媒體包。通過上述技術(shù)方案,能夠保證錄制前的碼流和利用錄制文件重建后的碼流屬性一致,并且為多媒體系統(tǒng)提供數(shù)據(jù)源、替代編碼器降低系統(tǒng)設(shè)備成本。
文檔編號H04L1/00GK101286993SQ200810111438
公開日2008年10月15日 申請日期2008年6月12日 優(yōu)先權(quán)日2008年6月12日
發(fā)明者張建強(qiáng), 童登金, 陳光亮 申請人:中興通訊股份有限公司