H264中的SPS、PPS提取与作用

2023-05-16

牛逼的视频会议网站:http://wmnmtm.blog.163.com/blog/#m=0

++++++++++++++++++++++++++++++++++++++++++++++++++++

http://wmnmtm.blog.163.com/blog/static/38245714201192491746701/

使用RTP传输H264的时候,需要用到sdp协议描述,其中有两项:Sequence Parameter Sets (SPS) 和Picture Parameter Set (PPS)需要用到,那么这两项从哪里获取呢?答案是从H264码流中获取.在H264码流中,都是以"0x00 0x00 0x01"或者"0x00 0x00 0x00 0x01"为开始码的,找到开始码之后,使用开始码之后的第一个字节的低5位判断是否为7(sps)或者8(pps), 及data[4] & 0x1f == 7 || data[4] & 0x1f == 8.然后对获取的nal去掉开始码之后进行base64编码,得到的信息就可以用于sdp.sps和pps需要用逗号分隔开来.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

如何解析SDP中包含的H.264的SPS和PPS串

http://www.pernet.tv.sixxs.org/thread-109-1-1.html

SDP中的H.264的SPS和PPS串,包含了初始化H.264解码器所需要的信息参数,包括编码所用的profile,level,图像的宽和高,deblock滤波器等。
由于SDP中的SPS和PPS都是BASE64编码形式的,不容易理解,附件有一个工具软件可以对SDP中的SPS和PPS进行解析。
用法是在命令行中输入:
spsparser sps.txt pps.txt output.txt

例如sps.txt中的内容为:
Z0LgFNoFglE=
pps.txt中的内容为:
aM4wpIA=

最终解析的到的结果为:

Start dumping SPS:
  profile_idc = 66
  constrained_set0_flag = 1
  constrained_set1_flag = 1
  constrained_set2_flag = 1
  constrained_set3_flag = 0
  level_idc = 20
  seq_parameter_set_id = 0
  chroma_format_idc = 1
  bit_depth_luma_minus8 = 0
  bit_depth_chroma_minus8 = 0
  seq_scaling_matrix_present_flag = 0
  log2_max_frame_num_minus4 = 0
  pic_order_cnt_type = 2
  log2_max_pic_order_cnt_lsb_minus4 = 0
  delta_pic_order_always_zero_flag = 0
  offset_for_non_ref_pic = 0
  offset_for_top_to_bottom_field = 0
  num_ref_frames_in_pic_order_cnt_cycle = 0
  num_ref_frames = 1
  gaps_in_frame_num_value_allowed_flag = 0
  pic_width_in_mbs_minus1 = 21
  pic_height_in_mbs_minus1 = 17
  frame_mbs_only_flag = 1
  mb_adaptive_frame_field_flag = 0
  direct_8x8_interence_flag = 0
  frame_cropping_flag = 0
  frame_cropping_rect_left_offset = 0
  frame_cropping_rect_right_offset = 0
  frame_cropping_rect_top_offset = 0
  frame_cropping_rect_bottom_offset = 0
  vui_parameters_present_flag = 0

Start dumping PPS:
  pic_parameter_set_id = 0
  seq_parameter_set_id = 0
  entropy_coding_mode_flag = 0
  pic_order_present_flag = 0
  num_slice_groups_minus1 = 0
  slice_group_map_type = 0
  num_ref_idx_l0_active_minus1 = 0
  num_ref_idx_l1_active_minus1 = 0
  weighted_pref_flag = 0
  weighted_bipred_idc = 0
  pic_init_qp_minus26 = 0
  pic_init_qs_minus26 = 0
  chroma_qp_index_offset = 10
  deblocking_filter_control_present_flag = 1
  constrained_intra_pred_flag = 0
  redundant_pic_cnt_present_flag = 0
  transform_8x8_mode_flag = 0
  pic_scaling_matrix_present_flag = 0
  second_chroma_qp_index_offset = 10

/
这里需要特别提一下这两个参数
pic_width_in_mbs_minus1 = 21
  pic_height_in_mbs_minus1 = 17
分别表示图像的宽和高,以宏块(16x16)为单位的值减1
因此,实际的宽为 (21+1)*16 = 352
 spsparser.rar

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

http://krdai.info.sixxs.org/blog/mp4-sps-pps-data.html

最近在做跟 h264 encode/decode 相關的研究,目標是希望可以從 Android 的 MediaRecorder 當中取出 h264 的資訊。目前問題是在於 SPS 以及 PPS 到底要怎樣得到。由於 MediaRecorder 是寫入 mp4 檔案中,所以不得已只好來去分析一下 mp4 的檔案格式,發現沒有想像中的困難. 主要是參照 ISO/IEC 14496-15 這部份. 在 mp4 的檔案之中, 找到 avcC 這個字串, 之後就是接上 AVCDecoderConfigurationRecord. AVCDecoderConfigurationRecord 的 format 如下:

[cpp]  view plain copy
  1. aligned(8) class AVCDecoderConfigurationRecord {  
  2.    unsigned int(8) configurationVersion = 1;  
  3.    unsigned int(8) AVCProfileIndication;  
  4.    unsigned int(8) profile_compatibility;  
  5.    unsigned int(8) AVCLevelIndication;  
  6.   
  7. bit(6) reserved = '111111'b;  
  8.    unsigned int(2) lengthSizeMinusOne;  
  9.   
  10. bit(3) reserved = '111'b;  
  11.    unsigned int(5) numOfSequenceParameterSets;  
  12.   
  13. for (i=0; i< numOfSequenceParameterSets; i++) {  
  14.       unsigned int(16) sequenceParameterSetLength ;  
  15.       bit(8*sequenceParameterSetLength) sequenceParameterSetNALUnit;  
  16.    }  
  17.    unsigned int(8) numOfPictureParameterSets;  
  18.    for (i=0; i< numOfPictureParameterSets; i++) {  
  19.       unsigned int(16) pictureParameterSetLength;  
  20.       bit(8*pictureParameterSetLength) pictureParameterSetNALUnit;  
  21.    }  
  22. }  

對照一下這樣就可以找到 SPS 和 PPS


+++++++++++++++++++++++++++++++++++++++++++++
vlc没有收到pps和sps
2010-10-08 16:16
问题 packetizer_h264 packetizer warning: waiting for SPS/PPS

是因为解码器只是在第一次执行编码的时候,才编码出 SPS、PPS、和I_Frame; 

h264 packetizer has set so, that it sends sps/pps only first keyframe,
 I'm trying to figure what breaks if that is changed so sps/pps is written in every keyframe. 
[出自| http://trac.videolan.org/vlc/ticket/1384]  

解决办法:

1、编码器编码出每个关键帧都加上SPS、PPS ,据说通常情况编码器编出的 SPS、PPS是一样的,所以这种方法耗费资源。

2、在服务器接收到客户端请求时,发送第一个package 加上 SPS、PPS。

具体如下:

  • 1、在 VideoOpenFileSource 添加一个变量 isFirstFrame;

  • 2、构造时初始化 isFirstFrame = true;
  • 3、在int VideoOpenFileSource::readFromBufferChain() 修改如下:

  • 
       1         if(isFirstFrame == true)
       2         {
       3                 memcpy(fTo, h264_header, sizeof(h264_header)); /* h264_header = pps +sps*/
       4                 offset = sizeof(h264_header);
       5                 framesize = BufferChain_get(fInput.video_bufs, fTo + offset);
       6                 offset += framesize;
       7                 isFirstFrame = false;
       8                 printf("this is the first fime\n");
       9                 sleep(1);
      10         }
      11         else
      12         {
      13                 framesize = BufferChain_get(fInput.video_bufs, fTo + offset);
      14                 offset += framesize;
      15         }
      1  

[http://topic.csdn.net/u/20100801/17/ef35e664-92ff-4144-a35f-3984dcf11da3.html| 参考] 


========================================================================
sdp 关于pps和sps的疑问:
packetization-mode 主要是定义包的模式,单一 NALU单元模式(0);非交错(non-interleaved)封包模式(1);交错(interleaved)封包模式(2)
sprop-parameter-sets 等于H.264 的序列参数集和图像参数 NAL单元,base64转换;(即= sps+pps)
profile-level-id 这个参数用于指示 H.264 流的 profile 类型和级别。这知道这个是啥东东

参考 黑暗长老 www.cppblog.com/czanyou/
ffmpeg decode 关于pps sps问题:
stackoverflow.com/questions/3493742/problem-to-decode-h264-video-over-rtp-with-ffmpeg-libavcodec/3500432#3500432  


如何用C语言取出H.264ES文件里的nal(sps,pps)信息。比如width, height, profile等等

请高手指点指点。。。 http://www.oschina.net/question/225813_35707

解析sps,pps的代码在ffmpeg里面就有, 抄出来就行了, 我以前也自己写过...
ffmpeg的libavcodec/h264_parser.c,
h264_ps.c
函数
ff_h264_decode_seq_parameter_set
ff_h264_decode_picture_parameter_set
自己可以看代码.


H264参数语法文档: SPS、PPS、IDR http://blog.csdn.net/heanyu/article/details/6205390

H.264码流第一个 NALU 是 SPS(序列参数集Sequence Parameter Set)
对应H264标准文档 7.3.2.1 序列参数集的语法进行解析


关于H264通过RTP传输的打包方式  


|字号 订阅

Q:现在小弟初次尝试H264的编码通过RTP方式传输,具体实验环境的问题如下:
环境:
服务器端,H264的帧数据(可能超过64k),分成N个1460字节的包,然后加上RTP头发送。
客户端,VLC播放器,通过RTSP协议建立连接,然后接收数据解码播放。
结果:
VLC不能解码接收到的数据,解码出错,VLC的信息中显示不能解码帧数据。
我已经阅读了一遍rfc3984的文档,对里面的如何进行打包和用rtp传输不是非常理解,希望各位大虾能够帮小弟一把,告诉小弟这些和H264的帧该如何发送,该如何分包,该如何加头信息等等。
(其中看到FUs的方式好像适合分包发送,因为小弟的数据帧可能超过64k,所以忘大虾们能够仔细解释一下对于小弟这种情况下的RTP传输)

A:我觉得所有的问题在 RFC3984 里面都已经说得很清楚了。不知道你有哪点不懂,请具体提出来。

Q:斑竹好,我这边是用VLC和服务器端进行通讯的,他们是用RTSP协议建立 开始时的连接的,服务器返回DISCRIBERS请求的SDP和下面描述的相同,我使用的packetization-mode=1,即FU-As方式打 包,因为我这边上来的数据帧可能超过64k数据。能否麻烦斑竹看看我这边的SDP写的是否正确。
SDP:
v=0
o=- 1 1 IN IP4 127.0.0.1
s=VStream Live
a=type:broadcast
t=0 0
c=IN   IP4 0.0.0.0
m=video 49170 RTP/AVP 99
a=rtpmap:99 H264/90000
a=fmtp:99 profile-level-id=42A01E; packetization-mode=1; sprop-parameter-ets=Z0IACpZTBYmI, aMljiA==
a=control:trackID=0

还有就是在RTP发送时,我打好包的数据方式如下面所示:
上来的帧数据为:NALU头+EBSP数据
因为帧数据大于1460字节,所以我把数据分为N个不大于1460字节的包,每个包前面加上RTP头发出去。
其 中NALU头的数值I帧为0x65,参数集为0x67和0x68,这个值是不是有点错误,我看RFC3984上面说的好像和我现在的有点不 同,RFC3984上面说FU-As方式打包类型值为28,我不知道这个是否十进制的,如果按照RFC3984上说的NALU头应该是多少?还是用FU- As方式的FU indicator代替原来的NALU头。
还有这个FU-As方式的头好像是有两个值,一个是FU indicator,另外一个是FU header,这两个值我应该填写什么?

按照我现在填写的内容,VLC会出现解不出码的情况,希望斑竹可以帮我回答的细致一点。谢谢了。

A:我觉得 RFC3984 上面说得非常清楚啊。
首先你把一个 NALU 的 EBSP 根据需求拆分为多个包,例如 3 个,则:

第一个 FU-A 包的 FU indicator 应该是:F = NALU 头中的 F;NRI = NALU 头中的 NRI;Type = 28。FU header 应该是:S = 1;E = 0;R = 0;Type = NALU 头中的 Type。

第二个 FU-A 包的 FU indicator 应该是:F = NALU 头中的 F;NRI = NALU 头中的 NRI;Type = 28。FU header 应该是:S = 0;E = 0;R = 0;Type = NALU 头中的 Type。

第三个 FU-A 包的 FU indicator 应该是:F = NALU 头中的 F;NRI = NALU 头中的 NRI;Type = 28。FU header 应该是:S = 0;E = 1;R = 0;Type = NALU 头中的 Type。

Q:版主,我按照你的方式分好包发送了,发现VLC不会出现不能解帧的情况了, 但是,还是出不来图像。我想可能是因为发送序列参数集和图像参数集的方法不对,他们两个的长度都很小,只要一个包就可以了,我现在将他们按照singal NALU的方式发送,就是直接在NALU包前加一个RTP的头,然后发出去。
是不是我这样发参数集存在着问题,反正我这边VLC是解不了这个参数集,因为参数集解不了,所以下面的帧肯定解不了,所以出不了图像。
麻烦版主再解释一下如何发参数集。

A:今天刚接受了流媒体的相关培训。懂得看你的   SDP 了。

对 于你的问题,不知道 SPS、PPS 打包是否有问题。按照 RFC3984,而且感觉你打单一包的方式也是错的。我希望你能通过自己学习的方式去把这个问题弄清楚,因为 RFC3984 里面说得很清楚,请你自己学习学习 RFC3984 吧。既然你在做这个工作,还是应该仔细学习一下 RFC3984。

另外, SDP 中的 sprop-parameter-ets=Z0IACpZTBYmI 实际就是 SPS 和 PPS 的 BASE64 转码,你不用在码流中再传输 SPS/PPS,直接从 SDP 就可以得到。

A2:1.SDP中已经包括SPS&PPS,码流中完全可以不用传输SPS&PPS
2. profile-level-id=42A01E,这是SPS的开头几个字节,剩下的在sprop-parameter- ets=Z0IACpZTBYmI, aMljiA==中,BASE64编码,把“Z0IACpZTBYmI, aMljiA==”反BASE64转换回去,应该刚好是SPS&PPS的内容
3. 打包注意,要求H.264码流不是byte stream格式的,即没有0x000001分隔,也没有插入0x03,具体如何生成,检查你的编码器选项。
4. packetization-mode=1模式下,要求每个RTP中只有一个NAL单元,或者一个FU,不分段的NAL不做任何修改,直接作为RTP负 载;分段的NAL注意,NAL头不传输,有效负载从NAL头之后开始,根据NAL头的信息生成FU的头两个字节(相当于NAL头拆为两部分),具体生成方 式版主已经讲得很清楚。
5. RTP的payload type要与SDP中一致,不然解的出才怪

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

H264中的SPS、PPS提取与作用 的相关文章

  • Java中进行H264数据的I帧判断

    要判断从编码器中获取到的一帧Byte数组是I帧还是P帧 首先需要了解H264数据的基本格式 I帧 帧内编码 P帧 前向预测编码 与前一个I帧比较差异 B帧 双向预测编码 与前后帧比较差异 H264流 首帧数据为SPS和PPS 后面为IPPP
  • H.264 编解码器解释[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在制作一个支持视频通话的应用程序 并且正在寻找解释 h 264 编解码器结构的教程 文档 我希望能够打包流 将其包装在数据报中 在接收端发送和解
  • 如何从 C# 中的一组图像创建 H.264 编码的电影?

    我今天做了很多搜索 C 库 这将允许我创建 H 264 编码的视频文件 有谁知道是否存在这样的库或第三方组件 Use ffmpeg 我建议直接运行 ffmpeg 进程 如本示例所示 http jasonjano wordpress com
  • 除 ffmpeg x264 之外的 H264 编码器

    我正在开发的 iPhone 应用程序会在特定的用户定义的时间间隔内连续捕获图像 我正在寻找一种将这些图像组合成 H264 编码视频的方法 我在 Google 上做了一些研究 看起来我必须在 iPhone 上使用 ffmpeg mencode
  • 通过 ICodecAPI 为 H.264 IMFSinkWriter 编码器设置属性

    我试图通过检索 ICodecAPI 接口来调整通过 ActivateObject 创建的 H 264 编码器的属性 虽然我没有收到错误 但我的设置没有被考虑在内 代码在 Windows 10 下运行 我复制用于创建 IMFSinkWrite
  • Mediacodec 解码器在解码 H264 文件时总是超时

    我一直在努力decode编码的视频文件H264编码与安卓的媒体编解码器并尝试将解码器的输出放入surface 但是当我运行应用程序时 它显示黑色表面 并且在 DDMS logcat 中我看到解码器超时 我已将文件解析为有效frames首先
  • FFmpeg 从 UYVY422 转换为 YUV420P

    我有 UYVY422 格式的原始视频 我想将其转换为 YUV420p 我正在执行该命令 ffmpeg y r 25 0 f rawvideo s 1920x1080 pix fmt uyvy422 i input avi pix fmt y
  • 如何设置 VTCompressionSession 的 MaxH264SliceBytes 属性

    iOS VTCompressionSession有一个属性是kVTCompressionPropertyKey MaxH264SliceBytes 但是 我无法设置kVTCompressionPropertyKey MaxH264Slice
  • 将 mkv 转换为 h264 FFmpeg

    EDIT 这个问题已经变得非常流行 并且是搜索 convert mkv to h264 ffmpeg 的最佳结果之一 因此我认为对于任何偶然发现这个问题的人来说 添加这一点是适当的 而不是使用 ffmpeg i input mkv c v
  • 如何在iOS上通过硬件解码来解码H.264帧?

    我已经使用 ffmpeg 来解码从 ip cam 收到的每一帧 简短的代码如下所示 void decodeFrame unsigned char frameData frameSize int frameSize AVFrame frame
  • H264 帧查看器

    您知道有什么应用程序可以向我显示单个 H264 帧的所有标头 参数吗 我不需要解码它 我只是想看看它是如何构建的 我想到了三种方法 如果您正在寻找免费的东西 否则谷歌 h264分析 以获取付费选项 下载h 264解析器 http www w
  • 从 H.264 中删除 EIA-608 隐藏式字幕而不重新编码

    我希望从 H 264 视频 包含为 mkv 中删除隐藏字幕 EIA 608 而不需要重新编码 我最接近的是使用 ffmpeg ffmpeg f lavfi i movie input mkv out subcc map 0 0 output
  • 如何对透明背景的视频进行编码

    我正在使用 OSX 的 cocoa 使用 AVAssetWriter 以 h264 编码视频 这是配置 Configure video writer AVAssetWriter m videoWriter AVAssetWriter all
  • H.264 over RTP - 识别 SPS 和 PPS 帧

    我有来自 IP 摄像机的原始 H 264 流 封装在 RTP 帧中 我想将原始 H 264 数据放入文件中 以便我可以将其转换为ffmpeg 因此 当我想将数据写入原始 H 264 文件时 我发现它必须如下所示 00 00 01 SPS 0
  • H264 中的 Elementary Stream 是什么意思

    我读了 Elementary Stream 的内容维基百科 http en wikipedia org wiki Elementary stream 我正在使用的工具 Live555 需要 H 264 视频基本流文件 因此 当从视频应用程序
  • 解析 mdat MP4 中的 H264

    我有一个仅包含 MP4 容器中的 mdat 原子的文件 mdat中的数据包含AVC数据 我知道数据的编码参数 该格式似乎不是附件 B 字节流格式 我想知道我将如何解析这个 我尝试过搜索切片标题 但运气不佳 是否可以在没有 NAL 的情况下解
  • 将 AVAssetWriter 与原始 NAL 单元结合使用

    我在 iOS 文档中注意到AVAssetWriterInput你可以通过nil为了outputSettings字典来指定输入数据不应重新编码 用于对附加到输出的媒体进行编码的设置 传递 nil 来指定不应重新编码附加的样本 我想利用此功能来
  • H264解析-切片头检测

    我知道在 h264 中我们可以通过位模式检测 NAL 单元0x000001 是否有等效的方法来检测 NAL 单元中的切片标头 如何处理多切片 NAL 单元 目前我正在使用 h264 的解析代码并获取相应结构中的切片标头 切片头语法在第 36
  • 实现 HTML5 视频的最佳方式

    我知道 HTML5 视频比其支持者希望我们相信的要复杂得多 Safari 使用专有的 H 264 编解码器 而 Firefox Chrome 和 Opera 都支持开源 Theora Internet Explorer 两者都不支持 因此需
  • 如何减少 MediaCodec 视频/avc 解码中的延迟

    我执行了一些简单的计时电影播放器 java https github com google grafika blob master src com android grafika MoviePlayer java in the Grafik

随机推荐

  • freertos和ucos的区别

    一 freeRTOS比uCOS II优胜的地方 xff1a 1 内核ROM和耗费RAM都比uCOS 小 xff0c 特别是RAM 这在单片机里面是稀缺资源 xff0c uCOS至少要5K以上 xff0c 而freeOS用2 3K也可以跑的很
  • wget和curl中使用代理

    命令使用代理 wget curl 都支持使用代理 wget e http proxy 61 10 1 4 43 8080 proxy mimvp com curl x 10 1 4 43 8080 proxy mimvp com 环境变量使
  • SQL 触发器与WebApi回执

    1 需求数据库表添加 xff0c 修改 xff0c 删除数据 xff0c 触发器生效 xff0c 推送数据数据到WCF接口 a 创建WCF服务 xff0c 发布服务 b 启用数据库CLR功能 xff0c 默认是关闭状态 EXEC sp co
  • inelliJ IDEA注册码

    http idea lanyus com
  • 正则表达式之?、(?:pattern)、(?!pattern)、(?=pattern)理解及应用

    今天朋友问我一个问题 xff0c 是这样子的 xff0c 通过正则表达式匹配html标签input包含hidden的字符串 xff0c 具体如下 xff1a 34 lt input type 61 34 hidden 34 id 61 34
  • cmake源码安装

    Data 2017 12 1 Author cjh Theme cmake源码安装 在玩TI AM5728时 xff0c 要用到cmake编译程序 xff0c 无奈开发板又不能用apt get只好自己源码安装了 cmake源码下载 解压源码
  • Ubuntu下逻辑坏道解决方案

    一 逻辑坏道修复方法 逻辑坏道 服务器硬盘相比其他部件是较容易坏的 xff0c 如突然断电 大量频繁写入都会加速硬盘的老化 xff0c 下面介绍一些判断硬盘状况和修复的方法 发现硬盘坏道 dmesg 当有硬盘坏道时 xff0c 通常在dme
  • 解决本地无法ssh连接ubuntu虚拟机

    1 保证双方都能互相ping通 本地 Windows 查看ip xff1a ipconfig ubuntu虚拟机查看ip span class token function ifconfig span 2 保证ubuntu虚拟机安装了ssh
  • 70、在js中为什么0.1+0.2不等于0.3

    并不是所有小数都可以用 完整 的二进制来表示的 xff0c 比如十进制 0 1 在转换成二进制小数的时候 xff0c 是一串无限循环的二进制数 xff0c 计算机是无法表达无限循环的二进制数的 xff0c 毕竟计算机的资源是有限 因此 xf
  • Outlook 2013/2016 显示“正在启动...“ 无法进入Outlook的解决方案

    因上次非正常关闭 xff0c 导致Outlook 2016启动时 xff0c 一直处于启动界面 xff0c 无法进入主界面正常工作 刚开始Outlook 2016启动界面显示的是 34 正在处理 34 查询网上各种方法 xff0c 安全启动
  • H265 CTU、CU、PU、TU划分的特点及要求

    目录 H265 CTU CU PU TU划分的特点及要求大小及划分模式常见问题1 Spec里对于CTU大小的规定在哪 xff1f 2 Spec对于TU大小的规定在哪 xff1f 3 Spec里对于M 2 M 2的划分方式的规定在哪里 xff
  • Oracle VM VirtualBox虚拟机使用问题总结

    我本机的配置是Ubuntu 18 04 43 Oracle VM VirtualBox虚拟机 6 1 12 43 虚拟win7操作系统 xff0c 对虚拟机了解甚少 xff0c 以下仅为一些实践中的经验 xff1a 一 升级后屏幕分辨率问题
  • C语言中string函数详解

    PS xff1a 本文包含了大部分strings函数的说明 xff0c 并附带举例说明 本来想自己整理一下的 xff0c 发现已经有前辈整理过了 xff0c 就转了过来 修改了原文一些源码的问题 xff0c 主要是用char 字义字符串的问
  • MP3的帧结构

    原文地址 xff1a http www eefocus com jjbearustc blog 07 09 3716 3e901 html MP3帧包括以下4个部分 xff1a 1 帧头 xff1a 比特流中包含同步和状态信息的部分 2 错
  • git am PATCH 失败的处理方法

    参考 xff1a http www cnblogs com domainfei articles 2433504 html http blog sina com cn s blog 5372b1a301015y0n html 英文原文地址
  • AAC帧格式及编码介绍

    参考资料 xff1a AAC以adts格式封装的分析 xff1a http wenku baidu com view 45c755fd910ef12d2af9e74c html aac编码介绍 xff1a http wenku baidu
  • 基于ubuntu14.04的Mobilenet_SSD环境搭建

    Data 2017 11 22 Author cjh Theme 基于ubuntu14 04的Mobilenet SSD环境搭建 Caffe for SSD xff1a https github com weiliu89 caffe tre
  • [open vSwitch]查看OVS端口ofport编号及对应虚拟机MAC

    在用open vSwitch做实验时 xff0c 我们经常需要知道OVS port对应的ofport编号 xff0c 这个比较容易 xff0c 用 ovs ofctl show bridge 就能得到 如 root 64 vaio ovs
  • 4、基于51单片机智能语音识别小车控制 语音口令说话控制系统设计

    毕设帮助 开题指导 技术解答 xff08 有偿 xff09 见文末 目录 摘要 一 硬件方案 二 设计功能 三 实物图 四 原理图 五 PCB图 六 程序源码 七 资料包括 摘要 随着电子工业的发展 xff0c 具有语音控制功能的小车越来越
  • H264中的SPS、PPS提取与作用

    牛逼的视频会议网站 xff1a http wmnmtm blog 163 com blog m 61 0 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 4