海康视频录像文件打包格式解析

海康威视视频录像以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)

运行情况:

时间: 2024-10-22 22:21:31

海康视频录像文件打包格式解析的相关文章

PES,TS,PS,RTP等流的打包格式解析之PES流

PES,TS,PS,RTP等流的打包格式解析之PES流 版权声明:本文为博主原创文章,未经博主允许不得转载. 因为工作接触到了各种不同的音视频封装格式,常见的国标PS流,onvif的RTP流和TS流等,都说好记性不如烂笔头,抽空总结下,也好在以后能随时查阅,因水平问题,可能会有地方有疏漏和问题,还请指教 一.PES流 PES流是对原始ES流进行的第一层封装,PES流的基本单位是PES包,由包头和payload组成,ES流即音视频裸流,是从编码器里面出来的原始视频音频流:ES流只包含一种内容,里面

海康视频监控---Demo

1,使用在页面中调用ActiveX控件 <object classid='clsid:E7EF736D-B4E6-4A5A-BA94-732D71107808' codebase='' standby='Waiting...' id='PreviewActiveX' width='100%' height='100%' name='ocx' align='center'> <param name='wndtype' value='1'> <param name='playmo

海康视频下载,以及实时视频预览

一,前言 公司一项目需要拿到海康刻录机里面某时间段的视频去刻录.遇到问题第一时间看官网有么有demo可以套用,哎,一言难尽,打开官网看到文档后,感觉长得不像,就没继续看了,不知道怎么弄的我,迷茫着在网上找答案,网上这方面的资料也少的厉害.最终还是硬着头皮把官网上的看着像的全下载了,终于找到了自己想要目标 二,下载 官网文档 https://www.hikvision.com/cn/download_61.html 请根据需要下载,这里我下载的是 设备网络SDK_Win64 : 三,整理成项目并运

三维模型obj文件的格式解析与读取

请先看这两个中文博客中对于obj的介绍: 读取Obj格式的模型文件(Dx10) C++读入obj格式模型文件 更为详细的英文资料(用google或者aol搜索 "obj format"即可得到): http://en.wikipedia.org/wiki/Wavefront_.obj_file Wavefront OBJ File Format Summary 最详细的资料 obj spec: http://www.martinreddy.net/gfx/3d/OBJ.spec htt

海康RTSP格式

海康RTSP取流URL格式 一.预览取流 设备预览取流的RTSP URL有新老版本,2012年之前的设备(比如V2.0版本的Netra设 备)支持老的取流格式,之后的设备新老取流格式都支持. RTSP.jpg 1.老版本 URL规定: rtsp://username:[email protected]<ipaddress>/<videotype>/ch<number>/<streamtype> 注:VLC可以支持解析URL里的用户名密码,实际发给设备的RTS

解码海康摄像机的录像 及 延时装载库

    使用海康的解码库playctrl.dll来解码海康的录像.下面的代码仅供参考.     下面的代码演示了这样一种机制:在多个工程中共享代码的时候,有的工程需要调用某些库,有的工程不需要,但是由于源代码互相引用导致即使用不到某个库的程序,也需要随同发布这个库,否则程序会在启动的时候报错找不到指定的库.     解决这个问题的方法之一是使用动态装载,用 LoadLibrary 动态装载库,用 GetProcAddress 获得要调用的函数的地址,用函数指针调用.但是这个方法比较麻烦.    

海康SDK编程指南(C#二次开发版本)

海康SDK编程指南 目前使用的海康SDK包括IPC_SDK(硬件设备),Plat_SDK(平台),其中两套SDK都需单独调用海康播放库PlayCtrl.dll来解码视频流,返回视频信息和角度信息.本文仅对视频监控常用功能的使用进行说明,其它未实现功能请参看设备网络SDK使用手册和播放库编程指南V7.2. IPC_SDK编程指南 (一)    SDK的引用 由于IPC_SDK没有SDK安装程序,所以需手工把下面图表中的DLL放入Debug或者Release文件夹的根目录下供程序调用,或者加入系统环

针对监控摄像机(海康、大华等)进行手动录像的录像文件播放器功能设计

参考上一篇: 针对监控摄像机(海康.大华等)进行手动录像的功能设计 录像后需要自定义一个播放器来播放录像文件. 简单设计界面如下: 打开文件,可暂停,可停止,可以拖动进度条. static int width = 1920, height = 1080; int videoWidth = 639, videoHeight = 479; int YUVWidth = 640, YUVHeight = 480; bool bPause = false; bool bPlayStop = false;

海康大华RTSP格式

海康实时流:rtsp://admin:[email protected]:554/h264/ch4/main/av_stream海康回放流(模拟通道):rtsp://admin:[email protected]:554/Streaming/tracks/101?starttime=20120802t063812z&endtime=20120802t064816z海康回放流(IP通道):    rtsp://admin:[email protected]:554/Streaming/tracks