私はFFMPEGストリーミングベースラインh264ビデオを持っています。これをRTPにカプセル化し、デコードのためにSIP電話に送信する必要があります。デコードの進行には、Windows用のh264プラグインとMirialでLinphoneを使用しています。ただし、FFMPEGから巨大なフレームサイズ(3Kb〜9Kb)を取得することがありますが、これは明らかにMTUに適合しません。
これらのフレームを「現状のまま」送信し、IPフラグメンテーション機能を信頼すると、一部の電話はそれを十分に再生できますが、他の電話はチョークしてストリームをデコードできません。これは、ストリームがRFC 3984に準拠していないためだと思います。これは、MTUに収まらないパケットを異なるNALUに分離し、RTPのマーク機能でフレームの終わりをマークする必要があることを指定しています。
IまたはPフレームをどこで「カット」できるかをどのように知ることができますか?断片化されたh264パケット(マークラベルのないもの)が0xF8で終了することがありますが、パターンを完全に取得できず、RTPを介してこれらのパケットを送信する方法を説明するRFC 3984で、その方法が指定されていないことに気付きました。
更新:最大サイズのNALUを生成する方法をX264ライブラリに指示する方法を知っている人はいますか?そうすれば、この問題を回避できるはずです。みんな、ありがとう