EasyRTMP获取H.264实时流并转化成为RTMP直播推流之EasyRTMP-iOS如何处理H264关键帧和SPS、PPS数据的
EasyRTMP是结合了多种音视频缓存及网络技术的一个rtmp直播推流端,包括:圆形缓冲区(circular buffer)、智能丢帧、自动重连、rtmp协议等等多种技术,能够非常有效地适应各种平台(Windows、Linux、ARM、Android、iOS),各种网络环境(有线、wifi、4G),以及各种情况下的直播恢复(服务器重启、网络重启、硬件设备重启)。
EasyRTMP-iOS如何处理H264关键帧和SPS、PPS数据?
对于编码后的H264数据的处理在H264Packet.m中。
使用VideoToolbox编码后的视频数据,需要标记关键帧,以及处理SPS和PPS等数据。通过CFDictionaryContainsKey方法判断关键帧:
通过CMVideoFormatDescriptionGetH264ParameterSetAtIndex方法获取SPS和PPS的数据,并拼接: