怎么把海康ps流提取h264h264转成标准h264

当前位置: >
> H264格式转换工具 v2.0 官方安装免费版
H264格式转换工具 v2.0 官方安装免费版
h264转换器下载
软件大小:18.7MB
软件语言:简体中文
软件类型:
软件授权:免费软件
更新时间:
软件类别:视频转换
软件官网:
应用平台:
网友评分:
软件介绍人气软件下载地址相关文章
一款非常好用的奇艺Qsv视频格式转换器。qsv这个文件格式是奇艺影音特有视频格式文件,利用奇艺qsv转换工具可以将qsv格式转换成flv格式,支持批量转换,使用非常方便《超级转换秀》是梦幻科技继《数码大师》和《彩影》软件后的又一优秀力作,超级转换秀是国内首个集成CD抓规、音频转换、视频转换、音视频混合转换、音视频切割/驳接转换于格式工厂是套万能的多媒体格式转换软件.格式工厂中文安装包仅适用用中文用户电脑xv是什么格式?XV是迅雷把flv格式加密后,成为自己的视频格式,除迅雷看看播放器以外其他所有播放器都无法播放,这个工具可以将xv转化为flv方便离线播放提取自qq影音3.3,之后也可能会随着官方更新而更新。 格式工厂(Format Factory)是多功能的多媒体格式转换软件,它可以实现大多数视频、音频以及图像不同格式之间的相互转换。包括视频Bigasoft iPhone Video Converter是一个易于使用的视频转换工具。它能快速转换成一个广泛的视频文件,如AVI, MPEG, WMV, MOV, RM, RMVB, DivX, ASF, VOB, 3GP 等等。BigasoWebEx转换器是一款将wrf格式的文件转换成wmv格式的文件的转换工具,可以用来转换多个WebEx录制文件(WRF)为WMV格式超级转换秀官方网站(梦幻科技)超强功能的音视频转换软件;10年多媒体造诣打造最高品质AVI/RMVB/FLV/WMV/DVD/MKV视频格式转换器MP4格式转换器是一款MP4格式转换软件,
能将任意视频文件转换成手机和MP4播放器支持的MP4格式视频,以及高清MP4格式视频。有了MP4格式转换器,您可以随时在您的MP4播放器
H264格式转换工具 v2.0 官方安装免费版
CopyRight &
JB51.Net , All Rights Reserved9346人阅读
from:http://blog.csdn.net/wwyyxx26/article/details/
海康7816使用ps流来封装h.264数据,这里使用的解码器无法识别ps流,因此需要将h264数据从ps流里提取出来
对于ps流的规定可以参考13818-1文档
这里从7816里获取到一些数据取样
00 00 01 BA&44 73 26 B8 34 01 00 00 03 FE FF FF 00 00 00 0100 00 01 BC00 5A&E0 FF 00 24 40 0E 48 4B 00 01 0D AF C5 D3 E0 07 FF FF FF FF
41 12 48 4B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2C 1B E0 00 10 42 0E 00 00 A0 21 02 C0 02 40 12 1F FF 00 1C 21 91 C0 00 0C 43 0A 00 00 FE 00 7D 03 03 E8 03 FF BD BD 00 00 BF BF 00 00 00 00 00 0000 00 01 E0&00
1A&8C 80&0A&21 1C C9 AE 0D FF FF FF FF FC 00 00 00 01 67 42 00 1E 95 A8 2C 04 99&00 00 01 E0&00 0E&8C 0003&FF
FF FC 00 00 00 01 68 CE 3C 80 00 00 01 E0 13 FA 8C 00 02 FF FD 。。。
如上是一个i帧的数据的开始部分,如下是一个非i帧的数据的开始部分
00 00 01 BA 44 73 27 99 34 01 00 00 03 FE FF FF 00 00 00 03 00 00 01 E0 07 12 8C 80 0A 21 1C C9 E6 4D FF FF FF FF F8。。。
可见都是以00 00 01 BA开头,这是ps的包头(Program Stream pack header),其中00 00 01是pack_start_code,是一个数据包的开始标识,接下来的1byte(BA)是流标识(stream_id),在文档13818-1的Table 2-33和2.5.3.4节有Program Stream pack header的描述。
这里把上面i帧的的(Program Stream pack header列出来
00 00 01 BA 44 73 26 B8 34 01 00 00 03 FE FF FF 00 00 00 01
根据文档描述包头最少有14个字节,第14个字节的最后3bit说明了包头14字节后填充数据的长度,这里是=FE&0x07=6,有6byte的填充数据,既是FF
FF 00 00 00 01,海康7816使用这部分填充数据来说明每帧的序号,01说明是第1帧数据。
要注意的是包头可能还有系统标题头,id为bb,他也是包头的一部分,并且,他的长度并未算在pack_stufing_length里,比如:
00 00 01 BB 00 0C 80 CC F5 04 E1 7F E0 E0 E8 C0 C0 20&
这里起始码后的 00 0C 说明了其后数据的长度,这里是12个字节
接在Program Stream pack header后的是以00 00 01 BC开始的一个包,00 00 01是pack_start_code,BC是stream_id流标识,说明跟在Program Stream pack header后的是Program Stream map。文档13818-1的Table 2-35和2.5.4.2节有Program Stream pack header的描述。
跟在00 00 01 BC后的两位是说明了Program Stream map,他也是pes包的一种,包的长度program_stream_map_length,这里是00 5A,说明跟在其后的数据长度为90,跳过这其后的90byte数据是以00 00 01 E0开始的包,E表示是GB/TXXXX.2或GB/TAAAA.2视频流编号xxxx规格的pes包了,0表示流id为0,h264数据就在这个包里。
从Program Stream map里我们还能得知pes里的流是何种流(stream_type和),以及帧率()等
1110XXXX(0xex)表示视频数据,111XXXXX表示audio数据,其后的帧有关信息共5字节,2字节PES包长度是00 1A,表示此PES数据包的长度是0x001a 即26字节;2字节标准位信息是8C 80,5字节中的最后一字节表示附加数据长度是0A,跟在附加数据长度后的就是视频数据负载了。
pes包可以有多个,这里的i帧就把数据放到了多个pes包里,这里的非i帧就只有一个pes包
有了以上信息就已经可以从7816里剥离出h246数据了,更详细的说明请参考文档。
截取一段pes包头进行分析
00 00 01 E0 00 1A 8C 80 0A 21 1C C9 AE 0D FF FF FF FF FC&
00 1A: 2字节表示长度
8C(10 00 1 1 00): 首先是固定值10,。
接下来的两位为(PES加扰控制字段)PES_scrambling_control,这里是00,表示没有加扰(加密)。剩下的01,10,11由用户自定义。
接下来第4位为PES优先级字段(PES_priority),当为1时为高优先级,0为低优先级。这里为1。
接下来第3位为(数据对齐指示符字段)PESdata_alignment_indicator,
接下来第2位为版权位,
接下来第1位为版权位,
80(10 000000):
首先是PTS,DTS标志字段,这里是10,表示有PTS,没有DTS。
接下来第6位是ESCR标志字段,这里为0,表示没有该段
接下来第5位是ES速率标志字段,,这里为0,表示没有该段
接下来第4位是DSM特技方式标志字段,,这里为0,表示没有该段
接下来第3位是附加版权信息标志字段,,这里为0,表示没有该段
接下来第2位是PES CRC标志字段,,这里为0,表示没有该段
接下来第1位是PES扩展标志字段,,这里为0,表示没有该段
0A(10):8个字节,指出包含在PES分组标题中的可选字段和任何填充字节所占用的总字节数。该字段之前的字节指出了有无可选字段(这里只有PTS)。
因为这里PTS,DTS标志字段是10,那就有5个字节的PTS段,就是这里的21 1C C9 AE 0D
最后的五个字节的FF FF FF FF FC是海康自己的一个自减计数值&
&这篇文章回复私信挺多的,有的同学读了成功的获取了原始的h.264数据,有的同学反映和他们遇到的情况不一样,比如同学说,这个其实是音频数据,还有遇到00 00 01 bd的,这个是私有流的标识,总之,ps流就解析大家可以参看,里面的内容都有,表2-18里说明了所有的流标识。
另外,有的hk摄像头回调然后解读出来的原始h.264码流,有的一包里只有分界符数据(nal_unit_type=9)或补充增强信息单元(nal_unit_type=6),如果直接送入解码器,有可能会出现问题,这里的处理方式要么丢弃这两个部分,要么和之后的数据合起来,再送入解码器里,如有遇到的朋友可以交流一下:)
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:353532次
积分:4215
积分:4215
排名:第7705名
原创:47篇
转载:152篇
评论:45条
(1)(6)(7)(2)(4)(2)(1)(4)(10)(7)(7)(1)(3)(8)(7)(3)(3)(9)(1)(8)(6)(1)(1)(5)(2)(2)(11)(5)(3)(9)(9)(8)(2)(1)(5)(6)(7)(5)(5)(8)(6)(1)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'9348人阅读
from:http://blog.csdn.net/wwyyxx26/article/details/
海康7816使用ps流来封装h.264数据,这里使用的解码器无法识别ps流,因此需要将h264数据从ps流里提取出来
对于ps流的规定可以参考13818-1文档
这里从7816里获取到一些数据取样
00 00 01 BA&44 73 26 B8 34 01 00 00 03 FE FF FF 00 00 00 0100 00 01 BC00 5A&E0 FF 00 24 40 0E 48 4B 00 01 0D AF C5 D3 E0 07 FF FF FF FF
41 12 48 4B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2C 1B E0 00 10 42 0E 00 00 A0 21 02 C0 02 40 12 1F FF 00 1C 21 91 C0 00 0C 43 0A 00 00 FE 00 7D 03 03 E8 03 FF BD BD 00 00 BF BF 00 00 00 00 00 0000 00 01 E0&00
1A&8C 80&0A&21 1C C9 AE 0D FF FF FF FF FC 00 00 00 01 67 42 00 1E 95 A8 2C 04 99&00 00 01 E0&00 0E&8C 0003&FF
FF FC 00 00 00 01 68 CE 3C 80 00 00 01 E0 13 FA 8C 00 02 FF FD 。。。
如上是一个i帧的数据的开始部分,如下是一个非i帧的数据的开始部分
00 00 01 BA 44 73 27 99 34 01 00 00 03 FE FF FF 00 00 00 03 00 00 01 E0 07 12 8C 80 0A 21 1C C9 E6 4D FF FF FF FF F8。。。
可见都是以00 00 01 BA开头,这是ps的包头(Program Stream pack header),其中00 00 01是pack_start_code,是一个数据包的开始标识,接下来的1byte(BA)是流标识(stream_id),在文档13818-1的Table 2-33和2.5.3.4节有Program Stream pack header的描述。
这里把上面i帧的的(Program Stream pack header列出来
00 00 01 BA 44 73 26 B8 34 01 00 00 03 FE FF FF 00 00 00 01
根据文档描述包头最少有14个字节,第14个字节的最后3bit说明了包头14字节后填充数据的长度,这里是=FE&0x07=6,有6byte的填充数据,既是FF
FF 00 00 00 01,海康7816使用这部分填充数据来说明每帧的序号,01说明是第1帧数据。
要注意的是包头可能还有系统标题头,id为bb,他也是包头的一部分,并且,他的长度并未算在pack_stufing_length里,比如:
00 00 01 BB 00 0C 80 CC F5 04 E1 7F E0 E0 E8 C0 C0 20&
这里起始码后的 00 0C 说明了其后数据的长度,这里是12个字节
接在Program Stream pack header后的是以00 00 01 BC开始的一个包,00 00 01是pack_start_code,BC是stream_id流标识,说明跟在Program Stream pack header后的是Program Stream map。文档13818-1的Table 2-35和2.5.4.2节有Program Stream pack header的描述。
跟在00 00 01 BC后的两位是说明了Program Stream map,他也是pes包的一种,包的长度program_stream_map_length,这里是00 5A,说明跟在其后的数据长度为90,跳过这其后的90byte数据是以00 00 01 E0开始的包,E表示是GB/TXXXX.2或GB/TAAAA.2视频流编号xxxx规格的pes包了,0表示流id为0,h264数据就在这个包里。
从Program Stream map里我们还能得知pes里的流是何种流(stream_type和),以及帧率()等
1110XXXX(0xex)表示视频数据,111XXXXX表示audio数据,其后的帧有关信息共5字节,2字节PES包长度是00 1A,表示此PES数据包的长度是0x001a 即26字节;2字节标准位信息是8C 80,5字节中的最后一字节表示附加数据长度是0A,跟在附加数据长度后的就是视频数据负载了。
pes包可以有多个,这里的i帧就把数据放到了多个pes包里,这里的非i帧就只有一个pes包
有了以上信息就已经可以从7816里剥离出h246数据了,更详细的说明请参考文档。
截取一段pes包头进行分析
00 00 01 E0 00 1A 8C 80 0A 21 1C C9 AE 0D FF FF FF FF FC&
00 1A: 2字节表示长度
8C(10 00 1 1 00): 首先是固定值10,。
接下来的两位为(PES加扰控制字段)PES_scrambling_control,这里是00,表示没有加扰(加密)。剩下的01,10,11由用户自定义。
接下来第4位为PES优先级字段(PES_priority),当为1时为高优先级,0为低优先级。这里为1。
接下来第3位为(数据对齐指示符字段)PESdata_alignment_indicator,
接下来第2位为版权位,
接下来第1位为版权位,
80(10 000000):
首先是PTS,DTS标志字段,这里是10,表示有PTS,没有DTS。
接下来第6位是ESCR标志字段,这里为0,表示没有该段
接下来第5位是ES速率标志字段,,这里为0,表示没有该段
接下来第4位是DSM特技方式标志字段,,这里为0,表示没有该段
接下来第3位是附加版权信息标志字段,,这里为0,表示没有该段
接下来第2位是PES CRC标志字段,,这里为0,表示没有该段
接下来第1位是PES扩展标志字段,,这里为0,表示没有该段
0A(10):8个字节,指出包含在PES分组标题中的可选字段和任何填充字节所占用的总字节数。该字段之前的字节指出了有无可选字段(这里只有PTS)。
因为这里PTS,DTS标志字段是10,那就有5个字节的PTS段,就是这里的21 1C C9 AE 0D
最后的五个字节的FF FF FF FF FC是海康自己的一个自减计数值&
&这篇文章回复私信挺多的,有的同学读了成功的获取了原始的h.264数据,有的同学反映和他们遇到的情况不一样,比如同学说,这个其实是音频数据,还有遇到00 00 01 bd的,这个是私有流的标识,总之,ps流就解析大家可以参看,里面的内容都有,表2-18里说明了所有的流标识。
另外,有的hk摄像头回调然后解读出来的原始h.264码流,有的一包里只有分界符数据(nal_unit_type=9)或补充增强信息单元(nal_unit_type=6),如果直接送入解码器,有可能会出现问题,这里的处理方式要么丢弃这两个部分,要么和之后的数据合起来,再送入解码器里,如有遇到的朋友可以交流一下:)
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:353534次
积分:4215
积分:4215
排名:第7705名
原创:47篇
转载:152篇
评论:45条
(1)(6)(7)(2)(4)(2)(1)(4)(10)(7)(7)(1)(3)(8)(7)(3)(3)(9)(1)(8)(6)(1)(1)(5)(2)(2)(11)(5)(3)(9)(9)(8)(2)(1)(5)(6)(7)(5)(5)(8)(6)(1)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'如何实时播放H264编码的视频流?-CSDN论坛
如何实时播放H264编码的视频流?
在远程端采集到视频信号H264编码后,传输到本地,现在的问题是如何将这H264编码的二进制转换成可播放的视频流(或可以直接播放?)以及播放该视频?各位提供可行方法,思路或源码,不甚感激!
好像直接用C#播放的没有,倒是有封装后的API来播放的,给你一个链接,可以参考一下:
&&&&&本章主要实现播放海康录像文件,更多播放器说明可以参考《Hikvision&H264播放器编程指南V4.8》。
WPF应该就支持吧。
我也想学习下
silverlight3以上都支持H264视频,看看吧。。
引用&1&楼&zhoufoxcn&的回复:好像直接用C#播放的没有,倒是有封装后的API来播放的,给你一个链接,可以参考一下:
H264播放器——播放录像文件
& &本章主要实现播放海康录像文件,更多播放器说明可以参考《Hikvision&H264播放器编程指南V4.8》。
之前已经看过,MS只是做了二次开发,我不是用的这种卡,没有其它方法了吗?
silverlight3,WPF:准备研究下,看看可不可行。
但现在的问题是H264编码的二进制是不是先要转换成AVI之类的视频格式呢?还是直接可以播放?不拘泥于C#的原码,其它方式只要提供了开发接口,大家都说说,提提意见
但是需要做二次开发而不是只用exe……
所以必须移植……
回复

我要回帖

更多关于 海康h265与h264的区别 的文章

 

随机推荐