1

YUV420 を使用して動的に作成された jmf/fmjYUVFormatインスタンスを作成したいとCaptureDevice思います。strideY、strideUV、offsetY、offsetU、offsetV の値がどうあるべきかについて混乱しています。YUVFormatこのクラスでは、次のコンストラクターのみを使用できます。

1.YUVFormat()
2. YUVFormat(int yuvType)
3. YUVFormat(java.awt.Dimension size, int maxDataLength, java.lang.Class dataType, float frameRate, int yuvType, int strideY, int strideUV, int offsetY, int offsetU, int offsetV)

#1 または #2 を使用しても、サイズ、フレーム レート、またはデータ型を事後に設定することはできません。だから私はそれらを使用することはできません。#3 を使用するには、5 つの追加パラメーターを知る必要があります。Google 検索から次のすべての投稿を読みましたが、値がどうあるべきかについてまだ混乱しています。strideY と strideUV がフレームの幅になると安全に想定できると思いますが、100% 確実ではありません。

Javadoc: http://fmj-sf.net/doc/fmj/javax/media/format/YUVFormat.html

MediaWiki: http://wiki.multimedia.cx/index.php?title=PIX_FMT_YUV420P

FourCC: http://www.fourcc.org/yuv.php#IYUV

これまでの私のコードは次のとおりです。

int strideY = 幅、strideUV = 幅 / 2;
int オフセット Y = 0、オフセット U = 0、オフセット V = 0;
YUVFormat yuv = new YUVFormat(new Dimension(width, height), Format.NOT_SPECIFIED, Format.byteArray, frameRate, YUVFormat.YUV_420, strideY, strideUV, offsetY, offsetU, offsetV);
4

2 に答える 2