海康視頻錄像文件打包格式解析


海康威視視頻錄像以PS格式打包,錄像設置時如將音頻設置為G.711 Alaw或者Ulaw,錄制下來的文件使用vlc/ffplay等標准播放器播放不出音頻,需要向海康申請專用的轉換庫來轉換,當然,打包是按照標准PS格式來打,同學們也可以自己解析文件讀取另存

解析的過程按照PS包-->system header--->program stream map--->音視頻PES包一路下來,海康在包中自定義了一些id,可以不理會

 

我手頭的文件海康在系統頭中定義了四個streamid,分別是0xe0,0xc0,0xbd,0xbf,前兩個對應着視音頻,后兩個是私有數據

和program stream map中的映射如下:

 

規范中規定,stream id中0xC0~0xDF為音頻,0xE0~0xEF為視頻數據,通過表中的stream id找到相應的音視頻數據包,讀出數據后另存其他格式即可

 

 

需要注意的地方:

1、視頻數據的pes分包

PES頭中PES_packet_length是一個16位的長度,當數據一個pes包放不下時,海康使用data_alignment_indicator標志位,該位置1時,表明是起始PES包,如果置0則表示是分包數據,需要做好數據拼接

2、打包mp4文件的音頻設置

我使用的是mp4v2-2.0.0庫來打包mp4文件,在打包時,需要調用MP4SetFixedSampleDuration來設置相應的音軌字節(也即duration)

 

 

運行情況:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM