一種基于特征分析的動態解碼方法和裝置的制造方法
【專利說明】
【技術領域】
[0001]本發明涉及視頻編解碼技術領域,特別是涉及一種基于特征分析的動態解碼方法和裝置。
【【背景技術】】
[0002]視頻文件分類主要有兩種:一類是電影音樂娛樂等工業領域中標準視頻格式,比如 AVI,TS, MPG,MKV,RMVB, FLV 等,可以用通用播放器 windows media player、KMPLYER、QQ影音、暴風影音等播放,一類是私有廠家的視頻格式,主要是視頻監控領域內一些廠家格式,比如海康、大華、漢邦等廠家都有自己的私有格式,暴風等主流播放器無法播放,只能使用廠家自帶播放器和解碼器進行解碼播放。國內目前沒有一種統一的播放器及解碼技術,能夠實現對所有視頻格式的兼容處理,對于很多格式,都是需要單獨安裝解碼器或者需要單獨的播放器,查看很不方便,也無法對外提供解碼接口進行二次開發。
[0003]國內專利“一種監控錄像文件通用播放系統和方法”(申請公布號CN102404556A,申請公布日2012.04.04)提供了一種視頻監控錄像文件的通用播放方法,里面關于文件解碼部分有一個大概的思路性描述,但是只是針對視頻監控領域的文件格式,關于標準視頻格部分沒有說明,覆蓋面不夠,此外方法過于粗糙化,主要觀點是根據文件頭和文件后綴解析出所屬廠商,由視頻廠商解碼子裝置進行解碼,但是實際情況經常是一些視頻格式文件頭或者后綴里面根本識別不出任何格式和廠商方面的信息,無法使用這種方法進行解碼,而且對于能夠識別廠商的格式,由于私有封裝格式眾多,存在廠家不一定有解碼器提供、有解碼器不一定能打開文件、每一種格式需要單獨添加一種子裝置擴展困難需要大量人力物力等問題。
【
【發明內容】
】
[0004]本發明要解決的技術問題是對于能夠識別廠商的格式,由于私有封裝格式眾多,存在廠家不一定有解碼器提供、有解碼器不一定能打開文件、每一種格式需要單獨添加一種子裝置擴展困難需要大量人力物力等問題。
[0005]為了解決上述問題,本發明一方面提供了一種基于特征分析的動態解碼方法,包括:
[0006]通過對視頻文件格式內容的掃描,解析得到所述視頻文件所屬的視頻解碼子結構類型;其中所述視頻解碼子結構類型包括標準視頻解碼子結構、通用視頻解碼子結構和專用私有廠商視頻解碼子結構;使用與所述視頻解碼子結構類型相對應的視頻解碼方式進行解碼。
[0007]優選的,所述通過對視頻文件的掃描,解析得到所述視頻文件所屬的編碼類型,具體包括:
[0008]使用基于開源解碼器掃描、基于標準編碼特征碼掃描和基于私有廠商特征碼掃描的方式,按照優先級從高到低排列;所述視頻解碼子結構的類型由其中優先級較高的掃描結果決定。
[0009]優選的,所述基于開源解碼器掃描、基于標準編碼特征碼掃描或基于私有廠商特征碼掃描的方式,具體包括:通過掃描文件頭數據、后綴以及一定量本身文件內容,來識別出視頻文件的容器和編碼類型,或者所屬廠商,對視頻解碼子結構進行分類。
[0010]優選的,所述使用與所述編碼類型相對應的視頻解碼方式進行解碼,其中,對于標準視頻解碼子結構類型的視頻文件,具體包括:使用開源解碼類庫進行文件讀取和解碼。
[0011]優選的,所述使用開源解碼類庫進行文件讀取和解碼,具體包括:
[0012]初始化開源解碼類庫相關數據結構;使用開源類庫相關數據結構和接口打開視頻文件,查找視頻流信息,打開對應的視頻解碼器;使用開源類庫相關數據結構和接口讀取視頻文件一幀內容;將該幀內容傳遞給開源類庫解碼器進行解碼。
[0013]優選的,所述使用與所述編碼類型相對應的視頻解碼方式進行解碼,其中,對于通用解碼子結構類型的視頻文件,具體包括:
[0014]根據標準編碼特征碼建立幀索引,利用索引自行讀取幀,并傳遞給開源解碼器進行解碼。
[0015]優選的,所述根據標準編碼特征碼建立幀索引,利用索引自行讀取幀,并傳遞給開源解碼器進行解碼,具體包括:
[0016]根據標準編碼特征碼,建立文件幀索引,所述文件幀索引包括幀偏移量和幀大小信息;根據標準編碼特征碼,利用開源解碼類庫打開對應的解碼器;利用建立好的文件索引結構,讀取該文件一幀數據;將該幀內容傳遞給解碼器進行解碼。
[0017]優選的,所述使用與所述編碼類型相對應的視頻解碼方式進行解碼,其中,對于專用私有廠商視頻解碼子結構,具體包括:利用廠商提供解碼類庫進行文件讀取和解碼。
[0018]本發明另一方面,提供了一種基于特征分析的動態解碼裝置,包括存儲裝置、處理裝置和顯示裝置,具體的:
[0019]所述存儲裝置,用于存儲各種視頻解碼庫,包括標準的視頻解碼庫、通用的視頻解碼庫和專用私有廠商的視頻解碼庫;所述處理裝置,用于通過對視頻文件格式內容的掃描,解析得到所述視頻文件所屬的視頻解碼子結構類型;其中所述視頻解碼子結構類型包括標準視頻解碼子結構、通用視頻解碼子結構和專用私有廠商視頻解碼子結構;使用與所述視頻解碼子結構類型相對應的視頻解碼方式進行解碼;所述顯示裝置,用于顯示解碼后的視頻內容。
[0020]與現有技術相比,本發明的有益效果在于:本發明方法能夠廣泛兼容多媒體等工業領域中標準視頻文件以及視頻監控領域中的視頻監控錄像文件等各種社會資源格式。基于此方法可快速構建通用文件播放器或者解碼開發包,極大精簡系統擴展時所需的人手和工作量,方便公安等人員能夠快速的查看視頻內容、或者視頻監控領域開發者進行基于解碼視頻數據的更上層應用開發。
【【附圖說明】】
[0021]圖1是本發明實施例提供的一種基于特征分析的動態解碼方法的流程圖;
[0022]圖2是本發明實施例提供的一種基于特征分析的動態解碼方法的流程圖;
[0023]圖3是本發明實施例提供的一種基于特征分析的動態解碼方法的流程圖;
[0024]圖4是本發明實施例提供的一種基于特征分析的動態解碼裝置的結構示意圖;
[0025]圖5是本發明實施例提供的一種基于特征分析的動態解碼方法的流程圖。
【【具體實施方式】】
[0026]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0027]此外,下面所描述的本發明各個實施方式中所涉及到的技術特征只要彼此之間未構成沖突就可以相互組合。
[0028]實施例1:
[0029]本發明實施例1提供了一種基于特征分析的動態解碼方法,如圖1所示,包括:
[0030]在步驟201中,通過對視頻文件格式內容的掃描,解析得到所述視頻文件所屬的視頻解碼子結構類型。
[0031]其中,所述視頻解碼子結構類型包括標準視頻解碼子結構、通用視頻解碼子結構和專用私有廠商視頻解碼子結構。
[0032]在步驟202中,使用與所述視頻解碼子結構類型相對應的視頻解碼方式進行解碼。
[0033]本發明方法能夠廣泛兼容多媒體等工業領域中標準視頻文件以及視頻監控領域中的視頻監控錄像文件等各種社會資源格式。基于此方法可快速構建通用文件播放器或者解碼開發包,極大精簡系統擴展時所需的人手和工作量,方便公安等人員能夠快速的查看視頻內容、或者視頻監控領域開發者進行基于解碼視頻數據的更上層應用開發。
[0034]結合本實施例,所述通過對視頻文件的掃描,解析得到所述視頻文件所屬的編碼類型,存在一種可行的方案,具體包括:
[0035]使用基于開源解碼器掃描、基于標準編碼特征碼掃描和基于私有廠商特征碼掃描的方式,按照優先級從高到低排列;所述視頻解碼子結構的類型由其中優先級較高的掃描結果決定。
[0036]其中,所述基于開源解碼器掃描、基于標準編碼特征碼掃描或基于私有廠商特征碼掃描的方式,具體有可以實現為:
[0037]通過掃描文件頭數據、后綴以及一定量本身文件內容,來識別出視頻文件的容器和編碼類型,或者所屬廠商,對視頻解碼子結構進行分類。
[0038]在本實施例中,所述使用與所述編碼類型相對應的視頻解碼方式進行解碼,對于標準視頻解碼子結構類型的視頻文件、通用解碼子結構類型的視頻文件和專用私有廠商視頻解碼子結構類型的視頻文件,分別包括如下三種解碼方式:
[0039]對于標準視頻解碼子結構類型的視頻文件,使用開源解碼類庫進行文件讀取和解碼。
[0040]對于通用解碼子結構類型的視頻文件,根據標準編碼特征碼建立幀索引,利用索引自行讀取幀,并傳遞給開源解碼器進行解碼。
[0041]對于專用私有廠商視頻解碼子結構類型的視頻文件,利用廠商提供解碼類庫進行文件讀取和解碼。
[0042]實施例2:
[0043]本發明實施例2針對實施例1中所述使用開源解碼類庫進行文件讀取和解碼,提供了具體的實現步驟,如圖2所示,包括:
[0044]在步驟301中,初始化開源解碼類庫相關數據結構。
[0045]在步驟302中,使用開源類庫相關數據結構和接口打開視頻文件,查找視頻流信息,打開對應的視頻解碼器。
[0046]在步驟303中,使用開源類庫相關數據結構和接口讀取視頻文件一幀內容。
[0047]在步驟304中,將該幀內容傳遞給開源類庫解碼器進行解碼。
[0048]實施例3:
[0049]本發明實施例2針對實施例1中所述根據標準編碼特征碼建立幀索引,利用索引自行讀取幀,并傳遞給開源解碼器進行解碼,提供了具體的實現步驟,如圖3所示,包括:
[0050]在步驟401中,根據標準編碼特征碼,建立文件幀索引,所述文件幀索引包括幀偏移量和幀大小信息。
[0051]在步驟402中,根據標準編碼特征碼,利用開源解碼類庫打開對應的解碼器。
[0052]在步驟403中,利用建立好的文件索引結構,讀取該文件一幀數據。
[0053]在步驟404中,將該幀內容傳遞給解碼器進行解碼。
[0054]實施例4:
[0055]本發明實施例4提供了一種基于特征分析的動態解碼裝置1,用于實現實施例1、2和3中的方法,如圖4所示,所述動態解碼裝置包括存儲裝置11、處理裝置12和顯示裝置13,具體的:
[0056]所述存儲裝置11,用于存儲各種視頻解碼庫,包括標準的視頻解碼庫、通用的視頻解碼庫和專用私有廠商的視頻解碼庫;
[0057]所述處理裝置12,用于通過對視頻文件格式內容的掃描,解析得到所述視頻文件所屬的視頻解碼子結構類型;其中所述視頻解碼子結構類型包括標準視頻解碼子結構、通用視頻解碼子結構和專用