私は、カメラフレームを表示するために金属を使用しています。私は出力されたサンプルバッファーをに変換してCVMetalTextureCacheCreateTextureFromImage
を使用しています。それはフレームが時計回りに90度回転していることを除いて素晴らしいことです。MTLTextureを回転
id<MTLTexture>
を時計回りに90度回転させるにはどうすればよいですか?
テクスチャを表示するとき(MTKView
)、ビデオを録画するときに回転が間違っていると考えました。
私は、カメラフレームを表示するために金属を使用しています。私は出力されたサンプルバッファーをに変換してCVMetalTextureCacheCreateTextureFromImage
を使用しています。それはフレームが時計回りに90度回転していることを除いて素晴らしいことです。MTLTextureを回転
id<MTLTexture>
を時計回りに90度回転させるにはどうすればよいですか?
テクスチャを表示するとき(MTKView
)、ビデオを録画するときに回転が間違っていると考えました。
ここでは、少なくとも2つの異なるオプションがあります。
最も簡単なのは、おそらく、AVFoundationの「物理的に」回転したフレームを要求することです。 AVCaptureConnection
を使用している場合は、setVideoOrientation
API(使用可能な場合)を使用して、フレームを配信前にローテーションするように指定できます。そうすれば、表示と録音を一貫した方法で処理することができます。
また、フレームをメタルビューに描画するときとムービーを記録するときの両方で回転変換を適用することもできます。あなたはすでに前者をやる方法を知っているように思えます。後者は、あなたが使用していると仮定してAVAssetWriterInput
のtransform
プロパティを設定するだけです。同様のAPIは、AVMutableComposition
などの下位レベルのAVFoundationクラスにも存在します。