EasyRTMP获取H.264实时流并转化成为RTMP直播推流之EasyRTMP-iOS如何处理H264关键帧和SPS、PPS数据的

EasyRTMP是结合了多种音视频缓存及网络技术的一个rtmp直播推流端,包括:圆形缓冲区(circular buffer)、智能丢帧、自动重连、rtmp协议等等多种技术,能够非常有效地适应各种平台(Windows、Linux、ARM、Android、iOS),各种网络环境(有线、wifi、4G),以及各种情况下的直播恢复(服务器重启、网络重启、硬件设备重启)。

EasyRTMP调用流程.png

提出问题:

EasyRTMP-iOS如何处理H264关键帧和SPS、PPS数据?

分析问题:

对于编码后的H264数据的处理在H264Packet.m中。

解决问题:

使用VideoToolbox编码后的视频数据,需要标记关键帧,以及处理SPS和PPS等数据。通过CFDictionaryContainsKey方法判断关键帧:

1.png

通过CMVideoFormatDescriptionGetH264ParameterSetAtIndex方法获取SPS和PPS的数据,并拼接:

2.png3.png4.png

posted on 2019-10-09 17:08  TSINGSEE  阅读(547)  评论(0编辑  收藏  举报