FFmpeg In Android(安卓)- H264码流解码/保存Yuv
16lz
2021-01-25
本节例子源码_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视频码流解析
更多相关文章
- Android触摸屏事件派发机制详解与源码分析一(View篇)
- [Android源码解析]蓝牙扫描结果反馈的分析
- Android提高第十三篇之探秘蓝牙隐藏API
- Android(安卓)App启动过程
- Android提高十六篇之使用NDK把彩图转换灰度图
- 实时监控Android设备网络封包
- 【Android应用开发】-(19)Android(安卓)串口编程原理和实现方式(附
- 如何成为 Android(安卓)开发高手?
- Android(安卓)IntentService完全解析 当Service遇到Handler