taro-taryo / FieldNavigator360

MIT License
0 stars 0 forks source link

デコーダがフレームをバッファリングしている #17

Open taro-taryo opened 1 week ago

taro-taryo commented 1 week ago

デコーダが5フレーム程度フレームをバッファリングしています。 FPSが低いがリアルタイム性が重視される用途で、遅れが顕著となる動きです。 デコーダがフレームを速やかに出力するように修正してください。

taro-taryo commented 1 week ago

VideoDecoder は DPB を最小化するようなフラグを提供していないです。 エンコードデータに Bフレームが紛れてる、もしくはデコーダが Bフレームに備えて DPB を貯めている、と思います。 しかしエンコーダ、デコーダともに、 baseline profile を指定しているので、Bフレーム自体存在しないことは明らかなはずです。

taro-taryo commented 1 week ago

VideoEncoder に latencyMode = 'realtime' を設定することで、デコーダのバッフォリングを最小限にすることができました。 概ねリアルタイムで、少なくとも2〜3秒も遅延することはありません。 ただし、latencyMode = 'realtime' という設定の根拠は非常に抽象化されており、実際に Bフレームが存在し、それが排除されたという確認はなされていません。仮にそうだとしても、それは profile に違反しています。Bフレームの存在の有無ではなくて、フレームの長期参照かもしれません。その場合は SPS,PPS を解析することである程度結論が得られると思います。