本节例子源码_NativeH264Android,修改自ffmpeg源码目录/doc/examples/decode_video.c

H264的码流结构
H.264原始码流(又称为“裸流”)是由一个一个的NALU组成的,包括I帧,B帧,P帧等等,他们的结构如下图所示:

其中每个NALU之间通过startcode(起始码)进行分隔,起始码分成两种:001(3Byte)或者0001(4Byte)。如果NALU对应的Slice为一帧的开始就用0001,否则就用001。H.264码流第一个 NALU是 SPS(序列参数集Sequence Parameter Set),H.264码流第二个 NALU是 PPS(图像参数集Picture Parameter Set).
简单来说码流是这样的byte数组:0001+SPS+0001+PPS+0001+NALU+0001+NALU+…,解码开始时,需要先把0001+SPS+0001+PPS"喂"给解码器,然后将后面的一帧数据0001+NALU,继续"喂"给解码器,然后得到一张解码出来的yuv保存/显示,再"喂"下一帧数据0001+NALU,这样循环直到码流结束.

转:怎么样获得H264原始码流
转:视音频数据处理入门:H.264视频码流解析

更多相关文章

  1. Android触摸屏事件派发机制详解与源码分析一(View篇)
  2. [Android源码解析]蓝牙扫描结果反馈的分析
  3. Android提高第十三篇之探秘蓝牙隐藏API
  4. Android(安卓)App启动过程
  5. Android提高十六篇之使用NDK把彩图转换灰度图
  6. 实时监控Android设备网络封包
  7. 【Android应用开发】-(19)Android(安卓)串口编程原理和实现方式(附
  8. 如何成为 Android(安卓)开发高手?
  9. Android(安卓)IntentService完全解析 当Service遇到Handler

随机推荐

  1. 使用线程设置后台进程以处理Android中的
  2. [Android Pro] Android 打包流程
  3. Android 两种制作圆形/圆角图片的方法
  4. Android - 在一个应用程序中启动另外一个
  5. Kotlin控制流、返回与跳转
  6. Android添加USB连接提示音(SettingsProvid
  7. 如何在Android设备中创建Web服务器(用于远
  8. android应用私有存储文件的写入与读取-op
  9. 如何从Android中的人脸检测部分找出脸部
  10. 为什么我们应该将XMPP而不是JSON用于简单