Спасибо! Я вхожу в это сегодня днем, но я уже проверил, и не будет проблемой применить эти изменения. Спасибо большое за вашу помощь!

я есть FFMPEG потоковое базовое видео h264, которое я должен инкапсулировать в 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 максимального размера? таким образом я смогу избежать этой проблемы. Всем спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос