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数据?网络

分析问题:app

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

解决问题:编码

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

1.png

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

2.png3.png4.png

相关文章
相关标签/搜索