一種多路視頻播放方法及裝置制造方法
【專利摘要】本發(fā)明適用于視頻文件播放領(lǐng)域,提供了一種多路視頻播放方法及裝置。所述方法包括:A、獲取第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;B、獲取第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;C、設(shè)置第一通道的解碼方式、解碼尺寸大??;D、設(shè)置相應(yīng)通道的解碼方式、解碼尺寸大?。籈、設(shè)置第一通道的寄存器;F、設(shè)置第二通道至第N通道的寄存器;G、分別對(duì)第一通道至第N通道的視頻文件進(jìn)行硬件解碼,同時(shí)進(jìn)行軟件解碼;H、重復(fù)步驟E至步驟G,直到第一通道至第N通道的視頻文件全部解碼結(jié)束;I、播放解碼后的視頻文件。本發(fā)明實(shí)施例能夠提高解碼效率。
【專利說明】一種多路視頻播放方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于視頻播放領(lǐng)域,尤其涉及一種多路視頻播放方法及裝置。
【背景技術(shù)】
[0002]目前,視頻播放技術(shù)已經(jīng)發(fā)展到可以根據(jù)用戶的需求和播放器的配置,制定多種分辨率、多種解碼方式的視頻解碼。在視頻播放過程中,比較耗時(shí)的是純硬件解碼過程、對(duì)視頻文件的解析以獲取純視頻碼流和音頻碼流以及對(duì)音頻碼流的解碼過程。
[0003]傳統(tǒng)的視頻播放方法中,采用軟件解析視頻文件,獲取該視頻文件的一幀視頻碼流和音頻碼流,然后進(jìn)行硬件視頻解碼,軟件音頻解碼,最后播放解碼后的視頻碼流和音頻碼流。由于現(xiàn)有的視頻播放方法是采用軟、硬件串行解碼音視頻碼流的方式,因此不能充分利用硬件解碼時(shí)的時(shí)間,從而導(dǎo)致解碼效率低下。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供了一種多路視頻播放方法及裝置,旨在解決現(xiàn)有的視頻播放方法在解碼視頻文件時(shí)效率低下的問題。
[0005]本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種多路視頻播放方法,所述方法包括下述步驟:
[0006]A、解析第一通道的視頻文件,獲取所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流,以及獲取所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性包括視頻碼流和音頻碼流的解碼方式、解碼尺寸大??;
[0007]B、依次解析第二通道至第N通道的視頻文件,獲取所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流,以及獲取所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性包括視頻碼流和音頻碼流的解碼方式、解碼尺寸大小;所述N為整數(shù),N大于等于2;
[0008]C、在所述第一通道創(chuàng)建第一解碼實(shí)例,根據(jù)獲取的所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性設(shè)置所述第一通道的解碼方式、解碼尺寸大??;
[0009]D、在所述第二通道至第N通道創(chuàng)建第二至第N解碼實(shí)例,根據(jù)獲取的所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性設(shè)置所述第二通道至第N通道的解碼方式、解碼尺寸大??;
[0010]E、獲取第一通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息,依據(jù)獲取的解碼信息確定所述第一通道的解碼參數(shù),將所述第一通道的解碼參數(shù)設(shè)置在所述第一通道的寄存器中;
[0011]F、獲取第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息,依據(jù)獲取的解碼信息確定所述第二通道至第N通道的解碼參數(shù),將所述第二通道至第N通道的解碼參數(shù)分別設(shè)置在所述第二通道至第N通道的寄存器中;
[0012]G、采用設(shè)置了解碼參數(shù)的第一通道的寄存器、第二通道至第N通道的寄存器分別對(duì)所述第一通道的視頻文件、所述第二通道至第N通道的視頻文件進(jìn)行硬件解碼,同時(shí)解碼所述第一通道的視頻文件的上一幀視頻碼流和音頻碼流、解碼所述第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流、解析所述第一通道的視頻文件的下一幀視頻碼流和音頻碼流以及解析所述第二通道至第N通道的視頻文件的下一幀視頻碼流和音頻碼流;
[0013]H、重復(fù)步驟E至步驟G,直到第一通道、第二通道至第N通道的視頻文件全部解碼結(jié)束;
[0014]1、播放第一通道、第二通道至第N通道解碼后的視頻文件。
[0015]本發(fā)明實(shí)施例的另一目的在于提供一種多路視頻播放裝置,所述裝置包括:
[0016]碼流屬性獲取單元,用于解析第一通道的視頻文件,獲取所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流,以及獲取所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性包括視頻碼流和音頻碼流的解碼方式、解碼尺寸大小;用于依次解析第二通道至第N通道的視頻文件,獲取所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流,以及獲取所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性包括視頻碼流和音頻碼流的解碼方式、解碼尺寸大??;所述N為整數(shù),N大于等于2 ;
[0017]碼流屬性設(shè)置單元,用于在所述第一通道創(chuàng)建第一解碼實(shí)例,根據(jù)獲取的所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性設(shè)置所述第一通道的解碼方式、解碼尺寸大小;以及用于在所述第二通道至第N通道創(chuàng)建第二至第N解碼實(shí)例,根據(jù)獲取的所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性設(shè)置所述第二通道至第N通道的解碼方式、解碼尺寸大?。?br>
[0018]寄存器設(shè)置單元,用于獲取第一通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息,依據(jù)獲取的解碼信息確定所述第一通道的解碼參數(shù),將所述第一通道的解碼參數(shù)設(shè)置在所述第一通道的寄存器中;以及用于獲取第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息,依據(jù)獲取的解碼信息確定所述第二通道至第N通道的解碼參數(shù),將所述第二通道至第N通道的解碼參數(shù)分別設(shè)置在所述第二通道至第N通道的寄存器中;
[0019]碼流解碼單元,用于采用設(shè)置了解碼參數(shù)的第一通道的寄存器、第二通道至第N通道的寄存器分別對(duì)所述第一通道的視頻文件、所述第二通道至第N通道的視頻文件進(jìn)行硬件解碼,同時(shí)解碼所述第一通道的視頻文件的上一幀視頻碼流和音頻碼流、解碼所述第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流、解析所述第一通道的視頻文件的下一幀視頻碼流和音頻碼流以及解析所述第二通道至第N通道的視頻文件的下一幀視頻碼流和音頻碼流;
[0020]碼流播放單元,用于播放第一通道、第二通道至第N通道解碼后的視頻文件。
[0021]在本發(fā)明實(shí)施例中,由于采用軟件和硬件解碼并行的方式,充分利用了硬件解碼時(shí)的時(shí)間,因此極大提高了解碼效率。
【專利附圖】
【附圖說明】
[0022]圖1是本發(fā)明第一實(shí)施例提供的一種多路視頻播放方法的流程圖;
[0023]圖2是本發(fā)明第二實(shí)施例提供的一種多路視頻播放的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0024]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0025]本發(fā)明實(shí)施例中,第一通道至第N通道創(chuàng)建的多個(gè)(2個(gè)及2個(gè)以上)解碼實(shí)例能夠在硬件解碼第一幀視頻碼流和音頻碼流開始時(shí),同時(shí)啟動(dòng)軟件對(duì)第二幀視頻文件的解析和軟件對(duì)音頻的解碼,充分利用了硬件解碼時(shí)的時(shí)間。
[0026]本發(fā)明實(shí)施例提供了一種多路視頻播放方法及裝置。
[0027]所述方法包括:A、解析第一通道的視頻文件,獲取所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流,以及獲取所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性包括視頻碼流和音頻碼流的解碼方式、解碼尺寸大小;
[0028]B、依次解析第二通道至第N通道的視頻文件,獲取所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流,以及獲取所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性包括視頻碼流和音頻碼流的解碼方式、解碼尺寸大小;所述N為整數(shù),N大于等于2;
[0029]C、在所述第一通道創(chuàng)建第一解碼實(shí)例,根據(jù)獲取的所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性設(shè)置所述第一通道的解碼方式、解碼尺寸大??;
[0030]D、在所述第二通道至第N通道創(chuàng)建第二至第N解碼實(shí)例,根據(jù)獲取的所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性設(shè)置所述第二通道至第N通道的解碼方式、解碼尺寸大??;
[0031]E、獲取第一通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息,依據(jù)獲取的解碼信息確定所述第一通道的解碼參數(shù),將所述第一通道的解碼參數(shù)設(shè)置在所述第一通道的寄存器中;
[0032]F、獲取第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息,依據(jù)獲取的解碼信息確定所述第二通道至第N通道的解碼參數(shù),將所述第二通道至第N通道的解碼參數(shù)分別設(shè)置在所述第二通道至第N通道的寄存器中;
[0033]G、采用設(shè)置了解碼參數(shù)的第一通道的寄存器、第二通道至第N通道的寄存器分別對(duì)所述第一通道的視頻文件、所述第二通道至第N通道的視頻文件進(jìn)行硬件解碼,同時(shí)解碼所述第一通道的視頻文件的上一幀視頻碼流和音頻碼流、解碼所述第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流、解析所述第一通道的視頻文件的下一幀視頻碼流和音頻碼流以及解析所述第二通道至第N通道的視頻文件的下一幀視頻碼流和音頻碼流;
[0034]H、重復(fù)步驟E至步驟G,直到第一通道、第二通道至第N通道的視頻文件全部解碼結(jié)束;
[0035]1、播放第一通道、第二通道至第N通道解碼后的視頻文件。
[0036]所述裝置包括:碼流屬性獲取單元,用于解析第一通道的視頻文件,獲取所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流,以及獲取所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性包括視頻碼流和音頻碼流的解碼方式、解碼尺寸大??;用于依次解析第二通道至第N通道的視頻文件,獲取所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流,以及獲取所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性包括視頻碼流和音頻碼流的解碼方式、解碼尺寸大小;所述N為整數(shù),N大于等于2 ;
[0037]碼流屬性設(shè)置單元,用于在所述第一通道創(chuàng)建第一解碼實(shí)例,根據(jù)獲取的所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性設(shè)置所述第一通道的解碼方式、解碼尺寸大??;以及用于在所述第二通道至第N通道創(chuàng)建第二至第N解碼實(shí)例,根據(jù)獲取的所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性設(shè)置所述第二通道至第N通道的解碼方式、解碼尺寸大?。?br>
[0038]寄存器設(shè)置單元,用于獲取第一通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息,依據(jù)獲取的解碼信息確定所述第一通道的解碼參數(shù),將所述第一通道的解碼參數(shù)設(shè)置在所述第一通道的寄存器中;以及用于獲取第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息,依據(jù)獲取的解碼信息確定所述第二通道至第N通道的解碼參數(shù),將所述第二通道至第N通道的解碼參數(shù)分別設(shè)置在所述第二通道至第N通道的寄存器中;
[0039]碼流解碼單元,用于采用設(shè)置了解碼參數(shù)的第一通道的寄存器、第二通道至第N通道的寄存器分別對(duì)所述第一通道的視頻文件、所述第二通道至第N通道的視頻文件進(jìn)行硬件解碼,同時(shí)解碼所述第一通道的視頻文件的上一幀視頻碼流和音頻碼流、解碼所述第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流、解析所述第一通道的視頻文件的下一幀視頻碼流和音頻碼流以及解析所述第二通道至第N通道的視頻文件的下一幀視頻碼流和音頻碼流;
[0040]碼流播放單元,用于播放第一通道、第二通道至第N通道解碼后的視頻文件。
[0041]在本發(fā)明實(shí)施例中,由于采用軟件和硬件解碼并行的方式,充分利用了硬件解碼時(shí)的時(shí)間,因此極大提高了解碼效率。
[0042]為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實(shí)施例來進(jìn)行說明。
[0043]實(shí)施例一:
[0044]圖1示出了本發(fā)明第一實(shí)施例提供的一種多路視頻播放方法的流程圖,詳述如下:
[0045]步驟S101、解析第一通道的視頻文件,獲取所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流,以及獲取所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性包括視頻碼流和音頻碼流的解碼方式、解碼尺寸大小。
[0046]其中,視頻文件的格式可以為音頻視頻交錯(cuò)格式(Aud1 Video Interleaved,avi)、mp4、wmv等;視頻碼流和音頻碼流的屬性指從文件容器獲取的信息,包括:視頻碼流的解碼方式、音頻碼流的解碼方式、視頻碼流的解碼尺寸大小、音頻碼流的解碼尺寸大小、視頻碼流的總幀數(shù)、音頻碼流的總幀數(shù)、視頻碼流的總的碼流的大小、音頻碼流的總的碼流的大小、播放時(shí)間長度等等。
[0047]優(yōu)選地,本實(shí)施例提供的視頻播放方法的解碼方式包括以下任一種:H.264、MJPEG, H.263、MPEG4、MPEG2、RV。
[0048]其中,RV解碼方式是指實(shí)時(shí)視頻(Real Video, RV)0本實(shí)施例提供的具體的解碼方式與視頻碼流和音頻碼流的屬性相對(duì)應(yīng),若視頻文件是wmv格式的,則該wmv格式的視頻文件采用MPEG4的解碼方式。
[0049]優(yōu)選地,本實(shí)施例提供的視頻播放方法的解碼尺寸大小包括以下任一種:QCIF、1080p、720p、Dl、VGA、CIF。
[0050]其中,Dl的分辨率為720X480。本實(shí)施例提供的解碼尺寸大小同樣與視頻碼流和音頻碼流的屬性相對(duì)應(yīng),當(dāng)視頻文件的編碼圖像大小為QCIF時(shí),解碼尺寸大小相應(yīng)地為QCIF0
[0051]該步驟中,第一通道解析需要在該第一通道播放的一個(gè)視頻文件,以獲取該視頻文件的第一幀視頻碼流和第一幀音頻碼流。
[0052]步驟S102、依次解析第二通道至第N通道的視頻文件,獲取所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流,以及獲取所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性包括視頻碼流和音頻碼流的解碼方式、解碼尺寸大?。凰鯪為整數(shù),N大于等于2。
[0053]該步驟的視頻文件的格式與步驟SlOl的相同,包括:av1、mp4、wmv等格式。在該步驟獲取的視頻碼流和音頻碼流的屬性是指在第二通道至第N通道解析的視頻文件的視頻碼流和音頻碼流的屬性,具體參閱步驟S101,此處不再贅述。
[0054]步驟S103、在所述第一通道創(chuàng)建第一解碼實(shí)例,根據(jù)獲取的所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性設(shè)置所述第一通道的解碼方式、解碼尺寸大小。
[0055]該步驟中,只需要根據(jù)視頻文件的第一幀視頻碼流和第一幀音頻碼流的屬性設(shè)置一次第一通道的解碼方式、解碼尺寸大小以及相關(guān)的解碼屬性(如:視頻碼流的總幀數(shù)、音頻碼流的總幀數(shù)等數(shù)據(jù))即可,后續(xù)無需重新設(shè)置。
[0056]步驟S104、在所述第二通道至第N通道創(chuàng)建第二至第N解碼實(shí)例,根據(jù)獲取的所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性設(shè)置所述第二通道至第N通道的解碼方式、解碼尺寸大小。
[0057]該步驟中,在第二通道至第N通道分別設(shè)置對(duì)應(yīng)的第二解碼實(shí)例,…,第N解碼實(shí)例,其中,第二通道至第N通道的設(shè)置過程、需設(shè)置的信息與步驟S103相同,此處不再贅述。
[0058]步驟S105、獲取第一通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息,依據(jù)獲取的解碼信息確定所述第一通道的解碼參數(shù),將所述第一通道的解碼參數(shù)設(shè)置在所述第一通道的寄存器中。
[0059]該步驟中,從文件容器中獲取的視頻碼流的頭部信息中獲取視頻文件的解碼信息,比如視頻的分辨率、幀的屬性(判斷該幀屬于i幀或P幀的信息)等等,獲取的解碼信息將作為第一通道的解碼參數(shù)。
[0060]步驟S106、獲取第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息,依據(jù)獲取的解碼信息確定所述第二通道至第N通道的解碼參數(shù),將所述第二通道至第N通道的解碼參數(shù)分別設(shè)置在所述第二通道至第N通道的寄存器中。
[0061]該步驟中,對(duì)第二通道至第N通道的寄存器的設(shè)置過程與步驟S105的相同,此處不再贅述。
[0062]步驟S107、采用設(shè)置了解碼參數(shù)的第一通道的寄存器至第N通道的寄存器分別對(duì)所述第一通道的視頻文件至第N通道的視頻文件進(jìn)行硬件解碼,同時(shí)解碼所述第一通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流、解析所述第一通道至第N通道的視頻文件的下一幀視頻碼流和音頻碼流。
[0063]該步驟中,當(dāng)?shù)谝煌ǖ赖募拇嫫?、第二通道至第N通道的寄存器都設(shè)置完畢后,硬件解碼就啟動(dòng)了。在硬件解碼啟動(dòng)的同時(shí),第一通道至第N通道進(jìn)行軟件解碼對(duì)應(yīng)音頻的操作、第一通道至第N通道對(duì)該第一通道至第N通道的視頻文件的下一幀視頻碼流和音頻碼流的解析操作等。
[0064]在第一通道至第N通道都解碼結(jié)束,且步驟S107也完成的情況下,重復(fù)步驟S105至步驟S107,直到第一通道、第二通道至第N通道的視頻文件全部解碼結(jié)束。
[0065]步驟S108、播放第一通道、第二通道至第N通道解碼后的視頻文件。
[0066]在本發(fā)明實(shí)施例中,第一通道至第N通道創(chuàng)建的多個(gè)(2個(gè)及2個(gè)以上)解碼實(shí)例能夠在硬件解碼第一幀視頻碼流和音頻碼流開始時(shí),同時(shí)啟動(dòng)軟件對(duì)第二幀視頻文件的解析和軟件對(duì)音頻的解碼,充分利用了硬件解碼時(shí)的時(shí)間。由于本發(fā)明實(shí)施例采用軟件和硬件解碼并行的方式,因此極大提高了解碼效率。
[0067]作為一優(yōu)選實(shí)施例,在步驟S105,獲取第一通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息時(shí),還包括下述步驟:獲取所述第一通道的視頻文件的視頻碼流的時(shí)間戳和所述第一通道的視頻文件的音頻碼流的時(shí)間戳;在步驟S106,獲取第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息時(shí),還包括下述步驟:獲取所述第二通道至第N通道的視頻文件的視頻碼流的時(shí)間戳和所述第二通道至第N通道的視頻文件的音頻碼流的時(shí)間戳。
[0068]本實(shí)施例中,從文件容器中獲取的視頻碼流的頭部信息中逐個(gè)獲取各幀的視頻碼流的時(shí)間戳和音頻碼流的時(shí)間戳,便于后續(xù)根據(jù)獲取的時(shí)間戳選擇是否執(zhí)行解碼操作。
[0069]作為一優(yōu)選實(shí)施例,在步驟S107,解碼所述第一通道的視頻文件的上一幀視頻碼流和音頻碼流、解碼所述第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流的步驟具體包括:
[0070]判斷所述第一通道的視頻文件的上一幀視頻碼流的時(shí)間戳是否與對(duì)應(yīng)的音頻碼流的時(shí)間戳相等,并在相等時(shí),解碼所述視頻碼流和音頻碼流;判斷所述第二通道至第N通道的視頻文件的上一幀視頻碼流的時(shí)間戳是否與對(duì)應(yīng)的音頻碼流的時(shí)間戳相等,并在相等時(shí),解碼所述視頻碼流和音頻碼流。
[0071]本實(shí)施例中,只有在視頻碼流和其對(duì)應(yīng)的音頻碼流的時(shí)間戳相等時(shí)(如第一幀視頻碼流的時(shí)間戳與第一幀的音頻碼流的時(shí)間戳相等),才執(zhí)行視頻碼流的解碼操作,從而能夠保證解碼視頻碼流和音頻碼流的同步性。
[0072]在上述實(shí)施例中,若所述第一通道的視頻文件的上一幀的視頻碼流的時(shí)間戳與對(duì)應(yīng)的音頻碼流的時(shí)間戳不相等,丟棄所述第一通道的視頻文件的上一幀的視頻碼流;若所述第二通道至第N通道的視頻文件的上一幀視頻碼流的時(shí)間戳與對(duì)應(yīng)的音頻碼流的時(shí)間戳不相等,丟棄所述第二通道至第N通道的視頻文件的上一幀的視頻碼流。
[0073]本實(shí)施例中,由于視頻碼流的解碼時(shí)間通常大于音頻碼流的解碼時(shí)間,為了保持視頻碼流和音頻碼流的同步性,在判斷出解碼的視頻碼流的時(shí)間戳與解碼的音頻碼流的時(shí)間戳不相等時(shí),丟棄需解碼的視頻碼流,能夠加快視頻文件的解碼速度。
[0074]實(shí)施例二:
[0075]圖2示出了本發(fā)明第二實(shí)施例提供的一種多路視頻播放裝置的結(jié)構(gòu)圖,該多路視頻播放裝置可以為mp5、平板電腦、網(wǎng)絡(luò)機(jī)頂盒等,為了便于說明,僅示出了與本實(shí)施例相關(guān)的部分。
[0076]該多路視頻播放裝置裝置包括:碼流屬性獲取單元21、碼流屬性設(shè)置單元22、寄存器設(shè)置單元23、碼流解碼單元24、碼流播放單元25。其中:
[0077]碼流屬性獲取單元21,用于解析第一通道的視頻文件,獲取所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流,以及獲取所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性包括視頻碼流和音頻碼流的解碼方式、解碼尺寸大??;用于依次解析第二通道至第N通道的視頻文件,獲取所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流,以及獲取所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性包括視頻碼流和音頻碼流的解碼方式、解碼尺寸大??;所述N為整數(shù),N大于等于2。
[0078]本實(shí)施例中,視頻碼流和音頻碼流的屬性指從文件容器獲取的信息,包括:視頻碼流的解碼方式、音頻碼流的解碼方式、視頻碼流的解碼尺寸大小、音頻碼流的解碼尺寸大小、視頻碼流的總幀數(shù)、音頻碼流的總幀數(shù)、視頻碼流的總的碼流的大小、音頻碼流的總的碼流的大小、播放時(shí)間長度等等。
[0079]優(yōu)選地,本實(shí)施例提供的解碼方式包括以下任一種:H.264、MJPEG, H.263、MPEG4、MPEG2、RV。
[0080]優(yōu)選地,本實(shí)施例提供的解碼尺寸大小包括以下任一種:QCIF、1080p、720p、DUVGA、CIFo
[0081]碼流屬性設(shè)置單元22,用于在所述第一通道創(chuàng)建第一解碼實(shí)例,根據(jù)獲取的所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性設(shè)置所述第一通道的解碼方式、解碼尺寸大?。灰约坝糜谠谒龅诙ǖ乐恋贜通道創(chuàng)建第二至第N解碼實(shí)例,根據(jù)獲取的所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性設(shè)置所述第二通道至第N通道的解碼方式、解碼尺寸大小。
[0082]本實(shí)施例中,根據(jù)視頻文件的第一幀視頻碼流和第一幀音頻碼流的屬性設(shè)置一次第一通道的解碼方式、解碼尺寸大小以及相關(guān)的解碼屬性即可,后續(xù)無需重新設(shè)置。
[0083]寄存器設(shè)置單元23,用于獲取第一通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息,依據(jù)獲取的解碼信息確定所述第一通道的解碼參數(shù),將所述第一通道的解碼參數(shù)設(shè)置在所述第一通道的寄存器中;以及用于獲取第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息,依據(jù)獲取的解碼信息確定所述第二通道至第N通道的解碼參數(shù),將所述第二通道至第N通道的解碼參數(shù)分別設(shè)置在所述第二通道至第N通道的寄存器中。
[0084]本實(shí)施例中,從文件容器中獲取的視頻碼流的頭部信息中獲取視頻文件的解碼信息,比如視頻的分辨率、幀的屬性等等,獲取的解碼信息將作為與該文件容器對(duì)應(yīng)的通道的解碼參數(shù)。
[0085]碼流解碼單元24,用于采用設(shè)置了解碼參數(shù)的第一通道的寄存器、第二通道至第N通道的寄存器分別對(duì)所述第一通道的視頻文件、所述第二通道至第N通道的視頻文件進(jìn)行硬件解碼,同時(shí)解碼所述第一通道的視頻文件的上一幀視頻碼流和音頻碼流、解碼所述第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流、解析所述第一通道的視頻文件的下一幀視頻碼流和音頻碼流以及解析所述第二通道至第N通道的視頻文件的下一幀視頻碼流和音頻碼流。
[0086]本實(shí)施例中,在硬件解碼的同時(shí)實(shí)現(xiàn)軟件解碼,以提高解碼效率。
[0087]碼流播放單元25,用于播放第一通道、第二通道至第N通道解碼后的視頻文件。
[0088]在本發(fā)明實(shí)施例中,由于采用軟件和硬件解碼并行的方式,充分利用了硬件解碼時(shí)的時(shí)間,因此極大提高了解碼效率。
[0089]作為一優(yōu)選實(shí)施例,所述寄存器設(shè)置單元23在獲取第一通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息時(shí),還獲取所述第一通道的視頻文件的視頻碼流的時(shí)間戳和所述第一通道的視頻文件的音頻碼流的時(shí)間戳;在獲取第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息時(shí),還獲取所述第二通道至第N通道的視頻文件的視頻碼流的時(shí)間戳和所述第二通道至第N通道的視頻文件的音頻碼流的時(shí)間戳。
[0090]本實(shí)施例中,從文件容器中獲取的視頻碼流的頭部信息中逐個(gè)獲取各幀的視頻碼流的時(shí)間戳和音頻碼流的時(shí)間戳,便于后續(xù)根據(jù)獲取的時(shí)間戳選擇是否執(zhí)行解碼操作。
[0091]作為一優(yōu)選實(shí)施例,所述碼流解碼單元24在解碼所述第一通道的視頻文件的上一幀視頻碼流和音頻碼流、解碼所述第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流時(shí),判斷所述第一通道的視頻文件的上一幀視頻碼流的時(shí)間戳是否與對(duì)應(yīng)的音頻碼流的時(shí)間戳相等,并在相等時(shí),解碼所述視頻碼流和音頻碼流;以及判斷所述第二通道至第N通道的視頻文件的上一幀視頻碼流的時(shí)間戳是否與對(duì)應(yīng)的音頻碼流的時(shí)間戳相等,并在相等時(shí),解碼所述視頻碼流和音頻碼流。
[0092]作為一優(yōu)選實(shí)施例,所述碼流解碼單元24在解碼所述第一通道的視頻文件的上一幀視頻碼流和音頻碼流、解碼所述第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流時(shí),
[0093]若判斷出所述第一通道的視頻文件的上一幀的視頻碼流的時(shí)間戳與對(duì)應(yīng)的音頻碼流的時(shí)間戳不相等,丟棄所述第一通道的視頻文件的上一幀的視頻碼流;
[0094]若判斷出所述第二通道至第N通道的視頻文件的上一幀視頻碼流的時(shí)間戳與對(duì)應(yīng)的音頻碼流的時(shí)間戳不相等,丟棄所述第二通道的視頻文件的上一幀的視頻碼流。
[0095]在上述實(shí)施例中,只有在視頻碼流和其對(duì)應(yīng)的音頻碼流的時(shí)間戳相等時(shí),才執(zhí)行視頻碼流的解碼操作,否則,丟棄該視頻碼流和音頻碼流,從而能夠保證解碼視頻碼流和音頻碼流的同步性,同時(shí)加快了視頻文件的解碼速度。
[0096]在本發(fā)明實(shí)施例中,第一通道至第N通道創(chuàng)建的多個(gè)(2個(gè)及2個(gè)以上)解碼實(shí)例能夠在硬件解碼第一幀視頻碼流和音頻碼流開始時(shí),同時(shí)啟動(dòng)軟件對(duì)第二幀視頻文件的解析和軟件對(duì)音頻的解碼,充分利用了硬件解碼時(shí)的時(shí)間。由于本發(fā)明實(shí)施例采用軟件和硬件解碼并行的方式,因此極大提高了解碼效率。
[0097]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種多路視頻播放方法,其特征在于,所述多路視頻播放方法包括步驟: A、解析第一通道的視頻文件,獲取所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流,以及獲取所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性包括視頻碼流和音頻碼流的解碼方式、解碼尺寸大?。? B、依次解析第二通道至第N通道的視頻文件,獲取所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流,以及獲取所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性包括視頻碼流和音頻碼流的解碼方式、解碼尺寸大?。凰鯪為整數(shù),N大于等于2 ; C、在所述第一通道創(chuàng)建第一解碼實(shí)例,根據(jù)獲取的所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性設(shè)置所述第一通道的解碼方式、解碼尺寸大小; D、在所述第二通道至第N通道創(chuàng)建第二至第N解碼實(shí)例,根據(jù)獲取的所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性設(shè)置所述第二通道至第N通道的解碼方式、解碼尺寸大小; E、獲取第一通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息,依據(jù)獲取的解碼信息確定所述第一通道的解碼參數(shù),將所述第一通道的解碼參數(shù)設(shè)置在所述第一通道的寄存器中; F、獲取第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息,依據(jù)獲取的解碼信息確定所述第二通道至第N通道的解碼參數(shù),將所述第二通道至第N通道的解碼參數(shù)分別設(shè)置在所述第二通道至第N通道的寄存器中; G、采用設(shè)置了解碼參數(shù)的第一通道的寄存器、第二通道至第N通道的寄存器分別對(duì)所述第一通道的視頻文件、所述第二通道至第N通道的視頻文件進(jìn)行硬件解碼,同時(shí)解碼所述第一通道的視頻文件的上一幀視頻碼流和音頻碼流、解碼所述第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流、解析所述第一通道的視頻文件的下一幀視頻碼流和音頻碼流以及解析所述第二通道至第N通道的視頻文件的下一幀視頻碼流和音頻碼流; H、重復(fù)步驟E至步驟G,直到第一通道、第二通道至第N通道的視頻文件全部解碼結(jié)束; 1、播放第一通道、第二通道至第N通道解碼后的視頻文件。
2.如權(quán)利要求1所述的方法,其特征在于,在步驟E,獲取第一通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息時(shí),還包括下述步驟:獲取所述第一通道的視頻文件的視頻碼流的時(shí)間戳和所述第一通道的視頻文件的音頻碼流的時(shí)間戳; 在步驟F,獲取第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息時(shí),還包括下述步驟:獲取所述第二通道至第N通道的視頻文件的視頻碼流的時(shí)間戳和所述第二通道至第N通道的視頻文件的音頻碼流的時(shí)間戳。
3.如權(quán)利要求要求2所述的方法,其特征在于,在步驟G,解碼所述第一通道的視頻文件的上一幀視頻碼流和音頻碼流、解碼所述第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流的步驟具體包括: 判斷所述第一通道的視頻文件的上一幀視頻碼流的時(shí)間戳是否與對(duì)應(yīng)的音頻碼流的時(shí)間戳相等,并在相等時(shí),解碼所述視頻碼流和音頻碼流; 判斷所述第二通道至第N通道的視頻文件的上一幀視頻碼流的時(shí)間戳是否與對(duì)應(yīng)的音頻碼流的時(shí)間戳相等,并在相等時(shí),解碼所述視頻碼流和音頻碼流。
4.如權(quán)利要求要求3所述的方法,其特征在于, 若所述第一通道的視頻文件的上一幀的視頻碼流的時(shí)間戳與對(duì)應(yīng)的音頻碼流的時(shí)間戳不相等,丟棄所述第一通道的視頻文件的上一幀的視頻碼流; 若所述第二通道至第N通道的視頻文件的上一幀視頻碼流的時(shí)間戳與對(duì)應(yīng)的音頻碼流的時(shí)間戳不相等,丟棄所述第二通道的視頻文件的上一幀的視頻碼流。
5.如權(quán)利要求要求I至4任一項(xiàng)所述的方法,其特征在于,所述解碼方式包括以下任一種:
H.264、MJPEG,H.263、MPEG4、MPEG2、RV。
6.如權(quán)利要求1至4任一項(xiàng)所述的方法,其特征在于,所述解碼尺寸大小包括以下任一種:
1080p、720p、Dl、VGA、CIF。
7.一種多路視頻播放裝置,其特征在于,所述多路視頻播放裝置包括: 碼流屬性獲取單元,用于解析第一通道的視頻文件,獲取所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流,以及獲取所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性包括視頻碼流和音頻碼流的解碼方式、解碼尺寸大??;用于依次解析第二通道至第N通道的視頻文件,獲取所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流,以及獲取所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性;所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性包括視頻碼流和音頻碼流的解碼方式、解碼尺寸大小;所述N為整數(shù),N大于等于2 ; 碼流屬性設(shè)置單元,用于在所述第一通道創(chuàng)建第一解碼實(shí)例,根據(jù)獲取的所述第一通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性設(shè)置所述第一通道的解碼方式、解碼尺寸大?。灰约坝糜谠谒龅诙ǖ乐恋贜通道創(chuàng)建第二至第N解碼實(shí)例,根據(jù)獲取的所述第二通道至第N通道的視頻文件的第一幀視頻碼流和音頻碼流的屬性設(shè)置所述第二通道至第N通道的解碼方式、解碼尺寸大小; 寄存器設(shè)置單元,用于獲取第一通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息,依據(jù)獲取的解碼信息確定所述第一通道的解碼參數(shù),將所述第一通道的解碼參數(shù)設(shè)置在所述第一通道的寄存器中;以及用于獲取第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息,依據(jù)獲取的解碼信息確定所述第二通道至第N通道的解碼參數(shù),將所述第二通道至第N通道的解碼參數(shù)分別設(shè)置在所述第二通道至第N通道的寄存器中; 碼流解碼單元,用于采用設(shè)置了解碼參數(shù)的第一通道的寄存器、第二通道至第N通道的寄存器分別對(duì)所述第一通道的視頻文件、所述第二通道至第N通道的視頻文件進(jìn)行硬件解碼,同時(shí)解碼所述第一通道的視頻文件的上一幀視頻碼流和音頻碼流、解碼所述第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流、解析所述第一通道的視頻文件的下一幀視頻碼流和音頻碼流以及解析所述第二通道至第N通道的視頻文件的下一幀視頻碼流和首頻碼流; 碼流播放單元,用于播放第一通道、第二通道至第N通道解碼后的視頻文件。
8.如權(quán)利要求7所述的多路視頻播放裝置,其特征在于,所述寄存器設(shè)置單元在獲取第一通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息時(shí),還獲取所述第一通道的視頻文件的視頻碼流的時(shí)間戳和所述第一通道的視頻文件的音頻碼流的時(shí)間戳;在獲取第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流的解碼信息時(shí),還獲取所述第二通道至第N通道的視頻文件的視頻碼流的時(shí)間戳和所述第二通道至第N通道的視頻文件的音頻碼流的時(shí)間戳。
9.如權(quán)利要求要求8所述的多路視頻播放裝置,其特征在于,所述碼流解碼單元在解碼所述第一通道的視頻文件的上一幀視頻碼流和音頻碼流、解碼所述第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流時(shí),判斷所述第一通道的視頻文件的上一幀視頻碼流的時(shí)間戳是否與對(duì)應(yīng)的音頻碼流的時(shí)間戳相等,并在相等時(shí),解碼所述視頻碼流和音頻碼流;以及判斷所述第二通道至第N通道的視頻文件的上一幀視頻碼流的時(shí)間戳是否與對(duì)應(yīng)的音頻碼流的時(shí)間戳相等,并在相等時(shí),解碼所述視頻碼流和音頻碼流。
10.如權(quán)利要求要求8所述的多路視頻播放裝置,其特征在于,所述碼流解碼單元在解碼所述第一通道的視頻文件的上一幀視頻碼流和音頻碼流、解碼所述第二通道至第N通道的視頻文件的上一幀視頻碼流和音頻碼流時(shí), 若判斷出所述第一通道的視頻文件的上一幀的視頻碼流的時(shí)間戳與對(duì)應(yīng)的音頻碼流的時(shí)間戳不相等,丟棄所述第一通道的視頻文件的上一幀的視頻碼流; 若判斷出所述第二通道至第N通道的視頻文件的上一幀視頻碼流的時(shí)間戳與對(duì)應(yīng)的音頻碼流的時(shí)間戳不相等,丟棄所述第二通道的視頻文件的上一幀的視頻碼流。
【文檔編號(hào)】H04N21/4405GK104333764SQ201310309785
【公開日】2015年2月4日 申請(qǐng)日期:2013年7月22日 優(yōu)先權(quán)日:2013年7月22日
【發(fā)明者】胡靜, 蘇丹, 胡勝發(fā) 申請(qǐng)人:安凱(廣州)微電子技術(shù)有限公司