2

プロのビデオカメラが UDP と RTP 経由でパケットを送信してきました。パケットには、YUV422 ピクセル形式 (RFC 2435) の MJPG データが含まれています。DatagramSocket および DatagramPacket クラスを使用することで、パケットを受信できます。今、私は次から取得する効率的な方法を探しています:

約 80 * RTP_socket.receive(rtpPacket) ---> ハードディスクに 1 つの jpg ファイル (25 fps)

そうしないと、UDP 標準によれば、パケットはカメラによって継続的に送信されるため、比較的多くのパケットがすぐに失われます (すべてのフレームが必要ないため、たまにパッケージを失うことは最悪ではありません)。

現在、1 フレームの最終パケットを取得するまで、ByteBuffer を使用してパケットを順番に格納しています (ヘッダーは put (.. int offset...) を使用して切り取られています)。

しかし残念ながら、必要な jpg-Header を取得するには ImageIO.write 関数を使用する必要があるようですよね?ByteBuffer を直接処理できないため...

別のスレッド (まだ実装されていません) で画像の後処理を行う場合、DirectByteBuffer は意味がありますか?

私が求めていることを理解していただければ幸いです:)。そうでない場合は、お気軽にお尋ねください

どうもありがとう

4

1 に答える 1