У меня есть потоковое базовое видео H264 FFMPEG, которое я должен инкапсулировать в RTP и отправить на SIP-телефоны для их декодирования.Я использую Linphone с плагином h264 для Windows и Mirial для прогресса декодирования.Тем не менее, иногда я получаю огромный размер кадра (3Kb ~ 9Kb) от FFMPEG, который явно не вписывается в MTU.
Если я отправляю эти кадры «как есть» и доверяю функции фрагментации IP, некоторые телефоны могут воспроизводить ее достаточно хорошо, но другие задыхаются и не могут декодировать поток.Я думаю, это потому, что поток не соответствует RFC 3984, который указывает, что пакеты, которые не помещаются в MTU, должны быть разделены на разные NALU и отмечать конец кадра с помощью функции Mark RTP.
Как узнать, где я могу "вырезать" рамку I или P?Я заметил, что фрагментированные пакеты h264 (пакеты без метки) иногда заканчиваются в 0xF8, но не могут получить шаблон, а в RFC 3984, который описывает, как отправлять эти пакеты по RTP, не указывается, как это сделать.
ОБНОВЛЕНИЕ: Кто-нибудь знает, как сказать библиотеке X264, как генерировать NALU максимального размера?таким образом я смогу избежать этой проблемы.Спасибо всем