本申請涉及數(shù)字視頻拼接技術(shù),尤其涉及數(shù)字視頻碼流的解碼方法、拼接方法和裝置。
背景技術(shù):碼流拼接技術(shù)具有廣泛的應(yīng)用場景。比如,運營商可以根據(jù)用戶偏好選擇個性化廣告,通過碼流拼接技術(shù)將節(jié)目中的普遍性廣告替換成個性化廣告,提高廣告的命中率和收視效果,從而提高用戶體驗和運營商營收。在視頻編碼中,一段視頻內(nèi)容可以劃分為一個或多個編碼的視頻序列(CVS:CodedVideoSequence);一個CVS包含多個圖片(Picture);一個圖片又可以劃分成一個或多個片(Slice);同一時刻的一個或多個編碼的圖片稱為一個訪問單元(AU:AccessUnit)。編碼器對視頻內(nèi)容編碼后,輸出的視頻碼流以網(wǎng)絡(luò)抽象層單元(NALU:NetworkAbstractionLayerUnit)為單位組成。NALU分為兩類:視頻編碼層(VCL:VideoCodingLayer)NALU和非VCLNALU。其中一個VCLNALU中是一個編碼片(codedslice),因此通常也稱為編碼片NALU;而非VCLNALU中是元數(shù)據(jù)和附加信息。非VCLNALU又可以分為:參數(shù)集NALU:用于封裝參數(shù)集的NALU,補充增強信息(SEI:SupplementalEnhancementInformation)NALU:用于封裝SEI消息的NALU等。其中參數(shù)集NALU中包含參數(shù)集以及該參數(shù)集對應(yīng)的參數(shù)集標(biāo)識(ID:Identifier),如果該參數(shù)集還引用了其他的參數(shù)集,則該參數(shù)集中還包含引用參數(shù)集對應(yīng)的參數(shù)集ID。參數(shù)集包含被多個VCLNALU共享的頭信息,如檔次(profile)和層級(level)信息、視頻色彩格式信息、視頻分辨率信息等等。參數(shù)集可以分為多種類型,不同類型的參數(shù)集包含不同類型的共享頭信息。一個視頻碼流可以包含一個或多個同一類型的參數(shù)集。一個參數(shù)集包含一個參數(shù)集ID,并且參數(shù)集ID的取值在一個碼流的同一類型的參數(shù)集中是唯一的。將共享頭信息放到參數(shù)集后,相應(yīng)的VCLNALU通過參數(shù)集ID引用參數(shù)集中的頭信息。參數(shù)集由視頻編碼標(biāo)準(zhǔn)H.264引入,并被之后的視頻編碼標(biāo)準(zhǔn)廣泛使用。引入?yún)?shù)集的目的是為了頭信息的魯棒(robust)和高效傳輸。引入?yún)?shù)集后,被多個VCLNALU共享的頭信息只需要傳輸一次,因此提高了傳輸效率。不同的視頻編碼標(biāo)準(zhǔn)定義的參數(shù)集不同。H.264標(biāo)準(zhǔn)定義的參數(shù)集有:序列參數(shù)集(SPS:SequenceParameterSet)和PPS。動態(tài)圖片專家組(MPEG:MovingPicturesExpertsGroup)正在制定的高效視頻編碼(HEVC:HighEfficiencyVideoCoding)標(biāo)準(zhǔn)定義的參數(shù)集除了SPS和PPS外,還包括視頻參數(shù)集(VPS:VideoParameterSet)、自適應(yīng)參數(shù)集(APS:AdaptationParameterSet)兩種參數(shù)集,MPEG正在制定的三維視頻編碼(3DVC:Three-DimensionalVideoCoding)標(biāo)準(zhǔn)定義的參數(shù)集除了SPS和PPS外,還包括深度范圍參數(shù)集(DRPS:DepthRangeParameterSet)。但不同的視頻編碼標(biāo)準(zhǔn)定義的參數(shù)集都可以分為兩類:視頻碼流中VCLNALU直接引用的參數(shù)集和VCLNALU間接引用的參數(shù)集。如果參數(shù)集是VCLNALU直接引用的參數(shù)集,VCLNALU中包含該參數(shù)集的參數(shù)集ID;如果參數(shù)集是VCLNALU間接引用的參數(shù)集,VCLNALU中不包含該參數(shù)集的參數(shù)集ID,而是在VCLNALU的直接引用的參數(shù)集或者間接引用的參數(shù)集中包含該參數(shù)集的參數(shù)集ID。在視頻拼接技術(shù)中,碼流(Bitstream)拼接技術(shù)為拼接器分別接收第一視頻碼流(比如個人性廣告內(nèi)容等)和第二視頻碼流(比如終端請求觀看的節(jié)目等)。拼接器在為終端輸出第二視頻碼流的過程中,在拼接時段把第一視頻碼流發(fā)送給終端,在其他時段將第二視頻碼流發(fā)給終端。第二視頻和第一視頻使用不同編碼器(第二編碼器,第一編碼器)獨立編碼。由于參數(shù)集標(biāo)識(ID:Identifier)采用熵編碼,參數(shù)集ID的值越小,表示參數(shù)集ID所需的比特數(shù)越少,因此編碼器分配參數(shù)集ID時,往往從0值開始分配。因此兩個編碼器給同一類型的參數(shù)集分配的參數(shù)集ID可能相同。第二視頻碼流與第一視頻碼流中同一類型參數(shù)集的參數(shù)集ID相同,則輸出視頻碼流中的參數(shù)集ID不能唯一標(biāo)識一個參數(shù)集。當(dāng)參數(shù)集采用帶外傳輸方式時,會導(dǎo)致解碼時使用錯誤的參數(shù)集,從而導(dǎo)致解碼錯誤。比如,一個第一視頻的視頻編碼層(VCL:VideoCodingLayer)的網(wǎng)絡(luò)抽象層單元(NALU:networkAbstractionLayerUnit)中的圖片參數(shù)集(PPS:PictureParameterSet)ID與第二視頻的某個PPS的PPSID相同,解碼器可能使用該第二視頻的PPS對該第一視頻VCLNALU進(jìn)行解碼,從而導(dǎo)致解碼錯誤。為了解決上述問題,現(xiàn)有技術(shù)由拼接器對第一視頻碼流中的參數(shù)集ID進(jìn)行修改,保證輸出視頻碼流中參數(shù)集ID的唯一性。終端接收輸出視頻碼流,對各VCLNALU進(jìn)行解碼,根據(jù)其中的參數(shù)集ID從通過帶外方式獲得的參數(shù)集中獲取VCLNALU引用的的參數(shù)集,使用這些參數(shù)集對VCLNALU進(jìn)行解碼。如前所述,由于參數(shù)集ID采用熵編碼,因此現(xiàn)有技術(shù)要求拼接器具備熵解碼和熵編碼能力。而現(xiàn)有網(wǎng)絡(luò)中的拼接器通常不具備熵解碼和熵編碼能力,熵解碼和熵編碼操作需要較多的計算資源和存儲資源,而參數(shù)集ID在視頻碼流中的出現(xiàn)非常頻繁,即拼接器需要進(jìn)行頻繁的熵解碼和熵編碼操作。因此為了讓拼接器具備熵解碼和熵編碼能力,需要在現(xiàn)有網(wǎng)絡(luò)中的拼接器上增加額外的硬件資源,或者使用新的拼接器對現(xiàn)有網(wǎng)絡(luò)中的拼接器進(jìn)行替換,從而給運營商額外增加很多運營成本。
技術(shù)實現(xiàn)要素:本發(fā)明提出一種數(shù)字視頻碼流的解碼、拼接方法和裝置,不但當(dāng)終端在解碼第一視頻碼流時,能夠保證使用正確的參數(shù)集,而且不需要在現(xiàn)有網(wǎng)絡(luò)的拼接器上增加額外的硬件資源,或者使用新的拼接器對現(xiàn)有網(wǎng)絡(luò)中的拼接器進(jìn)行替換,相比于現(xiàn)有技術(shù)中所需的運營成本更少。本發(fā)明實施例第一方面提供一種數(shù)字視頻碼流的解碼方法,包括:接收第一視頻碼流和第一視頻的參數(shù)集標(biāo)識修改消息,所述第一視頻的參數(shù)集標(biāo)識修改消息中包含第一視頻的參數(shù)集標(biāo)識ID修改信息;根據(jù)所述第一視頻的參數(shù)集ID修改信息獲取用于解碼網(wǎng)絡(luò)抽象層單元的視頻編碼層VCLNALU的參數(shù)集的參數(shù)集ID;根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼所述VCLNALU的參數(shù)集;根據(jù)所述用于解碼VCLNALU的參數(shù)集解碼所述VCLNALU,并輸出解碼后的第一視頻。結(jié)合本發(fā)明實施例第一方面的第一實現(xiàn)方式,所述參數(shù)集ID修改信息包括待修改的參數(shù)集ID的參數(shù)集類型和與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移;所述第一視頻碼流中包含用于解碼所述VCLNALU的參數(shù)集的原參數(shù)集ID;所述根據(jù)所述第一視頻的參數(shù)集ID修改信息獲取用于解碼VCLNALU的參數(shù)集的參數(shù)集ID具體為:根據(jù)所述待修改的參數(shù)集ID的參數(shù)集類型從所述第一視頻碼流中獲取與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的所述原參數(shù)集ID;根據(jù)所述原參數(shù)集ID以及與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移獲取與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。結(jié)合本發(fā)明實施例第一方面的第二實現(xiàn)方式,所述參數(shù)集ID修改信息包括待修改的參數(shù)集ID的參數(shù)集類型和用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;所述根據(jù)所述第一視頻的參數(shù)集ID修改信息獲取所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID具體為:根據(jù)所述待修改的參數(shù)集ID的參數(shù)集類型從所述參數(shù)集ID修改信息中獲取與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。合本發(fā)明實施例第一方面的第三實現(xiàn)方式,所述參數(shù)集ID修改信息包括待修改的參數(shù)集ID的參數(shù)集類型的原參數(shù)集ID,以及與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;所述根據(jù)所述第一視頻的參數(shù)集ID修改信息獲取所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID具體為:根據(jù)所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID獲取所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。本發(fā)明實施例第一方面的第四實現(xiàn)方式,所述第一視頻參數(shù)集ID修改信息為待修改的參數(shù)集ID的參數(shù)集類型,該方法進(jìn)一步包括:向拼接器發(fā)送實時傳輸控制協(xié)議RTCP請求,所述RTCP請求包含所述待修改參數(shù)集ID的參數(shù)集類型;接收所述拼接器返回的RTCP響應(yīng),所述RTCP響應(yīng)中攜帶與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移或與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,或者與待修改的參數(shù)集ID的參數(shù)集類型的所述原參數(shù)集ID以及與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;所述根據(jù)所述第一視頻的參數(shù)集ID修改信息獲取所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID具體為:根據(jù)所述RTCP響應(yīng)中攜帶的與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移或與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,或者根據(jù)與待修改的參數(shù)集ID的參數(shù)集類型的原參數(shù)集ID以及與原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,從所述參數(shù)集ID修改信息中獲取與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。結(jié)合本發(fā)明的任意實現(xiàn)方式的第一可能,所述根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼所述VCLNALU的參數(shù)集之前該方法進(jìn)一步包括:通過帶外方式獲取第一視頻的修改后的參數(shù)集,所述修改后的參數(shù)集中的參數(shù)集ID為用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;或通過帶外方式獲取第一視頻的原參數(shù)集以及用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,所述第一視頻的原參數(shù)集中攜帶所述原參數(shù)集ID;根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID修改所述原參數(shù)集ID。結(jié)合本發(fā)明的任意實現(xiàn)方式的第二可能,所述待修改的參數(shù)集ID的參數(shù)集類型為VCLNALU直接引用的參數(shù)集類型,所述根據(jù)所述第一視頻的參數(shù)集ID修改信息獲取用于解碼VCLNALU的參數(shù)集的參數(shù)集ID具體為:獲取與所述VCLNALU直接引用的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的VCLNALU直接引用的參數(shù)集的參數(shù)集ID,該方法進(jìn)一步包括:根據(jù)獲取的用于解碼VCLNALU的VCLNALU直接引用的參數(shù)集的參數(shù)集ID獲取所述第一視頻碼流中VCLNALU直接引用的參數(shù)集;從所述直接引用的參數(shù)集中獲取用于解碼VCLNALU的VCLNALU間接引用的參數(shù)集的參數(shù)集ID;或,所述待修改的參數(shù)集ID的參數(shù)集類型為所述VCLNALU直接引用的參數(shù)集類型和所述VCLNALU間接引用的參數(shù)集類型,所述根據(jù)所述第一視頻的參數(shù)集ID修改信息獲取用于解碼VCLNALU的參數(shù)集的參數(shù)集ID具體為:分別根據(jù)所述第一視頻的參數(shù)集ID修改信息獲取與所述VCLNALU直接引用的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的VCLNALU的直接引用的參數(shù)集的參數(shù)集ID,以及獲取與所述VCLNALU間接引用的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的VCLNALU間接引用的參數(shù)集的參數(shù)集ID;所述根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼所述VCLNALU的參數(shù)集具體為:根據(jù)獲取的直接引用的參數(shù)集的參數(shù)集ID以及間接引用的參數(shù)集的參數(shù)集ID獲取所述VCLNALU的直接引用的參數(shù)集以及所述VCLNALU的間接引用的參數(shù)集;所述根據(jù)所述用于解碼VCLNALU的參數(shù)集解碼所述VCLNALU,并輸出解碼后的第一視頻具體為:根據(jù)獲取的所述VCLNALU的直接引用的參數(shù)集以及所述VCLNALU的間接引用的參數(shù)集解碼所述VCLNALU,并輸出解碼后的第一視頻。本發(fā)明實施例第二方面還提供了一種數(shù)字視頻碼流的拼接的方法,包括:從應(yīng)用服務(wù)器接收第一視頻碼流的信息,所述第一視頻碼流的信息包括第一視頻的參數(shù)集修改信息;根據(jù)所述第一視頻參數(shù)集修改信息向終端發(fā)送第一視頻碼流和第一視頻的參數(shù)集標(biāo)識修改消息,所述第一視頻的參數(shù)集標(biāo)識修改消息攜帶第一視頻的參數(shù)集標(biāo)識ID修改信息,以便于終端根據(jù)第一視頻的參數(shù)集ID修改信息獲取用于解碼網(wǎng)絡(luò)抽象層單元的視頻編碼層VCLNALU的參數(shù)集的參數(shù)集ID,以及終端根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼VCLNALU的參數(shù)集,以及終端根據(jù)所述用于解碼VCLNALU的參數(shù)集解碼所述VCLNALU,并輸出解碼后的第一視頻。結(jié)合本發(fā)明實施例第二方面的第一實現(xiàn)方式,第一視頻的參數(shù)集ID修改信息為待修改的參數(shù)集ID的參數(shù)集類型,該方法進(jìn)一步包括:接收終端發(fā)送的實時傳輸控制協(xié)議RTCP請求,所述RTCP請求包含所述待修改參數(shù)集ID的參數(shù)集類型;向終端返回RTCP響應(yīng),所述RTCP響應(yīng)中攜帶與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移、或攜帶與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID、或者攜帶與待修改的參數(shù)集ID的參數(shù)集類型的所述原參數(shù)集ID以及與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。結(jié)合本發(fā)明實施例第二方面的第二實現(xiàn)方式,所述參數(shù)集ID修改信息包括待修改的參數(shù)集ID的參數(shù)集類型和與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移,或包括所述待修改的參數(shù)集ID的參數(shù)集類型和用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,或包括待修改的參數(shù)集ID的參數(shù)集類型的所述原參數(shù)集ID以及與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,所述參數(shù)集ID修改信息進(jìn)一步包含修改生效標(biāo)志,所述根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼所述VCLNALU的參數(shù)集之前,該方法進(jìn)一步包括:向終端發(fā)送所述第二視頻碼流的時發(fā)送不生效的第一視頻的參數(shù)集標(biāo)識修改消息;接收終端發(fā)送的第二媒體描述信息獲取請求;向終端返回第二媒體描述信息獲取響應(yīng),所述第二媒體描述信息獲取響應(yīng)中攜帶第一視頻的修改后的參數(shù)集,所述第一視頻的修改后的參數(shù)集中的參數(shù)集ID為用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。本發(fā)明實施例第三方面提供了一種數(shù)字視頻碼流的拼接方法,包括:接收第一內(nèi)容服務(wù)器發(fā)送的第一視頻的媒體描述信息,所述第一視頻的媒體描述信息攜帶第一視頻的原參數(shù)集和第一視頻的參數(shù)集的類型及與各類型對應(yīng)的參數(shù)集的原參數(shù)集ID;接收第二內(nèi)容服務(wù)器發(fā)送的第二視頻的媒體描述信息,所述第二視頻的媒體描述信息中攜帶第二視頻的參數(shù)集第二視頻參數(shù)集的類型及與各類型對應(yīng)的參數(shù)集的參數(shù)集ID;確定同一類型的第一視頻的參原參數(shù)集ID與第二視頻的參數(shù)集的參數(shù)集ID相同,以及確定第一視頻的參數(shù)集標(biāo)識修改信息;向拼接器發(fā)送第一視頻流的信息,所述第一視頻碼流的信息包括第一視頻的參數(shù)集標(biāo)識修改信息,所述第一視頻的參數(shù)集修改標(biāo)識信息攜帶在第一視頻的參數(shù)集標(biāo)識修改消息中,以便于拼接器將所述第一視頻的參數(shù)集標(biāo)識修改消息發(fā)送給終端,以及以便于終端根據(jù)所述第一視頻的參數(shù)集標(biāo)識修改消息解碼并輸出第一視頻。本發(fā)明實施例第四方面提供了一種數(shù)字視頻碼流的解碼裝置包括:接收模塊,用于接收第一視頻碼流和第一視頻的參數(shù)集標(biāo)識修改消息,所述第一視頻的參數(shù)集標(biāo)識修改消息中包含第一視頻的參數(shù)集標(biāo)識ID修改信息;第一獲取模塊,用于根據(jù)所接收模塊接收的所述第一視頻的參數(shù)集ID修改信息獲取用于解碼網(wǎng)絡(luò)抽象層單元的視頻編碼層VCLNALU的參數(shù)集的參數(shù)集ID;第二獲取模塊,用于根據(jù)所述第一獲取模塊獲取的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼所述VCLNALU的參數(shù)集;解碼輸出模塊,用于根據(jù)所述第二獲取模塊獲取的所述用于解碼VCLNALU的參數(shù)集解碼所述VCLNALU,并輸出解碼后的第一視頻。結(jié)合本發(fā)明實施例第四方面的第一實現(xiàn)方式,所述參數(shù)集ID修改信息包括待修改的參數(shù)集ID的參數(shù)集類型和與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移;所述第一視頻碼流中包含用于解碼所述VCLNALU的參數(shù)集的原參數(shù)集ID;所述第一獲取模塊具體用于:根據(jù)所述接收模塊接收的所述待修改的參數(shù)集ID的參數(shù)集類型從所述第一碼流中獲取與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的所述原參數(shù)集ID;根據(jù)所述原參數(shù)集ID以及所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移從獲取與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。結(jié)合本發(fā)明實施例第四方面的第二實現(xiàn)方式,所述參數(shù)集ID修改信息包括待修改的參數(shù)集ID的參數(shù)集類型和用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,所述第一獲取模塊具體用于:根據(jù)所述接收模塊接收的待修改的參數(shù)集ID的參數(shù)集類型從所述參數(shù)集ID修改信息中獲取與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。合本發(fā)明實施例第四方面的第三實現(xiàn)方式,所述參數(shù)集ID修改信息為待修改的參數(shù)集ID的參數(shù)集類型的原參數(shù)集ID、與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;所述第一獲取模塊具體用于:根據(jù)所述接收模塊接收的所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的所述原參數(shù)集ID獲取所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。本發(fā)明實施例第五方面提供了一種數(shù)字視頻碼流的拼接裝置,包括:接收模塊,用于從應(yīng)用服務(wù)器接收第一視頻碼流的信息,所述第一視頻碼流信息包括第一視頻的參數(shù)集修改信息;發(fā)送模塊,用于根據(jù)所述接收模塊接收的所述第一視頻參數(shù)集修改信息向終端發(fā)送第一視頻碼流和第一視頻的參數(shù)集標(biāo)識修改消息,所述第一視頻的參數(shù)集標(biāo)識修改消息攜帶第一視頻的參數(shù)集標(biāo)識ID修改信息,以便于終端根據(jù)第一視頻的參數(shù)集ID修改信息獲取用于解碼網(wǎng)絡(luò)抽象層單元的視頻編碼層VCLNALU的參數(shù)集的參數(shù)集ID,以及終端根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼所述VCLNALU的參數(shù)集,以及終端根據(jù)所述用于解碼VCLNALU的參數(shù)集解碼所述VCLNALU,并輸出解碼后的第一視頻。本發(fā)明實施例第五方面提供了一種數(shù)字視頻碼流的拼接裝置,包括:第一接收模塊,用于接收第一內(nèi)容服務(wù)器發(fā)送的第一視頻的媒體描述信息,所述第一視頻的媒體描述信息攜帶第一視頻的原參數(shù)集和第一視頻的參數(shù)集的類型及與各類型對應(yīng)的參數(shù)集的原參數(shù)集ID;第二接收模塊,用于接收第二內(nèi)容服務(wù)器發(fā)送的第二視頻的媒體描述信息,所述第二視頻的媒體描述信息中攜帶第二視頻的參數(shù)集、第二視頻參數(shù)集的類型及與各類型對應(yīng)的參數(shù)集的參數(shù)集ID;確定模塊,用于確定同一類型的所述第一接收模塊接收的第一視頻的原參數(shù)集ID與所述第二接收模塊接收的第二視頻參數(shù)集ID相同,以及確定第一視頻的參數(shù)集標(biāo)識修改信息;發(fā)送模塊,用于向拼接器發(fā)送第一視頻流的信息,所述第一視頻碼流的信息包括第一視頻的參數(shù)集修改信息,所述第一視頻的參數(shù)集修改信息攜帶在第一視頻的參數(shù)集標(biāo)識修改消息中,以便于拼接器將所述第一視頻的參數(shù)集標(biāo)識修改消息發(fā)送給終端,以及以便于終端根據(jù)所述第一視頻的參數(shù)集標(biāo)識修改消息解碼并輸出第一視頻。由以上實施例可知,通過第一視頻的參數(shù)集標(biāo)識修改消息中包含第一視頻的參數(shù)集標(biāo)識ID修改信息,以便終端根據(jù)參數(shù)集標(biāo)識ID修改信息解碼輸出第一視頻,從而無需拼接器對第一視頻碼流的各VCLNALU中的參數(shù)集ID進(jìn)行修改,不但當(dāng)終端在解碼第一視頻碼流時,能夠保證使用正確的參數(shù)集,而且不需要在現(xiàn)有網(wǎng)絡(luò)的拼接器上增加額外的硬件資源,或者使用新的拼接器對現(xiàn)有網(wǎng)絡(luò)中的拼接器進(jìn)行替換,相比于現(xiàn)有技術(shù)中所需的運營成本更少。附圖說明為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例提供的典型數(shù)字視頻碼流的拼接的網(wǎng)絡(luò)系統(tǒng)架構(gòu)圖;圖2為本發(fā)明實施例提供的輸出視頻碼流與第二視頻碼流、第一視頻碼流的關(guān)系示意圖;圖3為本發(fā)明實施例提供的遵循HEVC標(biāo)準(zhǔn)的視頻碼流的VCLNALU與參數(shù)集之間引用的示意圖;圖4為本發(fā)明實施例提供的數(shù)字視頻碼流的解碼方法的流程圖;圖5為本發(fā)明實施例提供的數(shù)字視頻碼流的拼接方法的流程圖;圖6為本發(fā)明實施例提供的另一數(shù)字視頻碼流的拼接方法的流程圖;圖7為本發(fā)明實施例還提供的另一數(shù)字視頻碼流的拼接方法的流程圖;圖8為本發(fā)明實施例提供的實時傳輸控制協(xié)議參數(shù)集標(biāo)識修改信息請求(RTCPPSIC-R:Real-timeTransportControlProtocolParameterSetIDChange-Request)消息的結(jié)構(gòu)示意圖;圖9為本發(fā)明實施例提供的反饋控制信息(FCI:FeedbackControlInformation)的結(jié)構(gòu)示意圖;圖10為本發(fā)明實施例提供的另一反饋控制信息(FCI:FeedbackControlInformation)的結(jié)構(gòu)示意圖;圖11為本發(fā)明實施例提供的又一反饋控制信息(FCI:FeedbackControlInformation)的結(jié)構(gòu)示意圖;圖12為本發(fā)明實施例提供的又一反饋控制信息(FCI:FeedbackControlInformation)的結(jié)構(gòu)示意圖;圖13為本發(fā)明實例提供的數(shù)字視頻碼流的拼接方法的流程圖;圖14為本發(fā)明實例提供的數(shù)字視頻碼流的拼接方法的流程圖;圖15為本發(fā)明實施例提供的數(shù)字視頻碼流的解碼裝置的結(jié)構(gòu)示意圖;圖16為本發(fā)明實施例提供的數(shù)字視頻碼流的拼接裝置的結(jié)構(gòu)示意圖;圖17為本發(fā)明實施例提供的數(shù)字視頻碼流的拼接裝置的結(jié)構(gòu)示意圖;圖18為本發(fā)明實施例提供的數(shù)字視頻碼流的解碼裝置或拼接裝置的結(jié)構(gòu)示意圖。具體實施方式為使本申請實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。另外,本文中術(shù)語“和/或”,僅僅是一種描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。另外,本文中字符“/”,一般表示前后關(guān)聯(lián)對象是一種“或”的關(guān)系。圖1為本發(fā)明實施例提供的典型的碼流拼接系統(tǒng)架構(gòu)圖,主要包括第二編碼器、第一編碼器、第二內(nèi)容服務(wù)器,第一內(nèi)容服務(wù)器、拼接器、路由器和終端。其中,第二編碼器和第二內(nèi)容服務(wù)器連接,第二內(nèi)容服務(wù)器將由第二編碼器輸出的視頻碼流作為第二視頻碼流提供給拼接器。第一編碼器和第一內(nèi)容服務(wù)器連接,第一內(nèi)容服務(wù)器將由第一編碼器輸出的視頻碼流作為第一視頻碼流提供給拼接器。拼接器:分別從第二內(nèi)容服務(wù)器和第一內(nèi)容服務(wù)器接收第二視頻碼流和第一視頻碼流。在拼接時段,把第一視頻碼流發(fā)送給終端,在其他時段將第二視頻碼流發(fā)給終端。本發(fā)明實施例將拼接器發(fā)送給終端的視頻碼流(包含第二視頻碼流和第一視頻碼流)統(tǒng)稱為輸出視頻碼流。參考為本發(fā)明實施例提供的輸出視頻碼流與第二視頻碼流、第一視頻碼流的關(guān)系示意圖即圖2。在拼接時段,輸出視頻碼流為第一視頻碼流;在其他時段,輸出視頻碼流為第二視頻碼流。將拼接時段的起點即開始輸出第一視頻碼流的時間點稱為拼接點;將拼接時段的終點即結(jié)束輸出第一視頻碼流的時間點稱為返回點。拼接器通常位于互聯(lián)網(wǎng)協(xié)議(IP,InternetProtocol)網(wǎng)絡(luò)邊緣的物理實體上,比如路由器、邊緣媒體服務(wù)器。這些物理實體通常不像編碼器、解碼器一樣智能,比如不像編碼器、解碼器一樣具備熵編碼和/或熵解碼能力。拼接器和內(nèi)容服務(wù)器可以位于同一物理實體上,也可以位于不同物理實體上。應(yīng)用服務(wù)器:分別接收第二內(nèi)容服務(wù)器、第一內(nèi)容服務(wù)器發(fā)送的媒體描述信息,向終端發(fā)送用于解碼輸出視頻碼流的媒體描述信息(媒體描述信息中包含用于解碼接收到的視頻流的參數(shù)集及參數(shù)集ID)。路由器作為傳輸路由的設(shè)備。終端根據(jù)接收到的應(yīng)用服務(wù)器發(fā)送的媒體描述信息,接收拼接器發(fā)送的輸出視頻碼流,對輸出視頻碼流進(jìn)行解碼并顯示。圖3為本發(fā)明實施例提供的遵循HEVC標(biāo)準(zhǔn)的視頻碼流的VCLNALU與參數(shù)集之間引用的示意圖。如圖3所示,視頻碼流遵循HEVC標(biāo)準(zhǔn),VPS、SPS、PPS和APS中分別包含該參數(shù)集對應(yīng)的參數(shù)集ID,即分別包含VPSID、SPSID、PPSID和APSID。PPS、APS為VCLNALU直接引用的參數(shù)集,PPS、APS中包含的參數(shù)可以被同一或多個圖片的所有編碼片NALU(即VCLNALU)直接引用,其中每一個VCLNALU中都包含PPSID和APSID。SPS、VPS為VCLNALU間接引用的參數(shù)集,SPS中包含的參數(shù)可以被一個或多個PPS引用,因此PPS中還包含SPSID,相應(yīng)VCLNALU通過PPS間接引用SPS;VPS中包含的參數(shù)可以被一個或多個SPS引用,因此SPS中還包含VPSID,相應(yīng)VCLNALU通過PPS間接引用SPS,再通過SPS間接引用VPS。參數(shù)集ID的值為無符號整數(shù),并且大部分參數(shù)集ID采用了熵編碼,比如采用無符號指數(shù)哥倫布編碼。采用熵編碼的目的是為了提高編碼效率,熵編碼的特點是,編碼得到的碼字是變長的,數(shù)值越小,表示數(shù)值所需的比特數(shù)越少。應(yīng)用服務(wù)器向終端傳輸參數(shù)集傳輸時,需要保證位于終端的解碼器在收到VCLNALU前,先收到該VCLNALU引用的參數(shù)集,包括直接引用的參數(shù)集和間接引用的參數(shù)集,因此參數(shù)集通常通過帶外方式傳輸。比如,將參數(shù)集作為一種媒體描述信息,在會話建立前或者在會話建立過程中,發(fā)送給終端。如果會話當(dāng)中,參數(shù)集發(fā)生了更改,則在會話更改過程中或者通過會話中通知消息,將參數(shù)集發(fā)送給終端。參數(shù)集的封裝格式有多種,包括但不限于會話描述協(xié)議(SDP:SessionDescriptionProtocol)的參數(shù)、可擴展標(biāo)記語言(XML:ExtensibleMarkupLanguage)的元素(element)。參數(shù)集的發(fā)送可以基于多種協(xié)議方法,包括但不限于會話初始化協(xié)議(SIP:SessionInitiationProtocol)邀請(Invite)、SIP重邀請(Re-Invite)、SIP更新(Update)、SIP通知(Info)、實時流傳輸協(xié)議(RTSP:RealTimeStreamingProtocol)描述(Describe)、RTSP通知(Notify)、RTSP播放通知(Play-Notify)、RTSP設(shè)置參數(shù)(SetParameter)、RTSP獲取參數(shù)(GetParameter)、超文本傳輸協(xié)議(HTTP:HypertextTransferProtocol)獲取(Get)、HTTP發(fā)送(Post)等協(xié)議方法其中之一。圖4為本發(fā)明實施例提供的一種數(shù)字視頻碼流的解碼方法,包括如下步驟:步驟401、接收第一視頻碼流和第一視頻的參數(shù)集標(biāo)識修改消息,所述第一視頻的參數(shù)集標(biāo)識修改消息中包含第一視頻的參數(shù)集標(biāo)識ID修改信息;具體的,終端接收拼接器發(fā)送的第一視頻碼流和第一視頻的參數(shù)集標(biāo)識修改消息,所述參數(shù)集ID修改信息包括待修改的參數(shù)集ID的參數(shù)集類型和與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移;所述第一視頻碼流中包含用于解碼網(wǎng)絡(luò)抽象層單元的視頻編碼層VCLNALU的參數(shù)集的原參數(shù)集ID。作為另一種可選方式,終端接收拼接器發(fā)送的第一視頻碼流和第一視頻的參數(shù)集標(biāo)識修改消息,所述參數(shù)集ID修改信息包括待修改的參數(shù)集ID的參數(shù)集類型和用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。作為另一種可選方式,終端接收拼接器發(fā)送的第一視頻碼流和第一視頻的參數(shù)集標(biāo)識修改消息,所述參數(shù)集ID修改信息包括待修改的參數(shù)集ID的參數(shù)集類型的所述原參數(shù)集ID、與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。所述第一視頻的參數(shù)集標(biāo)識修改消息是由拼接器和/或按生成補充增強SEI消息的方式生成的SEI消息,具體為可以的參數(shù)集標(biāo)識修改補充增強SEI消息,自適應(yīng)參數(shù)集標(biāo)識修改SEI消息,圖片參數(shù)集標(biāo)識修改SEI消息。此外,該SEI消息還可以是別的類型的SEI消息,本發(fā)明實施例在此不做限定。所述第一視頻的參數(shù)集標(biāo)識修改消息與第一視頻碼流一起發(fā)送給終端。步驟402、根據(jù)所述第一視頻的參數(shù)集ID修改信息獲取用于解碼VCLNALU的參數(shù)集的參數(shù)集ID(即用于解碼所述第一視頻碼流中視頻編碼層的網(wǎng)絡(luò)抽象層單元VCLNALU的參數(shù)集的參數(shù)集ID,也即修改后的參數(shù)集ID。本申請中如不另做說明,修改后的參數(shù)集ID均指用于解碼所述第一視頻碼流中視頻編碼層的網(wǎng)絡(luò)抽象層單元VCLNALU的參數(shù)集的參數(shù)集ID,即用于解碼VCLNALU的參數(shù)集的參數(shù)集ID);具體的,終端根據(jù)所述待修改的參數(shù)集ID的參數(shù)集類型從第一視頻碼流中獲取與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID;根據(jù)所述原參數(shù)集ID以及所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移獲取與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。作為另一種可選方式,當(dāng)所述參數(shù)集ID修改信息包括待修改的參數(shù)集ID的參數(shù)集類型和用于解碼VCLNALU的參數(shù)集的參數(shù)集ID時,終端直接根據(jù)待修改的參數(shù)集ID的參數(shù)集類型從所述參數(shù)集ID修改信息中獲取與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。作為另一種可選方式,當(dāng)所述參數(shù)集ID修改信息包括待修改的參數(shù)集ID的參數(shù)集類型的所述原參數(shù)集ID、以及與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID時,終端根據(jù)所述待修改的參數(shù)集ID的參數(shù)集類型獲取所述第一視頻碼流中與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;根據(jù)所述原參數(shù)集ID獲取所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。對于此種實施方式,如待修改的參數(shù)集ID的參數(shù)集類型包括至少一個原參數(shù)集ID時,則需要獲取該待修改的參數(shù)集ID的參數(shù)集類型的與各個原參數(shù)集ID分別對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID.此外,當(dāng)所述參數(shù)集ID修改信息包括待修改的參數(shù)集ID的參數(shù)集類型的所述原參數(shù)集ID、以及與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID時,終端還可以根據(jù)所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID獲取所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。步驟403、根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼所述VCLNALU的參數(shù)集;具體的,終端根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼所述VCLNALU的參數(shù)集。步驟404、根據(jù)所述用于解碼VCLNALU的參數(shù)集解碼所述VCLNALU,并輸出解碼后的第一視頻。具體的,終端根據(jù)所述用于解碼VCLNALU的參數(shù)集解碼所述VCLNALU,并輸出解碼后的第一視頻。作為另一種可選方式,第一視頻參數(shù)集ID修改信息還可以為待修改的參數(shù)集ID的參數(shù)集類型,終端向拼接器發(fā)送實時傳輸控制協(xié)議RTCP請求,所述RTCP請求包含所述待修改參數(shù)集ID的參數(shù)集類型;終端接收所述拼接器返回的RTCP響應(yīng),所述RTCP響應(yīng)中攜帶與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移,或者與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,或者與待修改的參數(shù)集ID的參數(shù)集類型的所述原參數(shù)集ID以及與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;所述根據(jù)所述第一視頻的參數(shù)集ID修改信息獲取所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID具體為:據(jù)所述RTCP響應(yīng)中攜帶的與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移或與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,或者根據(jù)與待修改的參數(shù)集ID的參數(shù)集類型的原參數(shù)集ID以及與原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,從所述參數(shù)集ID修改信息中獲取與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。作為另一種可選方式,所述參數(shù)集ID修改信息還包括修改生效標(biāo)志,所述接收第一視頻碼流和第一視頻的參數(shù)集標(biāo)識修改消息之前,該方法進(jìn)一步包括:接收不生效的第一視頻的參數(shù)集標(biāo)識修改消息;確定所述不生效的第一視頻的參數(shù)集標(biāo)識修改消息包含指示參數(shù)集ID修改信息不生效的標(biāo)志信息;向應(yīng)用服務(wù)器發(fā)送第二媒體描述信息獲取請求;接收應(yīng)用服務(wù)器返回的第二媒體描述信息獲取響應(yīng),所述第二媒體描述信息獲取響應(yīng)中攜帶第一視頻的修改后的參數(shù)集,所述第一視頻修改后的參數(shù)集中的參數(shù)集ID為所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。作為另一種可選方式,所述根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼所述VCLNALU的參數(shù)集之前該方法進(jìn)一步包括:通過帶外方式獲取第一視頻的修改后的參數(shù)集,所述修改后的參數(shù)集中的參數(shù)集ID為用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;或,通過帶外方式獲取第一視頻的原參數(shù)集以及用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,所述第一視頻的原參數(shù)集中攜帶所述原參數(shù)集ID;根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID修改所述原參數(shù)集ID。作為另一可選方式,所述待修改的參數(shù)集ID的參數(shù)集類型為VCLNALU直接引用的參數(shù)集類型,所述根據(jù)所述第一視頻的參數(shù)集ID修改信息獲取用于解碼VCLNALU的參數(shù)集的參數(shù)集ID具體為:獲取與所述VCLNALU直接引用的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的VCLNALU直接引用的參數(shù)集的參數(shù)集ID,該方法進(jìn)一步包括:根據(jù)獲取的用于解碼VCLNALU的VCLNALU直接引用的參數(shù)集的參數(shù)集ID獲取所述第一視頻碼流中VCLNALU直接引用的參數(shù)集;從所述直接引用的參數(shù)集中獲取用于解碼VCLNALU的VCLNALU間接引用的參數(shù)集的參數(shù)集ID;或所述待修改的參數(shù)集ID的參數(shù)集類型為所述VCLNALU直接引用的參數(shù)集類型和所述VCLNALU間接引用的參數(shù)集類型,所述根據(jù)所述第一視頻的參數(shù)集ID修改信息獲取用于解碼VCLNALU的參數(shù)集的參數(shù)集ID具體為:分別根據(jù)所述第一視頻的參數(shù)集ID修改信息獲取與所述VCLNALU直接引用的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的VCLNALU的直接引用的參數(shù)集的參數(shù)集ID,以及獲取與所述VCLNALU間接引用的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的VCLNALU間接引用的參數(shù)集的參數(shù)集ID;所述根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼所述VCLNALU的參數(shù)集具體為:根據(jù)獲取的直接引用的參數(shù)集的參數(shù)集ID以及間接引用的參數(shù)集的參數(shù)集ID獲取所述VCLNALU的直接引用的參數(shù)集以及所述VCLNALU的間接引用的參數(shù)集;所述根據(jù)所述用于解碼VCLNALU的參數(shù)集解碼所述VCLNALU,并輸出解碼后的第一視頻具體為:根據(jù)獲取的所述VCLNALU的直接引用的參數(shù)集以及所述VCLNALU的間接引用的參數(shù)集解碼所述VCLNALU,并輸出解碼后的第一視頻。由以上實施例可知,通過第一視頻的參數(shù)集標(biāo)識修改消息中包含第一視頻的參數(shù)集標(biāo)識ID修改信息,以便終端根據(jù)參數(shù)集標(biāo)識ID修改信息解碼輸出第一視頻而不是直接根據(jù)第一視頻碼流中的原參數(shù)集ID獲取解碼第一視頻碼的VCLNALU的參數(shù)集,從而無需拼接器對第一視頻碼流的各VCLNALU中的參數(shù)集ID進(jìn)行修改,不但當(dāng)終端在解碼第一視頻碼流時,能夠保證使用正確的參數(shù)集,而且不需要在現(xiàn)有網(wǎng)絡(luò)的拼接器上增加額外的硬件資源,或者使用新的拼接器對現(xiàn)有網(wǎng)絡(luò)中的拼接器進(jìn)行替換,相比于現(xiàn)有技術(shù)中所需的運營成本更少。圖5為本發(fā)明實施例還提供的一種碼流拼接方法流程圖,包括如下步驟:步驟501,第二內(nèi)容服務(wù)器接收第二視頻碼流和第二視頻參數(shù)集。在執(zhí)行此步驟之前,第二編碼器對第二視頻內(nèi)容進(jìn)行編碼,參數(shù)集ID可以采用熵編碼方式獲取。并將輸出的第二視頻碼流和獲取的第二視頻的參數(shù)集發(fā)送給第二內(nèi)容服務(wù)器。步驟502,第一內(nèi)容服務(wù)器接收第一視頻碼流和第一視頻參數(shù)集。在執(zhí)行此步驟之前,第一編碼器對第一視頻內(nèi)容進(jìn)行編碼,參數(shù)集ID可以采用熵編碼方式獲取,并將輸出的第一視頻碼流和獲取的參數(shù)集ID作為原參數(shù)集ID包含在第一視頻的原參數(shù)集中發(fā)送給第一內(nèi)容服務(wù)器。值得說明的是,本發(fā)明實施例中,步驟501和步驟502之間沒有時間上的先后順序。步驟503、終端向應(yīng)用服務(wù)器發(fā)送第一媒體描述信息獲取請求消息,所述第一媒體描述信息獲取請求消息包含第二內(nèi)容的內(nèi)容標(biāo)識。步驟504、應(yīng)用服務(wù)器根據(jù)第二內(nèi)容的內(nèi)容標(biāo)識獲取第二內(nèi)容的媒體描述信息。包括但不限于以下信息:第二視頻的參數(shù)集第二視頻參數(shù)集的類型及與各類型對應(yīng)的參數(shù)集的參數(shù)集ID。應(yīng)用服務(wù)器獲取第二內(nèi)容的媒體描述信息的一種可選方式為,應(yīng)用服務(wù)器接收終端發(fā)送的媒體描述信息獲取請求消息后,根據(jù)第二內(nèi)容的內(nèi)容標(biāo)識確定第二內(nèi)容所在的內(nèi)容服務(wù)器為第二內(nèi)容服務(wù)器,并向第二內(nèi)容服務(wù)器發(fā)送媒體描述信息獲取請求消息。步驟503中的媒體描述信息獲取請求消息在會話建立過程中發(fā)送,即為會話建立請求消息,具體的,如SIPInvite請求消息。相應(yīng)的,應(yīng)用服務(wù)器向第二內(nèi)容服務(wù)器發(fā)送的媒體描述信息獲取請求消息也為會話建立請求消息。第二內(nèi)容服務(wù)器接收媒體描述信息獲取請求消息,根據(jù)第二內(nèi)容的內(nèi)容標(biāo)識確定第二視頻碼流、第二視頻的參數(shù)集NALU,以及為第二視頻碼流分配第二視頻碼流標(biāo)識信息。將媒體描述信息獲取響應(yīng)消息發(fā)送給應(yīng)用服務(wù)器。具體的,所述媒體描述信息獲取響應(yīng)消息為前述會話建立請求消息對應(yīng)的會話建立響應(yīng)消息,如SIP200響應(yīng)消息。其中,媒體描述信息獲取響應(yīng)消息包含第二視頻的參數(shù)集和第二視頻碼流標(biāo)識信息。應(yīng)用服務(wù)器接收到媒體描述信息獲取響應(yīng)消息后,獲取并存儲媒體描述信息獲取響應(yīng)消息中攜帶的第二視頻的參數(shù)集。具體的,在媒體描述信息獲取響應(yīng)消息中包含SDP,在SDP中包含第二視頻的參數(shù)集NALU。當(dāng)然,還可以用其它的方式,如使用SDP參數(shù)、或者XML元素結(jié)構(gòu)化表示參數(shù)集NALU中信息,本發(fā)明實施例在此不做限定。SDP中還可以包含承載第二視頻碼流的實時傳輸協(xié)議(RTP:RealTimeTransport)流的源IP地址、端口和同步源標(biāo)識(SSRC:SynchronizationSource),其中承載第二視頻碼流的RTP流的源IP地址、端口和SSRC即第二視頻碼流標(biāo)識信息。在SDP中包含參數(shù)集NALU的具體方法為現(xiàn)有技術(shù),本發(fā)明實施例在此不再詳述。作為應(yīng)用服務(wù)器獲取第二內(nèi)容的媒體描述信息的另一種可選方式為,步驟503中的媒體描述獲取請求消息還可以在會話建立前作為初始化媒體描述信息獲取請求消息(如RTSPDescribe請求消息、HTTPGet請求消息等)發(fā)送。相應(yīng)的,應(yīng)用服務(wù)器向第二內(nèi)容服務(wù)器發(fā)送的媒體描述信息獲取請求消息為初始化媒體描述信息獲取請求消息,第二內(nèi)容服務(wù)器接收初始化媒體描述信息獲取請求消息后發(fā)送給應(yīng)用服務(wù)器的包含第二視頻的媒體描述信息的媒體描述信息獲取響應(yīng)消息為初始化媒體描述信息獲取響應(yīng)消息。所述初始化媒體描述信息獲取響應(yīng)消息可以為RTSP200響應(yīng)消息、HTTP200響應(yīng)消息等。應(yīng)用服務(wù)器獲取第二內(nèi)容的媒體描述信息的又一種可選方式為,步驟503中的媒體描述獲取請求消息在會話建立前發(fā)送,步驟504之前還包括,第二內(nèi)容服務(wù)器為第二視頻碼流分配第二視頻碼流標(biāo)識信息,將第二內(nèi)容的內(nèi)容標(biāo)識、第二內(nèi)容的媒體描述信息發(fā)送給應(yīng)用服務(wù)器。第二內(nèi)容的媒體描述信息包含第二視頻的參數(shù)集、第二視頻碼流標(biāo)識信息。應(yīng)用服務(wù)器接收到終端發(fā)送的媒體描述獲取請求消息后,根據(jù)第二內(nèi)容的內(nèi)容標(biāo)識從接收到的媒體描述信息中獲取第二視頻的參數(shù)集、第二視頻碼流標(biāo)識信息。此外,應(yīng)用服務(wù)器還可以采用別的方式從第二內(nèi)容服務(wù)器獲取第二內(nèi)容的媒體描述信息,本發(fā)明實施例在此不再一一詳述。步驟505、應(yīng)用服務(wù)器獲取第一內(nèi)容的媒體描述信息。包括但不限于以下信息:第一視頻的原參數(shù)集和第一視頻的獲取信息。應(yīng)用服務(wù)器獲取第一內(nèi)容的媒體描述信息的一種可選方式為,應(yīng)用服務(wù)器根據(jù)配置的第一內(nèi)容服務(wù)器的地址,向第一內(nèi)容服務(wù)器發(fā)送第一視頻媒體描述信息獲取請求消息。第一內(nèi)容服務(wù)器接收應(yīng)用服務(wù)器發(fā)送的第一視頻媒體描述信息獲取請求消息,將第一視頻的媒體描述信息發(fā)送給應(yīng)用服務(wù)器,其中第一視頻的媒體描述信息至少包含第一視頻的原參數(shù)集以及視頻碼流的獲取信息,第一視頻的參數(shù)集的類型及與各類型對應(yīng)的參數(shù)集的原參數(shù)集ID,第一視頻碼流的獲取信息可以是用于向第一內(nèi)容服務(wù)器獲取第一視頻碼流的RTSP統(tǒng)一資源定位符(URL:UniformResourceLocator)。作為一種可選方式,本發(fā)明實施例中,終端還可以在步驟503中發(fā)送給應(yīng)用服務(wù)器的媒體描述信息的獲取請求消息中攜帶用戶的標(biāo)識,以及應(yīng)用服務(wù)器在發(fā)送給第一內(nèi)容服務(wù)器的媒體描述信息的獲取請求消息中攜帶用戶的標(biāo)識,以便第一內(nèi)容服務(wù)器可以根據(jù)用戶的標(biāo)識為用戶確定第一內(nèi)容,并將確定的第一視頻的參數(shù)集以及確定的第一視頻碼流的獲取信息發(fā)送給應(yīng)用服務(wù)器。步驟506、應(yīng)用服務(wù)器修改第一視頻的原參數(shù)集ID,所述第一視頻的原參數(shù)集ID為步驟505中第一視頻的原參數(shù)集中包含的參數(shù)集ID。具體的,應(yīng)用服務(wù)器在接收到第一視頻的原參數(shù)集后,針對每一類型的參數(shù)集ID,確定該類型的第一視頻的原參數(shù)集ID是否與該類型的第二視頻的參數(shù)集ID相同,如果相同,則需要修改該類型的第一視頻的原參數(shù)集ID。本流程以該類型的第一視頻的原參數(shù)集ID與該類型的第二視頻的參數(shù)集ID相同為例進(jìn)行說明。然后,應(yīng)用服務(wù)器確定該類型的第一視頻的原參數(shù)集ID的偏移,并將該類型的第一視頻的原參數(shù)集ID的取值加上原參數(shù)集ID的偏移作為該類型的第一視頻的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;或者應(yīng)用服務(wù)器直接為該類型的第一視頻的原參數(shù)集ID分配新的取值,該分配的新的取值與所有同一類型的第二視頻的參數(shù)集ID不同,與所有同一類型的其它第一視頻的原參數(shù)集ID也不同,將該分配的新的取值作為用于解碼VCLNALU的參數(shù)集的參數(shù)集ID(即用于解碼第一視頻碼流中VCLNALU的參數(shù)集的參數(shù)集ID)。具體的,應(yīng)用服務(wù)器判斷該類型的第一視頻的原參數(shù)集ID是否與該類型的第二視頻的參數(shù)集ID相同的一種可選方式為,應(yīng)用服務(wù)器將該類型的第一視頻的原參數(shù)集ID與該類型的所有第二視頻的參數(shù)集ID進(jìn)行比較,如果該類型的第一視頻的原參數(shù)集ID與該類型的其中一個第二視頻的參數(shù)集ID相同。應(yīng)用服務(wù)器確定該類型的第一視頻的原參數(shù)集ID與該類型的第二視頻的參數(shù)集ID相同。具體的,應(yīng)用服務(wù)器確定某類型的第一視頻的原參數(shù)集ID的偏移的一種可選方式為:應(yīng)用服務(wù)器確定所有該類型的第二視頻的參數(shù)集ID中的最大值、所有該類型的第一視頻的原參數(shù)集ID中的最小值,計算所有第二視頻的參數(shù)集ID中的最大值與所有第一視頻的原參數(shù)集ID中的最小值的差值,應(yīng)用服務(wù)器將該差值與一個正整數(shù)的和作為該類型的第一視頻的原參數(shù)集ID的偏移。具體的,作為一種可選方式,該正整數(shù)為1。該偏移可以應(yīng)用于所有該類型的第一視頻的原參數(shù)集ID,也可以對不同類型的第一視頻的原參數(shù)集ID設(shè)定不同的偏移,本發(fā)明實施例在此不作限定。步驟507、應(yīng)用服務(wù)器向終端發(fā)送第一媒體描述信息獲取響應(yīng),其中包含第二視頻的參數(shù)集和第一視頻的參數(shù)集。具體可以是,在第一媒體描述信息獲取響應(yīng)消息中包含SDP,在SDP中包含第二視頻的參數(shù)集(可以為NALU的形式封裝參數(shù)集,也可以為其它的形式,本發(fā)明實施例如無特別指明,NALU只作為一種可選的例子并不限定參數(shù)集的封裝形式)、第一視頻的修改后的參數(shù)集。其中第一視頻的修改后的參數(shù)集中的參數(shù)集ID為第一視頻的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,具體的為第一視頻的原參數(shù)集ID的取值加上原參數(shù)集ID的偏移,或者應(yīng)用服務(wù)器直接為第一視頻的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID分配的取值。步驟501-507所述終端獲取第二視頻參數(shù)集和第一視頻參數(shù)集的方法中,終端是從視頻碼流外部獲取的參數(shù)集,因此可以稱為帶外方式(或者稱為外部方式)。步驟501-507所述終端獲取第二視頻參數(shù)集和第一視頻參數(shù)集的方法只是終端以帶外方式獲取第二視頻參數(shù)集和第一視頻參數(shù)集的可選方式,終端還可以采用別的方式以帶外方式獲取第二視頻參數(shù)集和第一視頻參數(shù)集,本發(fā)明實施例在此不再一一詳述。步驟508、應(yīng)用服務(wù)器向拼接器發(fā)送第二視頻碼流信息和第一視頻碼流信息。具體的,第二視頻碼流信息包含第二視頻碼流標(biāo)識信息,第一視頻碼流信息包含:第一視頻碼流的獲取信息和第一視頻的參數(shù)集ID修改信息(如第一視頻的待修改參數(shù)集ID的參數(shù)集類型以及與待修改參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移,或待修改參數(shù)集ID的參數(shù)集類型和應(yīng)用服務(wù)器為待修改的參數(shù)集ID分配的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,或待修改參數(shù)集ID的參數(shù)集類型的原參數(shù)集ID以及與原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID(即應(yīng)用服務(wù)器為待修改的參數(shù)集ID分配的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID),所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID的取值即為終端在接收到第一視頻碼流后用于解碼所述第一視頻碼流中VCLNALU的參數(shù)集的參數(shù)集ID)。所述第一視頻的參數(shù)集ID修改信息為第一視頻的VCLNALU直接引用的參數(shù)集類型的參數(shù)集ID修改信息,即其中的第一視頻的待修改參數(shù)集ID的參數(shù)集類型只能為VCLNALU直接引用的參數(shù)集類型。步驟508以第一視頻的參數(shù)集修改信息包含第一視頻的待修改參數(shù)集ID的參數(shù)集類型以及與待修改參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移為例進(jìn)行說明。其中,第一視頻碼流的獲取信息可以是用于向第一內(nèi)容服務(wù)器獲取第一視頻碼流的RTSPURL;第二視頻碼流標(biāo)識信息可以是用于承載第二視頻碼流的RTP流的源IP地址、端口和SSRC的組合;第一視頻的待修改參數(shù)集ID的參數(shù)集類型可以為三字節(jié)文本形式表示的參數(shù)集類型,如”vps”、”sps”、”pps”、”aps”分別代表參數(shù)集類型為VPS、SPS、PPS和APS。參數(shù)集ID偏移可以是1字節(jié)無符號整數(shù)。第二視頻碼流和第一視頻碼流信息可以如表1(即視頻配置信息表)所示:表1其中,第二視頻碼流標(biāo)識信息中的源IP地址為219.133.0.1、端口為49170、SSRC為1234;與該第二視頻碼流對應(yīng)的第一視頻碼流的獲取信息為rtsp://example.com/fizzle/foo;應(yīng)用服務(wù)器確定第一視頻中VPS、SPS、PPS、APS的ID都需要修改,其第一視頻的各類型的原參數(shù)集ID的偏移均為1,即對相應(yīng)類型的第一視頻參數(shù)集的參數(shù)集ID進(jìn)行修改時,所有原參數(shù)集ID的取值加1為對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID的取值。但VCLNALU直接引用的參數(shù)集類型只包含PPS、APS,因此表1中只包含2個參數(shù)集ID修改信息,即PPS的參數(shù)集ID修改信息和APS的參數(shù)集ID修改信息。值得說明的是,上述例子中原參數(shù)集ID的偏移均為1,只是為了舉例的簡單化,并不代表不同類型參數(shù)集的參數(shù)集ID偏移都相同。值得說明的是,步驟507和步驟508沒有時間上的先后順序。步驟509、第二內(nèi)容服務(wù)器向拼接器發(fā)送第二視頻碼流。具體的,如果拼接器位于邊緣路由器,承載第二視頻碼流的RTP流的目的IP地址、端口為組播IP地址、端口,基于網(wǎng)絡(luò)路由策略將承載第二視頻碼流的RTP流發(fā)送到拼接器;步驟509之前,第二內(nèi)容服務(wù)器獲取網(wǎng)絡(luò)管理系統(tǒng)為第二視頻碼流分配的組播IP地址、端口?;蛘?,如果拼接器位于邊緣服務(wù)器,承載第二視頻碼流的RTP流的目的IP地址、端口為拼接器的IP地址、端口。步驟509之前,第二內(nèi)容服務(wù)器獲得拼接器的IP地址、端口。以步驟504中應(yīng)用服務(wù)器向第二內(nèi)容服務(wù)器發(fā)送的是會話建立請求消息為例進(jìn)行說明。具體的,第二內(nèi)容服務(wù)器從步驟504中應(yīng)用服務(wù)器向第二內(nèi)容服務(wù)器發(fā)送的會話建立請求消息中獲取拼接器的IP地址、端口。而采用此種方式,應(yīng)用服務(wù)器如何獲取拼接器的IP地址、端口以及如何建立拼接器的IP地址、端口和終端的IP地址、端口的對應(yīng)關(guān)系是公知技術(shù),不再贅述。步驟510、拼接器將第二視頻碼流作為輸出視頻碼流發(fā)送給終端。如果拼接器接收到的第二視頻碼流的目的IP地址、端口為拼接器的IP地址、端口。拼接器將承載第二視頻碼流的所有IP包中的目的IP地址、端口修改為對應(yīng)終端的IP地址、端口。步驟511、終端根據(jù)接收到的第二視頻碼流的VCLNALU中的參數(shù)集ID從通過帶外方式(所述帶外方式為從第二視頻流之外)中獲得的參數(shù)集中,獲取VCLNALU引用的參數(shù)集(即用于解碼第二視頻碼流的VCLNALU的參數(shù)集),利用獲取的參數(shù)集解碼輸出第二視頻。步驟512、拼接器根據(jù)第二視頻碼流標(biāo)識信息從視頻配置信息表即表1中查找到第一視頻碼流的獲取信息,根據(jù)第一視頻碼流的獲取信息獲取第一視頻碼流。具體的,在執(zhí)行本步驟之前,拼接器判斷是否需要進(jìn)行拼接準(zhǔn)備,如果需要進(jìn)行拼接準(zhǔn)備,拼接器向第一內(nèi)容服務(wù)器獲取第一視頻碼流。一種判斷是否需要進(jìn)行拼接準(zhǔn)備的可選方式為,步驟504中應(yīng)用服務(wù)器獲得的第二內(nèi)容的媒體描述信息、步驟508中應(yīng)用服務(wù)器向拼接器發(fā)送的第二視頻碼流信息還包括拼接點的時間信息,拼接器根據(jù)預(yù)先配置的準(zhǔn)備閾值(指定啟動拼接準(zhǔn)備的時間點與拼接點的間隔)判斷是否需要進(jìn)行拼接準(zhǔn)備,即是否向第一內(nèi)容服務(wù)器獲取第一視頻碼流。具體地,拼接器設(shè)置啟動拼接準(zhǔn)備的時間為拼接點的時間信息減去準(zhǔn)備閾值,如果當(dāng)前時間已經(jīng)到達(dá)啟動拼接準(zhǔn)備的時間,拼接器需要進(jìn)行拼接準(zhǔn)備。本實施例中,時間信息的格式可以為hh:mm:ss.fff,其中hh代表小時、mm代表分鐘、ss代表秒、fff代表毫秒。準(zhǔn)備閾值以毫秒為單位。如拼接點的時間信息為01:01:01.001代表1小時1分鐘1秒鐘另1毫秒,準(zhǔn)備閾值為500,代表500毫秒。則啟動拼接準(zhǔn)備的時間為01:01:00.499代表1小時1分鐘499毫秒。如果當(dāng)前時間等于或晚于01:01:00.499,則需要進(jìn)行拼接準(zhǔn)備,向第一內(nèi)容服務(wù)器獲取第一視頻碼流。另一種判斷是否需要進(jìn)行拼接準(zhǔn)備的可選方式為,第二內(nèi)容服務(wù)器設(shè)置啟動拼接準(zhǔn)備的時間,如果當(dāng)前時間已經(jīng)到達(dá)啟動拼接準(zhǔn)備的時間,在屬于承載第二視頻碼流的RTP流的RTP包的包頭插入準(zhǔn)備標(biāo)簽(preparetag),指示拼接器進(jìn)行拼接準(zhǔn)備。拼接器檢查第二視頻碼流對應(yīng)的RTP包頭是否包含preparetag,如果包含,則需要進(jìn)行拼接準(zhǔn)備即向第一內(nèi)容服務(wù)器獲取第一視頻碼流。步驟513、拼接器生成第一視頻的參數(shù)集標(biāo)識ID修改消息,其中包含第一視頻參數(shù)集ID修改信息。具體的,參數(shù)集標(biāo)識修改消息可以是參數(shù)集標(biāo)識修改信息SEI消息(ParameterSetIDChangeInfoSEImessage),或者PPS標(biāo)識修改信息SEI消息(PPSIDChangeInfoSEImessage)和/或APS標(biāo)識修改信息SEI消息(APSIDChangeInfoSEImessage),其中,參數(shù)集標(biāo)識修改信息SEI消息可以攜帶一個或多個待修改參數(shù)集ID的參數(shù)集類型的修改信息,而PPS標(biāo)識修改信息SEI消息只包括待修改參數(shù)集ID的參數(shù)集類型為PPS的修改信息,APS標(biāo)識修改信息SEI消息只包括待修改參數(shù)集ID的參數(shù)集類型為APS的修改信息。具體的,在執(zhí)行此步驟之前,拼接器判斷視頻配置信息表(即表1)是否包含與第二視頻碼流標(biāo)識信息對應(yīng)的第一視頻參數(shù)集ID修改信息,如待修改ID的參數(shù)集類型以及與修改ID的參數(shù)集類型對應(yīng)的參數(shù)集ID偏移。如果視頻配置信息表包含與第二視頻碼流標(biāo)識信息對應(yīng)的第一視頻參數(shù)集ID修改信息,拼接器生成第一視頻的參數(shù)集標(biāo)識修改消息(具體的可以是拼接器采用生成SEI消息的方法生成SEI消息,如參數(shù)集標(biāo)識修改補充增強信息SEI消息,自適應(yīng)參數(shù)集標(biāo)識修改SEI消息或圖片參數(shù)集標(biāo)識修改SEI消息也可以是別的類型的SEI消息,本發(fā)明實施例在此不做限定)。其中待修改參數(shù)集ID的參數(shù)集類型為VCLNALU直接引用的參數(shù)集類型的第一視頻的參數(shù)集ID修改信息。這是由于,步驟507中應(yīng)用服務(wù)器通過帶外方式發(fā)送給終端的第一視頻的修改后的參數(shù)集中的參數(shù)集ID為用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,當(dāng)終端獲取VCLNALU直接引用的參數(shù)集后,所述VCLNALU直接引用的參數(shù)集中包含的VCLNALU間接引用的參數(shù)集的參數(shù)集ID為用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。因此,不需要由應(yīng)用服務(wù)器將VCLNALU間接引用的參數(shù)集類型的參數(shù)集ID修改信息發(fā)送給拼接器,并由拼接器通過參數(shù)集ID修改消息發(fā)送給終端。本步驟以第一視頻的參數(shù)集修改信息包含第一視頻的待修改參數(shù)集ID的參數(shù)集類型以及與待修改參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移為例進(jìn)行說明。其中,生成參數(shù)集標(biāo)識修改信息SEI消息作為參數(shù)集標(biāo)識修改消息的方法可以為:拼接器從視頻配置信息表獲取第一視頻參數(shù)集ID修改信息,包括待修改參數(shù)集ID的參數(shù)集類型以及與待修改參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移。此時待修改參數(shù)集ID的第一視頻參數(shù)集類型只包含VCLNALU直接引用的參數(shù)集類型。拼接器根據(jù)獲取到的第一視頻參數(shù)集ID修改信息,生成參數(shù)集標(biāo)識修改信息SEI消息。本步驟以第一編碼器為遵循HEVC標(biāo)準(zhǔn)的編碼器,即VCLNALU直接引用的參數(shù)集類型包含PPS、APS為例進(jìn)行說明。具體的,如待修改ID的第一視頻參數(shù)集類型包含PPS和/或者APS時,拼接器生成參數(shù)集標(biāo)識修改信息SEI消息。參數(shù)集標(biāo)識修改信息SEI消息中包含兩個標(biāo)志(flag):圖片參數(shù)集標(biāo)識更改標(biāo)志(pps_id_change_flag)、自適應(yīng)參數(shù)集標(biāo)識更改標(biāo)志(aps_id_change_flag),分別用于指示對應(yīng)類型參數(shù)集的參數(shù)集ID(即PPSID和APSID)是否需要修改。如果對應(yīng)類型參數(shù)集的參數(shù)集ID需要修改,則參數(shù)pps_id_change_flag和aps_id_change_flag的取值為1。當(dāng)然,還可以用其它的方式,如為字符’T’、字符串’TURE’等其他的標(biāo)識,表示對應(yīng)類型參數(shù)集的參數(shù)集ID需要修改,本發(fā)明實施例在此不做限定。此外,參數(shù)集標(biāo)識修改信息SEI消息中還包含待修改參數(shù)集ID的參數(shù)集類型的原參數(shù)集ID的偏移。以如果對應(yīng)類型參數(shù)集的ID需要修改,參數(shù)pps_id_change_flag和aps_id_change_flag的取值等于1為例進(jìn)行說明,參數(shù)集標(biāo)識修改信息SEI消息的格式如表2所示:parameter_set_id_change_info(PayloadSize){Descriptoraps_id_change_flagu(1)pps_id_change_flagu(1)If(aps_id_change_flag)aps_id_diffu(5)If(pps_id_change_flag)pps_id_diffu(8)}表二如表二所示,參數(shù)aps_id_change_flag取值為1,表明APSID需要修改,參數(shù)pps_id_change_flag取值為1,表明PPSID需要修改。描述子(Descirptor)u(1)表明參數(shù)aps_id_change_flag和pps_id_change_flag占一個比特位。參數(shù)aps_id_diff(自適應(yīng)參數(shù)集標(biāo)識偏移)攜帶APS對應(yīng)的原參數(shù)集ID的偏移,參數(shù)pps_id_diff(圖片參數(shù)集標(biāo)識偏移)攜帶PPS對應(yīng)的原參數(shù)集ID的偏移。u(5)表明采用5比特表示的無符號整數(shù),u(8)表明采用8比特表示的無符號整數(shù)。還可以就PPSID的改變和APSID的改變分別生成PPS標(biāo)識修改信息SEI消息和APS標(biāo)識修改信息SEI消息作為參數(shù)集標(biāo)識修改消息。具體的,PPS標(biāo)識修改信息SEI消息攜帶PPS對應(yīng)的原參數(shù)集ID的偏移,其消息格式如表三所示:pps_id_change_info(PayloadSize){Descriptorpps_id_diffu(8)}表三其中參數(shù)pps_id_diff攜帶PPS對應(yīng)的原參數(shù)集ID的偏移。而APS標(biāo)識修改信息SEI消息攜帶對應(yīng)的原參數(shù)集ID的偏移,其消息格式如表四所示:aps_change_info(PayloadSize){Descriptoraps_id_diffu(5)}表四其中參數(shù)aps_id_diff攜帶APS對應(yīng)的原參數(shù)集ID的偏移。通常來講,如果待修改參數(shù)集ID的第一視頻的參數(shù)集類型中包含PPS、不包含APS,拼接器只生成PPS標(biāo)識修改信息SEI消息;如果需要修改ID的第一視頻參數(shù)集類型中包含APS、不包含PPS,拼接器只生成APS標(biāo)識修改信息SEI消息;如果需要修改ID的第一視頻參數(shù)集類型中同時包含PPS、APS,拼接器可以分別生成PPS標(biāo)識修改信息SEI消息、APS標(biāo)識修改信息SEI消息。當(dāng)然,需要修改ID的第一視頻參數(shù)集類型中同時包含PPS、APS,拼接可以生成參數(shù)集標(biāo)識修改信息SEI消息,在參數(shù)集標(biāo)識修改信息SEI消息包含PPS和APS的修改信息。不同SEI消息通過消息中的PayloadType(負(fù)載類型)區(qū)分,因此需要為SEI消息分別分配唯一的PayloadType取值。步驟514、拼接器向終端發(fā)送第一視頻的參數(shù)集標(biāo)識修改消息(如參數(shù)集標(biāo)識修改信息SEI消息)和第一視頻碼流,即拼接器將第一視頻的參數(shù)集標(biāo)識修改消息與第一視頻碼流一起發(fā)送給終端。在執(zhí)行514步驟之前,拼接器還要判斷是否到達(dá)拼接點,并在到達(dá)拼接點時向終端發(fā)送參數(shù)集標(biāo)識修改消息和第一視頻碼流。具體的,一種判斷是否到達(dá)拼接點的可選方式為,拼接器判斷輸出第二視頻碼流的當(dāng)前時間是否已經(jīng)到達(dá)拼接點時段的起點,如果已經(jīng)到達(dá)拼接時段的起點,即認(rèn)為到達(dá)拼接點。另一種判斷是否到達(dá)拼接點的可選方式為,第二內(nèi)容服務(wù)器在拼接點之前的第二視頻碼流對應(yīng)的RTP包的包頭插入拼接標(biāo)簽(slicetag)并在slicetag中指定距離拼接點的時間,拼接器檢查第二視頻碼流對應(yīng)的RTP包頭是否包含slicetag并且其中指定距離拼接點的時間為0,如果包含,表示到達(dá)拼接點。為了確保隨機接入,參數(shù)集標(biāo)識修改消息至少隨隨機接入點(RAP:RandomAccessPoint)發(fā)送并應(yīng)用于關(guān)聯(lián)的RAP和下一個RAP之間的所有圖片。RAP是碼流中間某個只采用幀內(nèi)預(yù)測的圖片,解碼器可以從該圖片開始解碼過程。參數(shù)集標(biāo)識修改消息隨RAP發(fā)送時,拼接器將封裝有參數(shù)集標(biāo)識修改消息的NALU插入到關(guān)聯(lián)RAP的AU分隔符NALU后、第一視頻碼流中的VCLNALU之前。步驟515、終端接收第一視頻的參數(shù)集標(biāo)識修改消息(如參數(shù)集標(biāo)識修改信息SEI消息)和第一視頻碼流后,根據(jù)第一視頻的參數(shù)集標(biāo)識修改消息(如參數(shù)集標(biāo)識修改信息SEI消息)確定該第一視頻碼流中的VCLNALU引用的參數(shù)集的參數(shù)集ID(即用于解碼VCLNALU的參數(shù)集的參數(shù)集ID)。根據(jù)確定的參數(shù)集ID從通過帶外方式獲取的參數(shù)集中獲取參數(shù)集ID為確定的參數(shù)集ID的參數(shù)集,即為用于解碼第一視頻碼流的VCLNALU的參數(shù)集。本步驟以第一視頻的參數(shù)集標(biāo)識修改消息為參數(shù)集標(biāo)識修改信息SEI消息并且VCLNALU直接引用的參數(shù)集類型包含PPS、APS為例進(jìn)行說明。根據(jù)參數(shù)集標(biāo)識修改信息SEI消息確定VCLNALU引用的參數(shù)集的參數(shù)集ID以及參數(shù)集的方法具體可以為:終端首先根據(jù)參數(shù)集標(biāo)識修改信息SEI消息確定VCLNALU直接引用的參數(shù)集的參數(shù)集ID,然后根據(jù)所述參數(shù)集ID從通過帶外方式獲取的參數(shù)集中獲取VCLNALU直接引用的參數(shù)集。具體的,終端確認(rèn)參數(shù)集標(biāo)識修改信息SEI消息中攜帶APSID改變的標(biāo)志,如消息中的參數(shù)aps_id_change_flag值為1,或其它的標(biāo)識。從接收到的第一視頻碼流的VCLNALU獲取APSID,即為VCLNALU引用的自適應(yīng)參數(shù)集的原參數(shù)集ID(即apsid的原取值(original_aps_id)),并根據(jù)APSID的原取值和參數(shù)集標(biāo)識修改信息SEI消息中與APS對應(yīng)的原參數(shù)集ID的偏移計算新的取值(即用于解碼VCLNALU的參數(shù)集的參數(shù)集ID的值)。具體的為:將原取值+與APS對應(yīng)的原參數(shù)集ID的偏移,即new_aps_id=original_aps_id+aps_id_diff,獲取新的取值,并將new_aps_id作為reference_aps_id(引用自適應(yīng)參數(shù)集標(biāo)識的取值),然后從通過帶外方式獲取的參數(shù)集中獲取包含與reference_aps_id相同(即與new_aps_id相同)的aps_id的APS,即為用于解碼第一視頻碼流中VCLNALU的參數(shù)集。此外,根據(jù)引用自適應(yīng)參數(shù)集標(biāo)識的取值從通過帶外方式獲取的參數(shù)集中獲取用于解碼所述第一視頻碼流中VCLNALU的參數(shù)集具體為:終端從步驟507中獲取到的媒體描述信息中獲取參數(shù)集NALU。根據(jù)NALUheader中的nal_unit_type確定NALU中參數(shù)集的類型,不同類型的參數(shù)集具有不同的格式,必須確定參數(shù)集類型后,才能按照相應(yīng)的格式解析參數(shù)集。如果為參數(shù)集的類型為APS,獲取其中的aps_id。如果該asp_id等于reference_aps_id,即該asp_id對應(yīng)的參數(shù)集為用于解碼所述第一視頻碼流中VCLNALU的APS;否則處理下一個參數(shù)集NALU,直到找到其中的aps_id等于reference_aps_id的APS。進(jìn)一步的,終端確認(rèn)參數(shù)集標(biāo)識修改信息SEI消息中攜帶PPSID改變的標(biāo)志,從參數(shù)集標(biāo)識修改信息SEI消息中獲取與PPS對應(yīng)的原參數(shù)集ID的偏移。終端從接收到的第一視頻碼流的VCLNALU獲取該VCLNALU引用的PPS的原參數(shù)集ID,并根據(jù)原參數(shù)集ID和與PPS對應(yīng)的原參數(shù)集ID的偏移計算新的取值,并將新的取值作為修改后的PPSID(引用圖片參數(shù)集標(biāo)識)的取值,從步驟507中獲取到參數(shù)集NALU中獲取圖片參數(shù)集標(biāo)識取值為修改后的PPSID的PPS。然后終端根據(jù)VCLNALU直接引用的參數(shù)集中包含的VCLNALU間接引用的參數(shù)集ID獲取VCLNALU間接引用的參數(shù)集,如SPS和VPS.具體的,根據(jù)PPS中的sps_id從步驟507中獲取到參數(shù)集NALU中獲取包含與PPS中的spsid相同的spsid的SPS;根據(jù)SPS中的vps_id從步驟507中獲取到參數(shù)集NALU中獲取包含與SPS中的vpsid相同的vpsid的VPS。VCLNALU直接引用的參數(shù)集和VCLNALU間接引用的參數(shù)集都作為用于解碼第一視頻碼流的VCLNALU的參數(shù)集。作為一種可選方式,如果在步驟513中,終端并沒有生成參數(shù)集標(biāo)識修改信息SEI消息,而是分別生成了PPS標(biāo)識修改信息SEI消息和APS標(biāo)識修改信息SEI消息,則在步驟515中,終端分別根據(jù)PPS標(biāo)識修改信息SEI消息確定該VCLNALU引用的PPS的參數(shù)集ID,以及根據(jù)APS標(biāo)識修改信息SEI消息確定該VCLNALU引用的APS的參數(shù)集ID,并根據(jù)確定的PPS的參數(shù)集ID和APS的參數(shù)集ID從通過帶外方式獲取的參數(shù)集中獲取參數(shù)集ID為確定的PPS的參數(shù)集ID和APS的參數(shù)集ID的PPS和APS,以及根據(jù)PPS中的spsid獲取SPS;根據(jù)SPS中的vps_id獲取VPS。具體的獲取方法與上述根據(jù)參數(shù)集標(biāo)識修改信息SEI消息獲取的方法一致,本發(fā)明實施例在此不再詳述。步驟516、利用從通過帶外方式獲取的參數(shù)集中獲取到的參數(shù)集(如以第一編碼器為遵循HEVC標(biāo)準(zhǔn)的編碼器為例,包括APS,PPS,SPS和VPS)對第一視頻碼流中的VCLNALU進(jìn)行解碼。由以上實施例可知,當(dāng)某類型的第一視頻的VCLNALU直接引用的參數(shù)集的參數(shù)集ID和第二視頻的同一類型的參數(shù)集的參數(shù)集ID相同時,拼接器只需生成參數(shù)集標(biāo)識修改消息,如(參數(shù)集標(biāo)識修改信息SEI消息,或者PPS標(biāo)識修改信息SEI消息和/或APS標(biāo)識修改信息SEI消息)。該參數(shù)集標(biāo)識修改信息攜帶第一視頻的參數(shù)集ID修改信息,由終端根據(jù)參數(shù)集標(biāo)識修改消息確定用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,而無需拼接器直接修改第一視頻碼流中的參數(shù)集ID。由于生成參數(shù)集標(biāo)識修改消息的操作比較簡單,不需要拼接器具有熵解碼和熵編碼能力并且操作的頻度較低,因此只需要很少的計算資源和存儲資源。從而只需要對現(xiàn)有網(wǎng)絡(luò)中的拼接器進(jìn)行簡單的升級,而不需要在現(xiàn)有網(wǎng)絡(luò)中的拼接器上增加額外的硬件資源,或者使用新的拼接器對現(xiàn)有網(wǎng)絡(luò)中的拼接器進(jìn)行替換,從而相比于現(xiàn)有技術(shù),運營商所需運營成本較少。在采用圖5所對應(yīng)的流程中,應(yīng)用服務(wù)器在步驟506修改第一視頻參數(shù)集中參數(shù)集ID,然后在步驟507中將包含修改后參數(shù)集ID的第一視頻參數(shù)集發(fā)送給終端。然而,作為另一種可選方式,應(yīng)用服務(wù)器還可以不修改第一視頻參數(shù)集中參數(shù)集ID,而在步驟507中向終端發(fā)送的媒體描述信息獲取響應(yīng)中指示第一視頻參數(shù)集對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。也就是說,應(yīng)用服務(wù)器向終端發(fā)送的媒體描述信息獲取響應(yīng)中包含第二視頻的參數(shù)集、第一視頻的原參數(shù)集以及第一視頻的原參數(shù)集的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,其中第一視頻的原參數(shù)集為應(yīng)用服務(wù)器在步驟504中獲取到的第一視頻的參數(shù)集,從而減化應(yīng)用服務(wù)器的操作。以步驟507中向終端發(fā)送的媒體描述信息為SDP形式為例進(jìn)行說明。具體的,應(yīng)用服務(wù)器通過在媒體描述信息獲取響應(yīng)中的SDP中的參數(shù)sprop-parameter-sets(流特性參數(shù)集)的一組子參數(shù)<parametersettype>:<parametersetid>:<parametersetdata>來攜帶一個參數(shù)集NALU。其中:parametersettype(參數(shù)集類型)為三字節(jié)文本,代表參數(shù)集的類型。parametersetid(參數(shù)集標(biāo)識)為1字節(jié)無符號整數(shù),代表參數(shù)集ID的取值。該字段的值可以與參數(shù)集NALU中原參數(shù)集ID的值不同。如果parametersetid的值與參數(shù)集NALU中原參數(shù)集ID的值不同,以parametersetid字段的值作為用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。所述原參數(shù)集ID為第一內(nèi)容服務(wù)器在步驟502中發(fā)送給應(yīng)用服務(wù)器的參數(shù)集NALU中的參數(shù)集ID,也即為還沒修改的第一視頻的參數(shù)集ID。當(dāng)一組子參數(shù)用于攜帶一個參數(shù)集ID需要修改的第一視頻的參數(shù)集NALU時,parametersetid為需要用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。parametersetdata(參數(shù)集數(shù)據(jù))為Base64(基本64字符)編碼的參數(shù)集NALU。當(dāng)一組子參數(shù)用于攜帶一個參數(shù)集ID需要修改的第一視頻的參數(shù)集NALU時,所述被攜帶的參數(shù)集NALU為第一內(nèi)容服務(wù)器發(fā)送給應(yīng)用服務(wù)器的參數(shù)集NALU。參數(shù)sprop-parameter-sets可以包含多組子參數(shù)以攜帶多個參數(shù)集NALU,如果parameter-sets包含多組子參數(shù)以攜帶多個參數(shù)集NALU,各組子參數(shù)之間通過字符“,”分隔。以第二編碼器、第一編碼器均為遵循HEVC標(biāo)準(zhǔn)的編碼器為例進(jìn)行說明。按照上述方式,步驟507中應(yīng)用服務(wù)器發(fā)送給終端的攜帶參數(shù)集NALU的SDP示例如下所示。具體的,假設(shè)應(yīng)用服務(wù)器接收到的第二視頻參數(shù)集NALU包括一個VPSNALU、一個SPSNALU、一個PPSNALU和一個APSNALU,對應(yīng)參數(shù)集NALU中的VPSID、SPSID、PPSID、APSID均為0。應(yīng)用服務(wù)器接收到的第一視頻參數(shù)集NALU也包括一個VSPNALU、一個SPSNALU、一個PPSNALU和一個APSNALU,對應(yīng)參數(shù)集NALU中的VPSID、SPSID、PPSID、APSID也均為0。因此,第一視頻的所有類型的原參數(shù)集ID由于與第二視頻的同類型的參數(shù)集ID相同而都需要修改,應(yīng)用服務(wù)器確定各類型參數(shù)集對應(yīng)的參數(shù)集ID的偏移都為1,即第一視頻VSP、SPS、PPS、APS的VPSID、SPSID、PPSID、APSID的新取值都為第一視頻的所有類型的原參數(shù)集ID+參數(shù)集ID的偏移即0+1=1。因此,SDP中攜帶8個參數(shù)集NALU,第一到四組子參數(shù)攜帶第二視頻的參數(shù)集NALU,對應(yīng)的參數(shù)集類型分別為VPS、SPS、PPS、APS;第二視頻參數(shù)集的參數(shù)集ID不需要修改,因此SDP中對應(yīng)的子參數(shù)parametersetid均為0,對應(yīng)的parametersetdata中的參數(shù)集NALU中的參數(shù)集ID均為0;第五到八組子參數(shù)攜帶第一視頻的NALU,第一視頻參數(shù)集的參數(shù)集ID都需要修改且新取值都為1,因此SDP中對應(yīng)的子參數(shù)parametersetid均為1,但對應(yīng)的parametersetdata中的參數(shù)集NALU中的參數(shù)集ID均為0。m=video49170RTP/AVP98a=rtpmap:98H264/90000a=fmtp:98sprop-parameter-sets=<vps><0><parametersetdata#1>,<sps><0><parametersetdata#2>,<pps><0><parametersetdata#3>,<aps><0><parametersetdata#4><vps><1><parametersetdata#5>,<sps><1><parametersetdata#6>,<pps><1><parametersetdata#7>,<aps><1><parametersetdata#8>以第一視頻的參數(shù)集修改信息包含第一視頻的待修改參數(shù)集ID的參數(shù)集類型以及與待修改參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移為例進(jìn)行說明。由于步驟507中應(yīng)用服務(wù)器發(fā)送給終端的第一視頻的原參數(shù)集NALU中的參數(shù)集ID為第一視頻的原參數(shù)集ID,當(dāng)終端獲取VCLNALU直接引用的參數(shù)集后,所述VCLNALU直接引用的參數(shù)集中包含的VCLNALU間接引用的參數(shù)集的參數(shù)集ID為原參數(shù)集ID,由于參數(shù)集ID以媒體描述響應(yīng)消息中指示的參數(shù)集ID為準(zhǔn),終端使用原參數(shù)集ID不能從通過帶外方式獲取的參數(shù)集中獲取的參數(shù)集中獲取正確的參數(shù)集,因此在步驟508中所述第一視頻的參數(shù)集ID修改信息中還包含VCLNALU間接引用的參數(shù)集ID修改信息。相應(yīng)地,在步驟513,參數(shù)集標(biāo)識修改消息中還需要包含VCLNALU間接引用的參數(shù)集ID修改信息。以第一編碼器為遵循HEVC標(biāo)準(zhǔn)的編碼器,即VCLNALU間接引用的參數(shù)集類型包含SPS、VPS為例進(jìn)行說明。參數(shù)集標(biāo)識修改信息SEI消息中還需要包含vps_id_change_flag(視頻參數(shù)集標(biāo)識更改標(biāo)志)、sps_id_change_flag(序列參數(shù)集標(biāo)識更改標(biāo)識),如果待修改參數(shù)集ID的參數(shù)集類型包含vps,拼接器設(shè)置vps_id_change_flag為1,并通過vps_id_diff(視頻參數(shù)集標(biāo)識偏移)傳遞對應(yīng)的參數(shù)集ID偏移;如果待修改參數(shù)集ID的參數(shù)集類型包含sps,拼接器設(shè)置sps_id_change_flag為1,并通過參數(shù)序列參數(shù)集標(biāo)識偏移(sps_id_diff)傳遞對應(yīng)的參數(shù)集ID偏移。即,采用此種方式,參數(shù)集標(biāo)識修改信息SEI消息的格式如表五所示:parameter_set_id_change_info(PayloadSize){Descriptorvps_id_change_flagu(1)sps_id_change_flagu(1)aps_id_change_flagu(1)pps_id_change_flagu(1)If(vps_id_change_flag)vps_id_diffu(4)If(sps_id_change_flag)sps_id_diffu(5)If(aps_id_change_flag)aps_id_diffu(5)If(pps_id_change_flag)pps_id_diffu(8)}表五其中,對表五的各參數(shù)的解釋與表二相同,本發(fā)明實施例在此不再詳述.終端獲取到攜帶有第二視頻參數(shù)集NALU、第一視頻的原參數(shù)集NALU的SDP后,將各參數(shù)集NALU存儲到參數(shù)集NALU記錄表中,參數(shù)集NALU記錄表的格式如表六所示。分別對應(yīng)與SDP中參數(shù)sprop-parameter-sets的各子參數(shù):parametersettypeparametersetidparametersetdata表六其中,如上所述,parametersettype表示參數(shù)集類型,parametersetid表示用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,parametersetdata為Base64編碼的修改了參數(shù)集ID的參數(shù)集NALU.具體的,如果終端獲取到的攜帶有第二視頻參數(shù)集NALU、第一視頻的原參數(shù)集NALU的SDP為前述攜帶參數(shù)集NALU的SDP示例,參數(shù)集NALU記錄表如表七所示vps0Parametersetdata#1sps0Parametersetdata#2pps0Parametersetdata#3aps0Parametersetdata#4vps1Parametersetdata#5sps1Parametersetdata#6pps1Parametersetdata#7aps1Parametersetdata#8表七在步驟515中,終端接收參數(shù)集標(biāo)識修改信息SEI消息后,根據(jù)參數(shù)集標(biāo)識修改信息SEI消息得到reference_aps_id以及reference_pps_id并根據(jù)reference_aps_id、reference_pps_id從通過帶外方式獲取的參數(shù)集中獲取包含的apsid為reference_aps_id的APS、包含的pps_id為reference_pps_id的PPS。然后獲取PPS中包含的sps_id,即為original_sps_id,根據(jù)參數(shù)集標(biāo)識修改信息SEI消息得到reference_sps_id(參考序列參數(shù)集標(biāo)識取值)、根據(jù)reference_aps_id從通過帶外方式獲取的參數(shù)集中獲取包含的spsid為reference_sps_id的SPS。獲取SPS中的vps_id,即為original_vps_id,根據(jù)參數(shù)集標(biāo)識修改信息SEI消息得到reference_vps_id(參考視頻參數(shù)集標(biāo)識取值),根據(jù)reference_vps_id從通過帶外方式獲取的參數(shù)集中獲取包含的vpsid為reference_vps_id的VPS。具體的,通過reference_aps_id、reference_pps_id、reference_sps_id或reference_vps_id獲取對應(yīng)參數(shù)集的方式為,從參數(shù)集NALU記錄表獲得parametersettype為對應(yīng)類型并且parametersetid等于reference_aps_id、reference_pps_id、reference_sps_id或reference_vps_id的唯一一條參數(shù)集NALU記錄,從該記錄的parametersetdata中獲取對應(yīng)的Base64編碼的參數(shù)集NALU,再對VCLNALU進(jìn)行解碼。作為另一種可選方式,當(dāng)?shù)谝灰曨l只包含一個VPS、一個SPS、一個PPS、一個APS時,為了簡化終端操作,拼接器執(zhí)行步驟512之后,執(zhí)行步驟513時,即當(dāng)拼接器確認(rèn)某種類型的參數(shù)集ID需要修改時,拼接器可以直接在參數(shù)集標(biāo)識修改信息SEI消息(ParameterSetIDChangeInfoSEImessage)中包含對應(yīng)參數(shù)集ID的新取值,而不是對應(yīng)的參數(shù)集ID偏移?;蛘?,拼接器可以直接在PPS標(biāo)識修改信息SEI消息或APS標(biāo)識修改信息SEI消息中包含修改后的PPSID或修改后的APSID。相應(yīng)的,在步驟515中,終端直接從第一視頻的參數(shù)集標(biāo)識修改消息中獲取對應(yīng)參數(shù)集ID從而確定用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。作為另一種可選方式,在步驟508中第一視頻的參數(shù)集ID修改信息為待修改的參數(shù)集ID的參數(shù)集類型和用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,其中用于解碼VCLNALU的參數(shù)集的參數(shù)集ID為應(yīng)用服務(wù)器為待修改的參數(shù)集ID分配的修改后參數(shù)集ID的取值。以步驟507中采用在SDP中包含修改了參數(shù)集ID的第一視頻的參數(shù)集NALU為例進(jìn)行說明。作為一種可選方式,步驟514中,拼接器發(fā)送給終端的參數(shù)集標(biāo)識修改信息SEI消息的格式如表8所示:parameter_set_id_change_info(PayloadSize){Descriptoraps_id_change_flagu(1)pps_id_change_flagu(1)if(aps_id_change_flag)new_aps_idu(5)if(pps_id_change_flag)new_pps_idu(8)}表8其中,參數(shù)APS標(biāo)識更改標(biāo)識(aps_id_change_flag)取值為1,表明APSID需要修改,參數(shù)PPS標(biāo)識更改標(biāo)識(pps_id_change_flag)取值為1,表明PPSID需要修改。Descirptor:u(1)表明參數(shù)aps_id_change_flag和pps_id_change_flag占一個比特位。參數(shù)new_aps_id攜帶修改后的APSID,參數(shù)new_aps_id攜帶修改后的PPSID。Descirptor:u(5)表明采用5比特表增的無符號整數(shù),u(8)表明采用8比特表示的無符號整數(shù)。當(dāng)然,如果拼接器發(fā)送給終端的是PPS標(biāo)識修改信息SEI消息和/或APS標(biāo)識修改信息SEI消息,則消息格式與表8類似,本發(fā)明實施例在不再詳述。以步驟507中采用在SDP中包含第一視頻的原參數(shù)集NALU和原參數(shù)集NALU對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID為例進(jìn)行說明。第一拼接器在執(zhí)行步驟513時,參數(shù)集標(biāo)識修改信息SEI消息的格式如表9所示:parameter_set_id_change_info(PayloadSize){Descriptorvps_id_change_flagu(1)sps_id_change_flagu(1)aps_id_change_flagu(1)pps_id_change_flagu(1)if(vps_id_change_flag)new_vps_idu(4)if(sps_id_change_flag)new_sps_idu(5)if(aps_id_change_flag)new_aps_idu(5)if(pps_id_change_flag)new_pps_idu(8)}表9其中,表9各參數(shù)的作用與表8類似,本發(fā)明實施例在此不再詳述。作為本發(fā)明實施例的另一種實現(xiàn)方式,第一視頻還可以在會話過程中間確定。采用此種方案,拼接器上需預(yù)先配置第一內(nèi)容服務(wù)器的地址,當(dāng)拼接器確定需要進(jìn)行拼接準(zhǔn)備時,向第一內(nèi)容服務(wù)器請求第一視頻碼流。采用此種方案,終端在會話初始或者會話建立前獲得的媒體描述信息中只有第二視頻的參數(shù)集,終端需要在會話中間重新獲取包含第二視頻的參數(shù)集、第一視頻的參數(shù)集的媒體描述信息。參見圖6,本發(fā)明實施例提供的另一碼流拼接方法流程圖,包括如下步驟:步驟601-605,與步驟501-504相同,本發(fā)明實施例在此不再詳述。步驟606、應(yīng)用服務(wù)器向終端發(fā)送第一媒體描述信息獲取響應(yīng)消息,其中的媒體描述信息包含第二視頻的參數(shù)集。步驟607-609與步驟509-511相同,本發(fā)明實施例在此不再詳述。步驟610、拼接器根據(jù)配置的第一內(nèi)容服務(wù)器的地址,向第一內(nèi)容服務(wù)器發(fā)送第一視頻獲取請求,所述第一視頻獲取請求中還可以包含用戶標(biāo)識,第二視頻碼流標(biāo)識信息。具體的,在執(zhí)行此步驟之前,拼接器判斷是否需要進(jìn)行拼接準(zhǔn)備,如果需要進(jìn)行拼接準(zhǔn)備,拼接器向第一內(nèi)容服務(wù)器發(fā)送第一視頻獲取請求。拼接器判段是否需要進(jìn)行拼接準(zhǔn)備的方法參見步驟512的描述,本發(fā)明實施例在此不再詳述。步驟611、第一內(nèi)容服務(wù)器確定第一視頻碼流,將第一視頻碼流發(fā)送給拼接器。作為確定第一視頻碼流的一種可選方式,第一內(nèi)容服務(wù)器接收到的步驟608中的拼接器發(fā)送的第一視頻獲取請求中包含終端用戶的標(biāo)識,第一內(nèi)容服務(wù)器根據(jù)終端用戶的標(biāo)識獲取終端用戶的用戶偏好,根據(jù)獲取的用戶偏好選擇第一視頻并確定第一視頻碼流。作為確定第一視頻碼流的另一種可選方式,第一內(nèi)容服務(wù)器還可以僅根據(jù)第二視頻流的標(biāo)識信息獲取第二內(nèi)容的插播策略,根據(jù)插播策略選擇第一內(nèi)容并確定第一視頻碼流。采用此種方法時,步驟608中的第一視頻獲取請求需要包含第二視頻流的標(biāo)識信息。當(dāng)然,第一內(nèi)容服務(wù)器還可以僅根據(jù)存儲的業(yè)務(wù)策略選擇第一內(nèi)容。此外,第一內(nèi)容服務(wù)器還可以采用別的方式確定第一視頻碼流,本發(fā)明實施例在此不再一一詳述。步驟612、第一內(nèi)容服務(wù)器將第一視頻的媒體描述信息發(fā)送給應(yīng)用服務(wù)器,第一視頻的媒體描述信息包含第一視頻的原參數(shù)集,第一視頻的參數(shù)集的類型及與各類型對應(yīng)的參數(shù)集的原參數(shù)集ID。步驟613、應(yīng)用服務(wù)器修改第一視頻的原參數(shù)集ID。在執(zhí)行步驟613之前,作為一種可選方式,應(yīng)用服務(wù)器根據(jù)終端用戶的標(biāo)識或者第二視頻碼流標(biāo)識信息確定接收到的第一視頻的媒體描述信息對應(yīng)的第二視頻的描述信息。應(yīng)用服務(wù)器修改第一視頻的原參數(shù)集ID的具體方法與步驟506相同,本發(fā)明實施例在此不再詳述。步驟614、應(yīng)用服務(wù)器向拼接器發(fā)送第二視頻碼流和第一視頻碼流信息。具體的,第二視頻碼流信息為第二視頻碼流標(biāo)識信息,第一視頻碼流信息為第一視頻參數(shù)集ID修改信息。步驟614與步驟508相同,本發(fā)明實施例在此不再詳述。步驟615、拼接器根據(jù)第一視頻參數(shù)集ID修改信息生成第一視頻的不生效的參數(shù)集標(biāo)識修改消息(如:參數(shù)集標(biāo)識修改信息SEI消息),參數(shù)集標(biāo)識修改消息除第一視頻的參數(shù)集ID修改信息外,進(jìn)一步包含指示參數(shù)集ID修改信息不生效的標(biāo)志信息。本流程以參數(shù)集標(biāo)識修改消息中只包含VCLNALU直接引用的參數(shù)集類型對應(yīng)的參數(shù)集ID修改信息,并且參數(shù)集標(biāo)識修改消息為參數(shù)集標(biāo)識修改信息SEI消息為例進(jìn)行說明。具體的,在參數(shù)集標(biāo)識修改信息SEI消息為例中包含修改信息生效標(biāo)志(change_info_enable_flag)并設(shè)置該標(biāo)志的取值為0,當(dāng)然,還可以用其它的方式,如取值為字符’F’、字符串’TALSE’等其他的標(biāo)識,指示參數(shù)集ID修改信息SEI消息中攜帶的參數(shù)集ID修改信息不生效,本發(fā)明實施例在此不做限定。以第一視頻的參數(shù)集修改信息包含第一視頻的待修改參數(shù)集ID的參數(shù)集類型以及與待修改參數(shù)集ID的參數(shù)集類型對應(yīng)的參數(shù)集ID偏移為例,并且第一編碼器為遵循HEVC標(biāo)準(zhǔn)的編碼器進(jìn)行說明。進(jìn)一步攜帶修改信息生效標(biāo)志的parameterSetIDChangeInfoSEImessage的格式如表10所示:parameter_set_id_change_info(PayloadSize){Descriptorchange_info_enable_flagu(1)aps_id_change_flagu(1)pps_id_change_flagu(1)If(aps_id_change_flag)aps_id_diffu(5)If(pps_id_change_flag)pps_id_diffu(8)}表10其中,在本步驟中,拼接器將change_info_enable_flag設(shè)置為0。表明該消息的參數(shù)集ID修改信息暫時不生效。對于該消息的其它參數(shù),與表2所述,本發(fā)明實施例在此不再詳述。步驟616、拼接器向終端發(fā)送包含指示參數(shù)集ID修改信息不生效的標(biāo)志信息的第一視頻的參數(shù)集標(biāo)識修改消息(即不生效的參數(shù)集標(biāo)識修改消息)和第二視頻碼流。具體的,拼接器隨第二視頻碼流發(fā)送步驟615中生成的包含指示參數(shù)集ID修改信息不生效的標(biāo)志信息的參數(shù)集標(biāo)識修改消息,如包含指示參數(shù)集ID修改信息不生效的標(biāo)志信息的的參數(shù)集ID修改信息SEI消息。類似的,為了保證終端收到該SEI消息,可以在連續(xù)多個AU中插入封裝有該參數(shù)集標(biāo)識修改消息的NALU。為了保證平滑傳輸,拼接器通常設(shè)有緩沖區(qū)。拼接器在接收視頻碼流后,將視頻碼流存儲在緩沖區(qū)中。為了減少發(fā)送包含指示參數(shù)集ID修改信息不生效的標(biāo)志信息的參數(shù)集標(biāo)識修改消息所帶來的開銷,拼接器也可以等待拼接點之前的第二視頻碼流緩沖完畢后,判斷當(dāng)前待發(fā)送第二視頻圖片是否為拼接點之前最后一個RAP,如果是,隨該第二視頻RAP發(fā)送包含指示參數(shù)集ID修改信息不生效的標(biāo)志信息的參數(shù)集標(biāo)識修改消息。類似的,為了保證終端收到該SEI消息,可以在該RAPAU之后連續(xù)多個AU中插入封裝有該參數(shù)集標(biāo)識修改消息的NALU。如果參數(shù)集標(biāo)識修改消息為PPS標(biāo)識修改信息SEI消息和/或APS標(biāo)識修改信息SEI消息步驟614中拼接器還可以類似地生成包含指示參數(shù)集ID修改信息不生效的標(biāo)志信息的的PPS標(biāo)識修改信息SEI消息和/或包含指示參數(shù)集ID修改信息不生效的標(biāo)志信息的的APS標(biāo)識修改消息SEI消息。步驟617、終端接收包含指示參數(shù)集ID修改信息不生效的標(biāo)志信息的第一視頻的參數(shù)集標(biāo)識修改消息,確認(rèn)其中包含指示參數(shù)集ID修改信息不生效的標(biāo)志信息,向應(yīng)用服務(wù)器發(fā)送第二媒體描述信息獲取請求(如會話更改請求)。具體的,終端確定接收到的參數(shù)集標(biāo)識修改消息中的change_info_enable_flag為0,即確認(rèn)參數(shù)集標(biāo)識修改消息包含指示參數(shù)集ID修改信息不生效的標(biāo)志信息。終端向應(yīng)用服務(wù)器發(fā)送媒體描述信息獲取請求,如SIPRe-Invite請求、RTSPGetParameter請求。步驟618、應(yīng)用服務(wù)器向終端發(fā)送第二媒體描述信息獲取響應(yīng)(如會話更改響應(yīng)),媒體描述信息獲取響應(yīng)中包含第二視頻參數(shù)集NALU、第一視頻參數(shù)集NALU。其中第一視頻參數(shù)集NALU中的參數(shù)集ID為修改后的第一視頻的參數(shù)集ID,具體的為第一視頻的參數(shù)集ID的原取值加上參數(shù)集ID的偏移,或者應(yīng)用服務(wù)器直接為修改后的第一視頻的參數(shù)集ID分配的取值。步驟619、拼接器生成包含指示參數(shù)集ID修改信息生效的標(biāo)志信息的參數(shù)集標(biāo)識修改消息(如:參數(shù)集ID修改信息SEI消息,或者PPS標(biāo)識修改信息SEI消息和/或APS標(biāo)識修改信息SEI消息,即將change_info_enable_flag設(shè)置為1。步驟620、拼接器向終端發(fā)送包含指示參數(shù)集ID修改信息生效的標(biāo)志信息的參數(shù)集標(biāo)識修改消息和第一視頻碼流。在執(zhí)行步驟620之前,拼接器還要判斷是否到達(dá)拼接點。拼接器在到達(dá)拼接點時向終端發(fā)送參數(shù)集標(biāo)識修改消息和第一視頻碼流。拼接器判斷是否到達(dá)拼接點的具體方式與圖5所述流程中相同的描述相同。為了確保隨機接入,參數(shù)集標(biāo)識修改消息(參數(shù)集ID修改信息SEI消息,或者PPS標(biāo)識修改信息SEI消息和/或APS標(biāo)識修改信息SEI消息)至少隨隨機接入點發(fā)送并應(yīng)用于關(guān)聯(lián)的RAP和下一個RAP之間的所有圖片。RAP是碼流中間某個只采用幀內(nèi)預(yù)測的圖片,解碼器可以從該圖片開始解碼過程。參數(shù)集標(biāo)識修改消息隨RAP發(fā)送時,拼接器將封裝有參數(shù)集標(biāo)識修改消息的NALU插入到關(guān)聯(lián)RAP的AU分隔符NALU后、所有VCLNALU之前。621、終端接收包含指示參數(shù)集ID修改信息生效的標(biāo)志信息的參數(shù)集標(biāo)識修改消息(如參數(shù)集ID修改信息SEI消息,或者PPS標(biāo)識修改信息SEI消息和/或APS標(biāo)識修改信息SEI消息)后,確認(rèn)其中包含指示參數(shù)集ID修改信息生效的標(biāo)志信息(如參數(shù)集標(biāo)識修改消息中的change_info_enable_flag的取值為1),根據(jù)包含指示參數(shù)集ID修改信息生效的標(biāo)志信息的參數(shù)集標(biāo)識修改消息確定用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。根據(jù)確定的參數(shù)集ID從通過帶外方式獲取的參數(shù)集中獲取參數(shù)集ID與確定的參數(shù)集ID相同的參數(shù)集。根據(jù)參數(shù)集標(biāo)識修改消息確定用于確碼一視頻碼流中VCLNALU參數(shù)集的參數(shù)集ID方法可以參考步驟515的描述,本發(fā)明實施例在此不在詳述。作為一種可選方式,在執(zhí)行步驟614后,還可以不用執(zhí)行步驟615到618,而由應(yīng)用服務(wù)器主動向終端發(fā)送媒體描述信息(本流程圖沒有示出)。媒體描述信息中包含第二視頻的參數(shù)集、第一視頻的修改改后參數(shù)集。其中第一視頻的修改后的參數(shù)集中參數(shù)集ID為修改后的第一視頻的參數(shù)集ID(即用于解碼VCLNALU的參數(shù)集的參數(shù)集ID)。具體的,應(yīng)用服務(wù)器可以向終端發(fā)送包含媒體描述信息的會話更改請求消息,如SIPRe-Invite請求消息、SIPUpdate請求消息;或者向終端發(fā)送包含媒體描述信息的通知消息,如RTSPPlay-Notify請求消息、RTSPSetParameter請求消息、RTSPNotify請求消息或者SIPInfo請求消息。終端接收應(yīng)用服務(wù)器發(fā)送的媒體描述信息,獲取其中的第二視頻參數(shù)集NALU、第一視頻參數(shù)集NALU。還可以不執(zhí)行步驟619-622,轉(zhuǎn)而執(zhí)行步驟513-516。作為另一種可選方式,圖6對應(yīng)的流程中的參數(shù)集標(biāo)識修改消息中還包含第一視頻的VCLNALU間接引用的參數(shù)集類型對應(yīng)的參數(shù)集ID修改信息,相應(yīng)地,步驟618中媒體描述信息獲取響應(yīng)消息或者應(yīng)用服務(wù)器主動向終端發(fā)送的媒體描述信息中包含第一視頻的原參數(shù)集為以及用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。作為本發(fā)明的另一可選方式,參數(shù)集標(biāo)識修改消息(如參數(shù)集ID修改SEI消息)中包含待修改參數(shù)集ID的參數(shù)集類型,而不攜帶其他的參數(shù)集ID修改信息,如不攜帶修改后的值或參數(shù)集ID修改偏移,即攜帶一個或多個***_id_change_flag,而不攜帶***_id_diff參數(shù)或new_***_id參數(shù)。終端收到參數(shù)集標(biāo)識修改消息后,根據(jù)參數(shù)集標(biāo)識修改消息確定需要修改ID的第一視頻參數(shù)集的類型,通過RTCP消息請求拼接器發(fā)送需要修改ID的第一視頻參數(shù)集類型對應(yīng)的***_id_diff或者new_***_id,拼接器通過RTCP消息將終端請求的參數(shù)集ID修改信息發(fā)送給終端。即為了保證隨機接入,以RAP間隔輪播的只是***_id_change_flag,***_id_diff或者new_***_id只需要發(fā)送一次。本實施例中,其中“***”為參數(shù)集類型。圖7為本發(fā)明實施例提供的另一碼流拼接方法流程圖,包括如下步驟:步驟701-712與步驟501-512相同,本發(fā)明實施例在此不再詳述。步驟713、拼接器生成參數(shù)集標(biāo)識修改消息(如參數(shù)集ID修改信息SEI消息)。所述參數(shù)集標(biāo)識修改消息中只包括待修改參數(shù)集ID的參數(shù)集類型,而不攜帶其他的參數(shù)集ID修改信息,如不攜帶用于解碼VCLNALU的參數(shù)集的參數(shù)集ID或者參數(shù)集ID偏移。具體的,如果在步驟707中應(yīng)用服務(wù)器向終端發(fā)送的媒體描述信息中攜帶了第一視頻的修改后的參數(shù)集(即修改后的參數(shù)集中的參數(shù)集ID為用于解碼VCLNALU的參數(shù)集的參數(shù)集ID),則此步驟的待修改參數(shù)集ID的參數(shù)集類型僅為VCLNALU直接引用的參數(shù)集類型。以第一編碼器為遵循HEVC編碼標(biāo)準(zhǔn)的編碼器為例進(jìn)行說明。待修改參數(shù)集ID的參數(shù)集類型為APS和/或PPS,即參數(shù)集ID修改信息中攜帶aps_id_change_flag、pps_id_change_flag,如果拼接器接收到第一視頻的參數(shù)集ID修改信息中待修改ID的第一視頻參數(shù)集類型包含APS,拼接器將aps_id_change_flag設(shè)置為1,否則設(shè)置為0;如果如果拼接器接收到第一視頻的參數(shù)集ID修改信息中待修改ID的第一視頻參數(shù)集類型包含PPS,拼接器將pps_id_change_flag設(shè)置為1,否則設(shè)置為0。作為另一種可選方式,第一如果在步驟709中應(yīng)用服務(wù)器向終端發(fā)送的媒體描述信息中攜帶的是原始的第一視頻參數(shù)集NALU,此步驟的待修改參數(shù)集ID的參數(shù)集類型還包含VCLNALU間接引用的參數(shù)集類型。以第一編碼器為遵循HEVC編碼標(biāo)準(zhǔn)的編碼器為例進(jìn)行說明。參數(shù)集標(biāo)識修改消息中需包含vps_id_change_flag、sps_id_change_flag、aps_id_change_flag、pps_id_change_flag,此時參數(shù)集ID修改信息SEI消息的具體格式如表11所示。parameter_set_id_change_info(PayloadSize){Descriptorvps_id_change_flagu(1)sps_id_change_flagu(1)aps_id_change_flagu(1)pps_id_change_flagu(1)}表11其中,表11中各參數(shù)的設(shè)置與表9相同,本發(fā)明實施例在此不再詳述。步驟714、拼接器向終端發(fā)送參數(shù)集標(biāo)識修改消息(如ParameterSetIDChangeInfoSEImessage)和第一視頻碼流。所述參數(shù)集標(biāo)識修改消息中只包括修改的參數(shù)集ID的參數(shù)集類型,而不攜帶其他的參數(shù)集ID修改信息,如不攜帶用于解碼VCLNALU的參數(shù)集的參數(shù)集ID或者原參數(shù)集ID的偏移。步驟715、終端根據(jù)參數(shù)集標(biāo)識修改消息確定需要修改ID的參數(shù)集類型。步驟716、終端向拼接器發(fā)送RTCP請求,其中包含步驟715中確定的需要修改參數(shù)集ID的的參數(shù)集類型。上述RTCP請求可以是RTCP參數(shù)集標(biāo)識修改信息請求ParameterSetIDChange-Request消息,簡稱RTCPPSIC-R消息。RTCPPSIC-R消息是一種RTCP反饋消息,采用如圖8所示。其中:PT(PayloadType):RTCP包類型FMT(FeedbackMessageType):反饋消息類型,在包類型下唯一SSRCofpacketsender:RTCP反饋消息發(fā)送方的SSRCSSRCofmediasource:RTCP反饋消息對應(yīng)的RTP流的SSRC。FCI(FeedbackControlInformation,反饋控制信息):RTCP反饋消息的內(nèi)容,不同類型的RTCP反饋消息中包含不同的內(nèi)容。RTCPPSIC-R消息中PT取值為206,代表它是PayloadSpecificFeedbackMessage;FMT取值為4,代表它是PSIC消息;SSRCofpacketsender為終端的SSRC;SSRCofmediasource從SDP中獲取,為承載輸出視頻碼流的RTP流的SSRC,也即第二視頻碼流標(biāo)識信息中的SSRC。(對于終端來說,不區(qū)分第二視頻碼流和第一視頻碼流,終端看到的SSRC是一個)。FCI的格式如圖9所示。其中SFMT(SubFeedbackMessageType,子反饋消息類型):PSIC消息的類型。這里設(shè)置為1,代表為PSIC-R消息;NumberofParameterSetType:需要修改ID的參數(shù)集類型的個數(shù);ParameterSetType:需要修改ID的參數(shù)集類型標(biāo)識,共有NumberofParameterSetType個ParameterSetType。ParameterSetType可以有多種形式。以第一編碼器為遵循HEVC標(biāo)準(zhǔn)的編碼器為例,ParameterSetType的取值可以為正整數(shù),并且取值1、2、3、4分別代表VPS、SPS、PPS、APS.步驟717、拼接器收到RTCP請求(如RTCPPSIC-R消息)后,通過RTCP響應(yīng)(如RTCPPSIC-I消息)將第一視頻的參數(shù)集ID修改信息發(fā)送給終端。RTCPPSIC-I消息也是一種RTCPPSIC消息,它的SFMT設(shè)置為2,其中包含NumberofParameterSetIDChangeInfo(參數(shù)集標(biāo)識修改信息個數(shù)),指示RTCPPSIC-I消息中包含的參數(shù)集標(biāo)識修改信息條數(shù)。如果參數(shù)集ID修改信息包括需要修改ID的第一視頻參數(shù)集類型以及對應(yīng)的原參數(shù)集ID的偏移,F(xiàn)CI的格式如圖10所示。一條參數(shù)集標(biāo)識修改信息包括參數(shù)集類型(ParameterSetType)和原參數(shù)集ID的偏移(ParameterSetDiff)。如果參數(shù)集ID修改信息包括需要修改ID的第一視頻參數(shù)集類型以及對應(yīng)的參數(shù)集ID映射關(guān)系,F(xiàn)CI格式如圖11所示。一條參數(shù)集標(biāo)識修改信息包括ParameterSetType、OriginalParameterSetID、NewParameterSetID如果參數(shù)集ID修改信息包括待修改ID的第一視頻參數(shù)集類型以及對應(yīng)的參數(shù)集ID新取值,F(xiàn)CI格式如圖12所示。一條參數(shù)集標(biāo)識修改信息包括ParameterSetType、NewParameterSetID。步驟720、終端接收RTCPPSIC-I消息,對于每一個第一視頻VCLNALU,終端根據(jù)RTCPPSIC-I消息確定該VCLNALU引用參數(shù)集的參數(shù)集ID的取值,并獲取所有引用的參數(shù)集,并使用獲得的參數(shù)集解碼對應(yīng)的VCLNALU。作為本發(fā)明實施例的另一種可選方式,也可以完全通過傳輸層信令來由拼接器向終端發(fā)送第一視頻參數(shù)集ID修改信息。拼接器生成RTCPPSCI-I消息如前所述的RTCPPSCI-I消息。到達(dá)拼接點后,拼接器向終端發(fā)送第一視頻碼流和RTCPPSCI-I消息,終端接收第一視頻碼流和RTCPPSCI-I消息,對于每一個第一視頻VCLNALU,終端根據(jù)RTCPPSIC-I消息確定該VCLNALU引用參數(shù)集的參數(shù)集ID的取值,并獲取所有引用的參數(shù)集,終端使用這些參數(shù)集解碼對應(yīng)的VCLNALU。此外,為了保證終端在解碼第一視頻碼流之前獲得第一視頻參數(shù)集ID修改信息,拼接器也可以在確定用于封裝第一視頻碼流的第一個RTP包的序列號后,向終端發(fā)送RTCPPSCI-I消息。此時,RTCPPSCI-I消息除包含步驟717中RTCPPSCI-I消息的全部信息外,還包含F(xiàn)irstSequenceNumber(第一序列號),F(xiàn)irstSequenceNumber是用于封裝第一視頻碼流的第一個RTP包的序列號。為了保證終端收到RTCPPSCI-I消息,拼接器可以連續(xù)發(fā)送多個相同的RTCPPSCI-I消息。上述實施例中,都是由拼接器生成參數(shù)集標(biāo)識修改消息(如:ParameterSetIDChangeInfoSEIMessage)。實際應(yīng)用中,參數(shù)集標(biāo)識修改消息(如:ParameterSetIDChangeInfoSEIMessage)也可以由應(yīng)用服務(wù)器生成,再發(fā)送給拼接器。比如應(yīng)用服務(wù)器向拼接器發(fā)送參數(shù)集標(biāo)識修改信息時,直接以ParameterSetIDChangeInfoSEIMessage的形式發(fā)送第一視頻的參數(shù)集ID修改信息。拼接器只負(fù)責(zé)ParameterSetIDChangeInfoSEIMessage的發(fā)送。由于應(yīng)用服務(wù)器具備熵編碼和熵解碼能力,當(dāng)應(yīng)用服務(wù)器生成ParameterSetIDChangeInfoSEIMessage時,ParameterSetIDChangeInfoSEIMessage中的***_id_diff、或者new_***_id可以采用熵編碼,比如無符號指數(shù)哥倫布編碼。圖13為本發(fā)明實例提供的數(shù)字視頻碼流的拼接方法的流程圖,包括如下步驟:步驟1301、從應(yīng)用服務(wù)器接收第一視頻碼流的信息,所述第一視頻碼流的信息包括第一視頻的參數(shù)集修改信息;具體的,拼接器從應(yīng)用服器接收第一視頻碼流的信息,所述第一視頻碼流信息包括第一視頻的參數(shù)集修改信息。進(jìn)一步的,拼接器還可以從應(yīng)用服務(wù)器接收第二視頻碼流的信息。步驟1302、根據(jù)所述第一視頻參數(shù)集修改信息向終端發(fā)送第一視頻碼流和第一視頻的參數(shù)集標(biāo)識修改消息,所述第一視頻的參數(shù)集標(biāo)識修改消息攜帶第一視頻的參數(shù)集標(biāo)識ID修改信息,以便于終端根據(jù)第一視頻的參數(shù)集ID修改信息獲取用于解碼網(wǎng)絡(luò)抽象層單元的視頻編碼層VCLNALU的參數(shù)集的參數(shù)集ID,以及終端根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼VCLNALU的參數(shù)集,以及終端根據(jù)所述用于解碼VCLNALU的參數(shù)集解碼所述VCLNALU,并輸出解碼后的第一視頻。作為一種可選方式,在步驟1302之前,拼接器還在輸出第二視頻碼流的過程中暫停輸出第二視頻碼流。作為一種可選方式,第一視頻的參數(shù)集ID修改信息為待修改的參數(shù)集ID的參數(shù)集類型,拼接器進(jìn)一步接收終端接收終端發(fā)送的實時傳輸控制協(xié)議RTCP請求,所述RTCP請求包含所述待修改參數(shù)集ID的參數(shù)集類型;向終端返回RTCP響應(yīng),所述RTCP響應(yīng)中攜帶與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移、或攜帶與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID、或者攜帶與待修改的參數(shù)集ID的參數(shù)集類型的所述原參數(shù)集ID以及與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID?;蛩鰠?shù)集ID修改信息為待修改的參數(shù)集ID的參數(shù)集類型和與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移,或為待修改的參數(shù)集ID的參數(shù)集類型和用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,或包括待修改的參數(shù)集ID的參數(shù)集類型的所述原參數(shù)集ID以及與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,所述參數(shù)集ID修改信息進(jìn)一步包含修改生效標(biāo)志,所述根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼所述VCLNALU的參數(shù)集之前,接器進(jìn)一步向終端發(fā)送所述第二視頻碼流的時發(fā)送不生效的第一視頻的參數(shù)集標(biāo)識修改消息;接收終端發(fā)送的第二媒體描述信息獲取請求;向終端返回第二媒體描述信息獲取響應(yīng),所述第二媒體描述信息獲取響應(yīng)中、第一視頻的修改后的參數(shù)集,所述第一視頻參數(shù)集NALU中的參數(shù)集ID為用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。作為一種可選方式,所述第一視頻的參數(shù)集標(biāo)識修改消息為:參數(shù)集標(biāo)識修改補充增強信息SEI消息、自適應(yīng)參數(shù)集標(biāo)識修改SEI消息或圖片參數(shù)集標(biāo)識修改SEI消息,拼接器進(jìn)一步根據(jù)所述第一視頻參數(shù)集修改信息生成第一視頻的參數(shù)集標(biāo)識修改消息。由上述實施例可知,拼接器在接收到應(yīng)用服務(wù)器發(fā)送的第一視頻的參數(shù)集修改信息后,并不針對第一視頻碼流中的VCLNALU引用的參數(shù)集ID根據(jù)參數(shù)集修改信息進(jìn)行修改,而是向終端發(fā)送攜帶參數(shù)集修改息的參數(shù)集標(biāo)識修改消息,由終端在解碼第一視頻流中的VCLNALU之前,根據(jù)參數(shù)集標(biāo)識修改消息獲取解碼第一視頻碼流中的VCLNALU的參數(shù)集來解碼參數(shù)集。因此,無需拼接器具有修改第一視頻碼流中的VCLNALU引用的參數(shù)集ID的熵編碼和熵解碼的能力,從而不需要在現(xiàn)有網(wǎng)絡(luò)的拼接器上增加額外的硬件資源,或者使用新的拼接器對現(xiàn)有網(wǎng)絡(luò)中的拼接器進(jìn)行替換,又能保證終端解碼正確。圖14為本發(fā)明實例提供的數(shù)字視頻碼流的拼接方法的流程圖,包括如下步驟:步驟1401、接收第一內(nèi)容服務(wù)器發(fā)送的第一視頻的媒體描述信息,所述第一視頻的媒體描述信息攜帶第一視頻的原參數(shù)集第一視頻的參數(shù)集的類型及與各類型對應(yīng)的參數(shù)集的原參數(shù)集ID;步驟1402、接收第二內(nèi)容服務(wù)器發(fā)送的第二視頻的媒體描述信息,所述第二視頻的媒體描述信息中攜帶第二視頻的參數(shù)集第二視頻參數(shù)集的類型及與各類型對應(yīng)的參數(shù)集的參數(shù)集ID;步驟1403、確定同一類型的第一視頻的參原參數(shù)集ID與第二視頻的參數(shù)集的參數(shù)集ID相同,以及確定第一視頻的參數(shù)集標(biāo)識修改信息;步驟1404、向拼接器發(fā)送第一視頻流的信息,所述第一視頻碼流的信息包括第一視頻的參數(shù)集標(biāo)識修改信息,所述第一視頻的參數(shù)集修改標(biāo)識信息攜帶在第一視頻的參數(shù)集標(biāo)識修改消息中,以便于拼接器將所述第一視頻的參數(shù)集標(biāo)識修改消息發(fā)送給終端,以及以便于終端根據(jù)所述第一視頻的參數(shù)集標(biāo)識修改消息解碼并輸出第一視頻。作為一種可選方式,應(yīng)用服務(wù)器還根據(jù)所述確定的第一視頻的參數(shù)集標(biāo)識修改信息將第一視頻的原參數(shù)集的原參數(shù)集ID修改為用于解碼網(wǎng)絡(luò)抽象層單元的視頻編碼層VCLNALU的參數(shù)集的參數(shù)集ID;向終端發(fā)送攜帶第一視頻的修改后的參數(shù)集,修改后參數(shù)集中的參數(shù)集ID為用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;所述第一視頻的參數(shù)集標(biāo)識修改消息包含所述待修改的參數(shù)集ID的參數(shù)集類型以及與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的第一視頻的原參數(shù)集ID的偏移,或包含所述待修改的參數(shù)集ID的參數(shù)集類型以及與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,或第一視頻的參數(shù)集標(biāo)識修改消息包含所述待修改的參數(shù)集ID的參數(shù)集類型的與所述原參數(shù)集ID以及與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;所述待修改的參數(shù)集ID的參數(shù)集類型為所述VCLNALU直接引用的參數(shù)集類型。作為另一種可選方式,應(yīng)用服務(wù)器還需要向終端發(fā)送第一視頻的原參數(shù)集以及與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,所述第一視頻的原參數(shù)集中攜帶所述原參數(shù)集ID;所述第一視頻的參數(shù)集標(biāo)識修改消息包含所述待修改的參數(shù)集ID的參數(shù)集類型以及與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的所述原參數(shù)集ID的偏移,或第一視頻的參數(shù)集標(biāo)識修改消息包含所述待修改的參數(shù)集ID的參數(shù)集類型以及與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,或第一視頻的參數(shù)集標(biāo)識修改消息包含所述待修改的參數(shù)集ID的參數(shù)集類型的所述原參數(shù)集ID以及與原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;所述待修改的參數(shù)集ID的參數(shù)集類型為所述VCLNALU直接引用的參數(shù)集類型,以及所述VCLNALU間接引用的參數(shù)集類型。由上述實施例可知,應(yīng)用服務(wù)器在確定同一類型的第一視頻參數(shù)集的原參數(shù)集ID與第二視頻參數(shù)集的參數(shù)集ID相同,確定該類型的第一視頻的原參數(shù)集ID的偏移或用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,并直接向拼接器發(fā)送第一視頻的參數(shù)集標(biāo)識修改消息,以便拼接器將所述第一視頻的參數(shù)集標(biāo)識修改消息,從而無需拼接器具有修改第一視頻碼流中的VCLNALU引用的參數(shù)集ID的熵編碼和熵解碼的能力,從而不需要在現(xiàn)有網(wǎng)絡(luò)的拼接器上增加額外的硬件資源,或者使用新的拼接器對現(xiàn)有網(wǎng)絡(luò)中的拼接器進(jìn)行替換,又能保證終端解碼正確。圖15A為本發(fā)明實施例提供的數(shù)字視頻碼流的解碼裝置的結(jié)構(gòu)示意圖,包括接收模塊1501、第一獲取模塊1502、第二獲取模塊1503、解碼輸入模塊1504、確定模塊1505和發(fā)送模塊1506。具體的,接收模塊1501,用于接收第一視頻碼流和第一視頻的參數(shù)集標(biāo)識修改消息,所述第一視頻的參數(shù)集標(biāo)識修改消息中包含第一視頻的參數(shù)集標(biāo)識ID修改信息;第一獲取模塊1502,用于根據(jù)所接收模塊1501接收的所述第一視頻的參數(shù)集ID修改信息獲取用于解碼網(wǎng)絡(luò)抽象層單元的視頻編碼層VCLNALU的參數(shù)集的參數(shù)集ID;第二獲取模塊1503,用于根據(jù)所述第一獲取模塊1502獲取的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼所述VCLNALU的參數(shù)集;解碼輸出模塊1504,用于根據(jù)第二獲取模塊1503獲取的所述用于解碼VCLNALU的參數(shù)集解碼所述VCLNALU,并輸出解碼后的第一視頻。作為一種可選方式,所述參數(shù)集ID修改信息包括待修改的參數(shù)集ID的參數(shù)集類型和與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移;所述第一視頻碼流中包含用于解碼所述VCLNALU的參數(shù)集的原參數(shù)集ID;所述第一獲取模塊1502具體用于:根據(jù)所述接收模塊1501接收的所述待修改的參數(shù)集ID的參數(shù)集類型從所述第一碼流中獲取與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的所述原參數(shù)集ID;根據(jù)所述原參數(shù)集ID以及所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移從獲取與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。作為另一可選方式,所述參數(shù)集ID修改信息包括待修改的參數(shù)集ID的參數(shù)集類型和用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,所述第一獲取模塊1502具體用于:根據(jù)所述接收模塊1501接收的待修改的參數(shù)集ID的參數(shù)集類型從所述參數(shù)集ID修改信息中獲取與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。作為另一可選方式,所述參數(shù)集ID修改信息為待修改的參數(shù)集ID的參數(shù)集類型的原參數(shù)集ID、與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;所述第一獲取模塊具體用于:根據(jù)所述接收模塊接收的所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的所述原參數(shù)集ID獲取所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;或第一獲取模塊具體用于根據(jù)所述接收模塊接收的所述待修改的參數(shù)集ID的參數(shù)集類型從所述第一視頻碼流中獲取與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的所述原參數(shù)集ID;根據(jù)所述原參數(shù)集ID獲取所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID。作為另一可選方式,所述第一視頻參數(shù)集ID修改信息為待修改的參數(shù)集ID的參數(shù)集類型,所述裝置進(jìn)一步包括:發(fā)送模塊1506,用于向拼接器發(fā)送實時傳輸控制協(xié)議RTCP請求,所述RTCP請求包含所述待修改參數(shù)集ID的參數(shù)集類型;所述接收模塊1501進(jìn)一步用于:接收所述拼接器返回的RTCP響應(yīng),所述RTCP響應(yīng)中攜帶與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移,或與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,或與待修改的參數(shù)集ID的參數(shù)集類型的所述原參數(shù)集ID以及與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;所述第一獲取模塊1502具體用于:根據(jù)所述接收模塊1501接收的所述RTCP響應(yīng)中攜帶的與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移或與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,或者根據(jù)與待修改的參數(shù)集ID的參數(shù)集類型的原參數(shù)集ID以及與原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,從所述參數(shù)集ID修改信息中獲取與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID??蛇x的,所述參數(shù)集ID修改信息還包括修改生效標(biāo)志。所述接收模塊1501進(jìn)一步用于,在接收第一視頻碼流和第一視頻的參數(shù)集標(biāo)識修改消息之前,接收不生效的第一視頻的參數(shù)集標(biāo)識修改消息;該裝置進(jìn)一步包括:確定模塊1505進(jìn)一步用于,確定所述接收模塊接收的所述不生效的第一視頻的參數(shù)集標(biāo)識修改消息包含指示參數(shù)集ID修改信息不生效的標(biāo)志信息;發(fā)送模塊1506,用于向應(yīng)用服務(wù)器發(fā)送第二媒體描述信息獲取請求;所述接收模塊1501進(jìn)一步用于:接收應(yīng)用服務(wù)器返回的第二媒體描述信息獲取響應(yīng),所述第二媒體描述信息獲取響應(yīng)中攜帶第二視頻參數(shù)集、第一視頻的修改后的參數(shù)集,所述第一視頻修改后的參數(shù)集中的參數(shù)集ID為所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID??蛇x的,所述接收模塊1501在所述第二獲取模塊1503根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼所述VCLNALU的參數(shù)集之前,進(jìn)一步用于通過帶外方式獲取第一視頻的修改后的參數(shù)集,所述修改后的參數(shù)集中的參數(shù)集ID為用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;或所述接收模塊1501在所述第二獲取模塊1503根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼所述VCLNALU的參數(shù)集之前,進(jìn)一步用于通過帶外方式獲取第一視頻的原參數(shù)集以及用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;根據(jù)所述修改后參數(shù)集ID修改所述原參數(shù)集ID。所述待修改的參數(shù)集ID的參數(shù)集類型為VCLNALU直接引用的參數(shù)集類型;所述第一獲取模塊1502具體用于:獲取所述接收模塊接收的與所述VCLNALU直接引用的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的的VCLNALU直接引用的參數(shù)集的參數(shù)集ID,并在第二獲取模塊1503根據(jù)獲取的用于解碼VCLNALU的VCLNALU直接引用的參數(shù)集的參數(shù)集ID獲取所述第一視頻碼流中VCLNALU直接引用的參數(shù)集后,第一獲取模塊1502進(jìn)一步從所述所述直接引用的參數(shù)集中獲取用于解碼VCLNALU的VCLNALU間接引用的參數(shù)集的參數(shù)集ID;或所述待修改的參數(shù)集ID的參數(shù)集類型為所述VCLNALU直接引用的參數(shù)集類型和所述VCLNALU間接引用的參數(shù)集類型,所述第一獲取模塊1502具體用于:分別根據(jù)所述第一視頻的參數(shù)集ID修改信息獲取與所述VCLNALU直接引用的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的VCLNALU的直接引用的參數(shù)集的參數(shù)集ID,以及獲取與所述VCLNALU間接引用的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;所述第二獲取模塊1503具體用于:根據(jù)所述第一獲取模塊1502獲取的直接引用的參數(shù)集的參數(shù)集ID以及間接引用的參數(shù)集的參數(shù)集ID獲取所述VCLNALU的直接引用的參數(shù)集以及所述VCLNALU的間接引用的參數(shù)集;所述解碼輸出模塊1504具體用于:根據(jù)所述第二獲取模塊1502獲取的所述VCLNALU的直接引用的參數(shù)集以及所述VCLNALU的間接引用的參數(shù)集解碼所述VCLNALU,并輸出解碼后的第一視頻。值得說明的是,圖15所述的裝置可以是前述實施例中的終端,可以執(zhí)行前述實施例中終端執(zhí)行的任一步驟,本發(fā)明實施例在此不再一一詳述。圖16為本發(fā)明實施例提供的數(shù)字視頻碼流的拼接裝置,包括:接收模塊1601、生成模塊1602以及發(fā)送模塊1603。具體的,接收模塊1601用于從應(yīng)用服務(wù)器接收第一視頻碼流的信息,所述第一視頻碼流信息包括第一視頻的參數(shù)集修改信息;發(fā)送模塊1603用于根據(jù)所述接收模塊1601接收的所述第一視頻參數(shù)集修改信息向終端發(fā)送第一視頻碼流和第一視頻的參數(shù)集標(biāo)識修改消息,所述第一視頻的參數(shù)集標(biāo)識修改消息攜帶第一視頻的參數(shù)集標(biāo)識ID修改信息,以便于終端根據(jù)第一視頻的參數(shù)集ID修改信息獲取用于解碼網(wǎng)絡(luò)抽象層單元的視頻編碼層VCLNALU的參數(shù)集的參數(shù)集ID,以及終端根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼所述VCLNALU的參數(shù)集,以及終端根據(jù)所述用于解碼VCLNALU的參數(shù)集解碼所述VCLNALU,并輸出解碼后的第一視頻。作為一種可選方式,當(dāng)?shù)谝灰曨l的參數(shù)集ID修改信息為待修改的參數(shù)集ID的參數(shù)集類型時,所述接收模塊1601進(jìn)一步用于接收終端發(fā)送的實時傳輸控制協(xié)議RTCP請求,所述RTCP請求包含所述待修改參數(shù)集ID的參數(shù)集類型;所述發(fā)送模塊1603進(jìn)一步用于向終端返回RTCP響應(yīng),所述RTCP響應(yīng)中攜帶與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移,或攜帶與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,或者攜帶與待修改的參數(shù)集ID的參數(shù)集類型的所述原參數(shù)集ID以及與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID??蛇x的,所述參數(shù)集ID修改信息包括待修改的參數(shù)集ID的參數(shù)集類型和與所述待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的原參數(shù)集ID的偏移,或包括待修改的參數(shù)集ID的參數(shù)集類型和用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,或包括待修改的參數(shù)集ID的參數(shù)集類型的所述原參數(shù)集ID以及與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID時,所述參數(shù)集ID修改信息進(jìn)一步包含修改生效標(biāo)志,所述發(fā)送模塊1603向終端發(fā)送第一視頻碼流和第一視頻的參數(shù)集標(biāo)識修改消息之前,進(jìn)一步用于向終端發(fā)送所述第二視頻碼流的時發(fā)送不生效的第一視頻的參數(shù)集標(biāo)識修改消息;所述接收模塊1601進(jìn)一步用于用于接收終端發(fā)送的第二媒體描述信息獲取請求;所述發(fā)送模塊1603進(jìn)一步用于向終端返回第二媒體描述信息獲取響應(yīng),所述第二媒體描述信息獲取響應(yīng)中攜帶第一視頻的修改后的參數(shù)集,所述第一視頻的修改后的參數(shù)集中的參數(shù)集ID為用于解碼VCLNALU的參數(shù)集的參數(shù)集ID??蛇x的,該裝置進(jìn)步一包括生成模塊1602,用于根據(jù)所述第一視頻參數(shù)集修改信息生成第一視頻的參數(shù)集標(biāo)識修改消息。值得說明的是,生成模塊1602進(jìn)一步用于根據(jù)接收模塊1601接收的信息生成發(fā)送給發(fā)送模塊1603的任一消息。本發(fā)明實施例在此不再一一詳述。具體的,可參見前述方法實施例各步驟的描述。此外,圖16所述的裝置可以是前述實施中的拼接器,可以執(zhí)行前述實施例中拼接器執(zhí)行的任一步驟,本發(fā)明實施例在此不再一一詳述。圖17為本發(fā)明實施例提供的數(shù)字視頻碼流的拼接裝置,包括第一接收模塊1701、第二接收模塊1702、確定模塊1703和發(fā)送模塊1704。具體的,第一接收模塊1701,用于接收第一內(nèi)容服務(wù)器發(fā)送的第一視頻的媒體描述信息,所述第一視頻的媒體描述信息攜帶第一視頻的原參數(shù)集和第一視頻的參數(shù)集的類型及與各類型對應(yīng)的參數(shù)集的原參數(shù)集ID;第二接收模塊1702,用于接收第二內(nèi)容服務(wù)器發(fā)送的第二視頻的媒體描述信息,所述第二視頻的媒體描述信息中攜帶第二視頻的參數(shù)集、第二視頻參數(shù)集的類型及與各類型對應(yīng)的參數(shù)集的參數(shù)集ID;確定模塊1703,用用于確定同一類型的所述第一接收模塊1701接收的第一視頻的原參數(shù)集ID與所述第二接收模塊1702接收的第二視頻參數(shù)集ID相同,以及確定第一視頻的參數(shù)集標(biāo)識修改信息;發(fā)送模塊1704,用于向拼接器發(fā)送第一視頻流的信息,所述第一視頻碼流的信息包括第一視頻的參數(shù)集修改信息,所述第一視頻的參數(shù)集修改信息攜帶在第一視頻的參數(shù)集標(biāo)識修改消息中,以便于拼接器將所述第一視頻的參數(shù)集標(biāo)識修改消息發(fā)送給終端,以及以便于終端根據(jù)所述第一視頻的參數(shù)集標(biāo)識修改消息解碼并輸出第一視頻。作為一種可選方式,該裝置進(jìn)一步包括:修改模塊1705,用于根據(jù)所述確定模塊1703確定所述參數(shù)集標(biāo)識修改信息將第一視頻的原參數(shù)集的原參數(shù)集ID修改為用于解碼網(wǎng)絡(luò)抽象層單元的視頻編碼層VCLNALU的參數(shù)集的參數(shù)集ID;所述發(fā)送模塊進(jìn)一步用于:向終端發(fā)送第一視頻的修改后的參數(shù)集,修改后參數(shù)集中的參數(shù)集ID為所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;所述第一視頻的參數(shù)集標(biāo)識修改消息包含所述待修改的參數(shù)集ID的參數(shù)集類型以及與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的第一視頻的原參數(shù)集ID的偏移,或包含所述待修改的參數(shù)集ID的參數(shù)集類型以及與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,或第一視頻的參數(shù)集標(biāo)識修改消息包含所述待修改的參數(shù)集ID的參數(shù)集類型的與原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;所述待修改的參數(shù)集ID的參數(shù)集類型為所述VCLNALU直接引用的參數(shù)集類型。作為另一種可選方式,所述發(fā)送模塊進(jìn)一步用于:向終端發(fā)送第一視頻的原參數(shù)集以及與所述原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,所述第一視頻的原參數(shù)集中攜帶所述原參數(shù)集ID;所述第一視頻的參數(shù)集標(biāo)識修改消息包含所述待修改的參數(shù)集ID的參數(shù)集類型以及與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的所述原參數(shù)集ID的偏移,或第一視頻的參數(shù)集標(biāo)識修改消息包含所述待修改的參數(shù)集ID的參數(shù)集類型以及與待修改的參數(shù)集ID的參數(shù)集類型對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID,或第一視頻的參數(shù)集標(biāo)識修改消息包含所述待修改的參數(shù)集ID的參數(shù)集類型中的所述原參數(shù)集ID以及與原參數(shù)集ID對應(yīng)的用于解碼VCLNALU的參數(shù)集的參數(shù)集ID;所述待修改的參數(shù)集ID的參數(shù)集類型為所述VCLNALU直接引用的參數(shù)集類型,以及所述VCLNALU間接引用的參數(shù)集類型。圖17所示的裝置可以為應(yīng)用服務(wù)器,可以執(zhí)行前述實施例中應(yīng)用服務(wù)器執(zhí)行的任一步驟或功能,本發(fā)明實施例在此不再詳述。圖18為本發(fā)明實施例提供的數(shù)字視頻碼流的解碼裝置或拼接裝置的結(jié)構(gòu)示意圖,包括處理器1801、輸入設(shè)備1802、輸出設(shè)備1803、存儲器1804和通信接口1805。計算機系統(tǒng)可具體是基于處理器的計算機,如通用個人計算機(PC),便攜式設(shè)備如平板計算機,或智能手機。計算機系統(tǒng)包括總線,處理器,存儲器,通信接口,輸入設(shè)備和輸出設(shè)備??偩€可包括一通路,在計算機各個部件之間傳送信息。處理器1801可以是一個通用中央處理器(CPU),微處理器,特定應(yīng)用集成電路application-specificintegratedcircuit(ASIC),或一個或多個用于控制本發(fā)明方案程序執(zhí)行的集成電路。計算機系統(tǒng)還包括一個或多個存儲器1805,可以是只讀存儲器read-onlymemory(ROM)或可存儲靜態(tài)信息和指令的其他類型的靜態(tài)存儲設(shè)備,隨機存取存儲器randomaccessmemory(RAM)或者可存儲信息和指令的其他類型的動態(tài)存儲設(shè)備,也可以是磁盤存儲器。這些存儲器通過總線與處理器相連接。輸入設(shè)備1801可包括一種裝置,以接收用戶輸入的數(shù)據(jù)和信息,例如鍵盤,鼠標(biāo)、攝像頭,掃描儀,光筆,語音輸入裝置,觸摸屏等。輸出設(shè)備可包括一種裝置,以允許輸出信息給用戶,包括顯示屏,打印機,揚聲器等。計算機系統(tǒng)還包括一個通信接口1804,使用任何收發(fā)器一類的裝置,以便與其他設(shè)備或通信網(wǎng)絡(luò)通信,如以太網(wǎng),無線接入網(wǎng)(RAN),無線局域網(wǎng)(WLAN)等.存儲器1805,如RAM,保存有操作系統(tǒng)和執(zhí)行本發(fā)明方案的程序。操作系統(tǒng)是用于控制其他程序運行,管理系統(tǒng)資源的程序。執(zhí)行本發(fā)明方案的程序代碼保存在存儲器中,并由處理器1801來控制執(zhí)行。具體的,該存儲器1805可以存儲指令,以使處理器1801執(zhí)行以下流程:接收第一視頻碼流和第一視頻的參數(shù)集標(biāo)識修改消息,所述第一視頻的參數(shù)集標(biāo)識修改消息中包含第一視頻的參數(shù)集標(biāo)識ID修改信息;根據(jù)所述第一視頻的參數(shù)集ID修改信息獲取用于解碼網(wǎng)絡(luò)抽象層單元的視頻編碼層VCLNALU的參數(shù)集的參數(shù)集ID;根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼所述VCLNALU的參數(shù)集;根據(jù)所述用于解碼VCLNALU的參數(shù)集解碼所述VCLNALU,并輸出解碼后的第一視頻。值得說明的是,處理器1805還可以用于執(zhí)行方法實施例中圖1到圖15描述終端或解碼裝置執(zhí)行的各步驟,本發(fā)明實施例在此不再詳述。作為本發(fā)明實施例的另一可選方式,處理器1801還可以執(zhí)行以下流程:從應(yīng)用服務(wù)器接收第一視頻碼流的信息,所述第一視頻碼流的信息包括第一視頻的參數(shù)集修改信息;根據(jù)所述第一視頻參數(shù)集修改信息向終端發(fā)送第一視頻碼流和第一視頻的參數(shù)集標(biāo)識修改消息,所述第一視頻的參數(shù)集標(biāo)識修改消息攜帶第一視頻的參數(shù)集標(biāo)識ID修改信息,以便于終端根據(jù)第一視頻的參數(shù)集ID修改信息獲取用于解碼網(wǎng)絡(luò)抽象層單元的視頻編碼層VCLNALU的參數(shù)集的參數(shù)集ID,以及終端根據(jù)所述用于解碼VCLNALU的參數(shù)集的參數(shù)集ID獲取用于解碼VCLNALU的參數(shù)集,以及終端根據(jù)所述用于解碼VCLNALU的參數(shù)集解碼所述VCLNALU,并輸出解碼后的第一視頻。值得說明的是,處理器1805還可以用于執(zhí)行方法實施例中圖1到圖16描述拼接器執(zhí)行的各步驟,本發(fā)明實施例在此不再詳述。作為另一可選方式,處理器還可以執(zhí)行以下流程,接收第一內(nèi)容服務(wù)器發(fā)送的第一視頻的媒體描述信息,所述第一視頻的媒體描述信息攜帶第一視頻的原參數(shù)集和第一視頻的參數(shù)集的類型及與各類型對應(yīng)的參數(shù)集的原參數(shù)集ID;接收第二內(nèi)容服務(wù)器發(fā)送的第二視頻的媒體描述信息,所述第二視頻的媒體描述信息中攜帶第二視頻的參數(shù)集第二視頻參數(shù)集的類型及與各類型對應(yīng)的參數(shù)集的參數(shù)集ID;確定同一類型的第一視頻的參原參數(shù)集ID與第二視頻的參數(shù)集的參數(shù)集ID相同,以及確定第一視頻的參數(shù)集標(biāo)識修改信息;向拼接器發(fā)送第一視頻流的信息,所述第一視頻碼流的信息包括第一視頻的參數(shù)集標(biāo)識修改信息,所述第一視頻的參數(shù)集修改標(biāo)識信息攜帶在第一視頻的參數(shù)集標(biāo)識修改消息中,以便于拼接器將所述第一視頻的參數(shù)集標(biāo)識修改消息發(fā)送給終端,以及以便于終端根據(jù)所述第一視頻的參數(shù)集標(biāo)識修改消息解碼并輸出第一視頻。值得說明的是,處理器1805還可以用于執(zhí)行方法實施例中圖1到圖17描述應(yīng)用服務(wù)器執(zhí)行的各步驟,本發(fā)明實施例在此不再詳述。所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。另外,在本申請各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。上述以軟件功能單元的形式實現(xiàn)的集成的單元,可以存儲在一個計算機可讀取存儲介質(zhì)中。上述軟件功能單元存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本申請各個實施例所述方法的部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(Read-OnlyMemory,ROM)、隨機存取存儲器(RandomAccessMemory,RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。最后應(yīng)說明的是:以上實施例僅用以說明本申請的技術(shù)方案,而非對其限制;盡管參照前述實施例對本申請進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本申請各實施例技術(shù)方案的精神和范圍。