我有FFMPEG流媒体基线h264视频,我必须将其封装在RTP中并发送到SIP电话进行解码.我正在使用Linphone和Windows和Mirial的h264插件进行解码.但是,有时我会从FFMPEG获得一个巨大的帧大小(3Kb~9Kb),这显然不适合MTU.
如果我"按原样"发送这些帧并信任IP分段功能,一些手机能够很好地播放它,但是其他手机扼流并且无法解码流.我认为这是因为流不符合RFC 3984,该RFC 3984规定不适合MTU的数据包必须分成不同的NALU,并使用RTP的Mark功能标记Frame的结尾.
我怎么知道在哪里可以"切割"I或P帧?我注意到碎片化的h264数据包(没有Mark标签的数据包)有时会在0xF8中完成,但无法完全获得模式,并且在描述如何通过RTP发送这些数据包的RFC 3984中没有指定如何执行此操作.
更新:有谁知道如何告诉X264库如何生成最大大小的NALU?这样我应该能够避免这个问题.感谢大家