問題タブ [avcapture]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
426 参照

ios - AVAssetWriter の録音オーディオは 2 倍遅くなりますか?

AVAssetWriter を使用してオーディオを録音しようとしています。ただし、ファイルを再生すると、元のオーディオよりも 2 倍遅く再生されます。私がやったことは、次の方法でAVAssetWriterを作成することです..

その後、次のようにデータにバッファを追加し始めます

私がやっていることは、次のデリゲート関数で AVCapureSession を使用してマイク出力を取得することです

sampleBuffer を avassetWriter に直接渡してファイルに書き込みます。

オーディオ データのファイルへの書き込みが非常に遅い理由を教えてください。他の誰かが同様の問題に直面していますか? そして、問題の可能な解決策は何ですか..

0 投票する
1 に答える
377 参照

ios - iOS で写真をキャプチャする際のランダム エラー

ここで画像をキャプチャしようとしています:

ほとんどの場合、完全に機能します。

ただし、次の呼び出し時にエラーが発生することがありますcaptureStillImageAsynchronouslyFromConnection

このエラーが発生することを予想したいだけです。私はテストを試みましvideoConnection.enabledvideoConnection.activeが、どちらもエラーから独立しているようです...

写真を撮影する前に、すべてが問題ないことを確認するために何を確認する必要がありますか?

0 投票する
0 に答える
416 参照

ios - captureStillImageAsynchronouslyFromConnection での UIImage の向き:AVCaptureConnection の接続

次のメソッドを使用して、AVCaptureStillImageOutputからフレームをキャプチャしています

縦向きを使用しても

結果の画像をバッファ内で回転できません。

バッファから直接画像を取得しようとしましたが、回転しています

しかし、 captureStillImageAsynchronouslyFromConnection:connectionによって渡されたCMSampleBufferRefから取得する必要がある結果のCVImageBufferRefは nil です。

次のように、出力データバッファーから直接取得した画像表現を回転させようとすると:

結果として得られる UIImage は、XCode QuickLook と po を通して見ると、正しい方向を取得していません。

0 投票する
1 に答える
703 参照

ios - AVCaptureStillImageOutput を UIImage に変換して NSData として保存するにはどうすればよいですか?

作業中のアプリで写真を送信しようとしています。アプリを作成して写真を撮り、送信をタップすると、撮影したばかりの写真がメールで送信されます。

しかし、 の添付ファイルとして使用するために、 のタイプの写真を に変換しAVCaptureStillImageOutputUIImageに保存する方法がわかりません。NSDataaddAttachmentData

私はこれをやろうとしました:

私はこの機能を持っています

しかし、「未解決の識別子「imageAsUIIMage」の使用」というエラーが表示されます

電子メールで送信するために UIImage を取得したい。

0 投票する
1 に答える
823 参照

ios - AvCapture / AVCaptureVideoPreviewLayer で正しい可視画像を取得できない

現在、 AVCaptureAVCaptureVideoPreviewLayerなどから必要なものを取得するのに大きな問題が発生しています。

私は現在、この写真に示すように、カメラの小さなプレビューをビューの中央に配置するアプリを作成しています ( Iphone デバイスで使用できますが、iPad でも動作する場合はより良いでしょう)。

私の見解

そのために、カメラの比率を維持したいので、次の構成を使用しました。

ご覧のとおり、AVLayerVideoGravityResizeAspectFillプロパティを使用して、適切な比率を確保しています。

私は多くのことを試しましたが、実際には成功しなかったため、ここから問題が始まります。 私の目標は、ユーザーがプレビューレイヤーで見ることができるものと同等の画像を取得することです。ビデオ フレームは、プレビューで見ることができる画像よりも大きな画像を提供することを知っています。

私は3つの方法を試しました:

1)パーソナル コンピューティングの使用: ビデオ フレーム サイズと画面サイズ、レイヤー サイズと位置の両方を知っているので、比率を計算し、それを使用してビデオ フレーム内の同等の位置を計算しようとしました。ビデオ フレーム (sampleBuffer) はピクセル単位ですが、mainScreen 境界から取得する位置はアップル メジャーであり、ビデオ フレーム サイズが実際のデバイスの全画面サイズ。

--> これにより、実際に私の IPAD で非常に良い結果が得られました。高さと幅の両方は良好ですが、(x,y) の原点が元の位置から少しずれています... (詳細: 実際に 72 ピクセルを削除すると、良い出力が得られる位置)

2) StillImage キャプチャの使用: この方法は、私が IPAD を使用している限り、実際に機能していました。しかし、実際の問題は、これらのクロップフレームを使用して画像ライブラリをフィードしていることと、メソッドcaptureStillImageAsynchronouslyFromConnectionが画像のシステムサウンドを呼び出していることです(別のサウンドを呼び出して回避するなどの「解決策」についてよく読んでいますが、機能していません)実際にはiPhone 6で発生するフリーズを解決していないため、この方法は不適切なようです。

3)比率でmetadataOuputを使用する:これは実際にはまったく機能していませんが、stillImageプロセスでこれを使用すると最も役立つと思いました(metadataOutputRectOfInterestForRectの結果を使用して割合を取得し、それを比率と組み合わせます) . これを使用して、写真間の比率の違いを追加して、正しい出力を得たいと思いました。

誰かがこれで私を助けてくれることを願っています。どうもありがとう。

0 投票する
2 に答える
1291 参照

ios - 120/240fps で動画を保存する

デバイスの最大フレーム レート (つまり、iPhone 5s では 120fps、6 と 6s では 240fps) でビデオを録画するアプリを作成しています。AVCaptureDeviceを設定するようにを設定することができました。maxFrameRateDurationログに出力するcurrentDevice.activeFormat.videoSupportedFrameRateRangesと、すべてがうまく機能します。

しかし、ビデオを保存しようとすると保存されますが、120 または 240 fps ではなく、通常のフレーム レートで保存されます。

お願いします、誰かこれで私を助けてくれますか? どんな助けでも大歓迎です。

前もって感謝します。

PS:これまでの私の完全なコードは次のとおりです

0 投票する
1 に答える
249 参照

ios - CMSampleBuffer の UIImage が青みを帯びている

UIImageView 内で UIImages に変換された CMSampleBuffers のビデオ フィードを表示しています。下の写真では、背景レイヤーが AVCapturePreviewLayer で、中央がバッファー フィードです。私の目標は、青みを取り除くことです。

ここに画像の説明を入力

CMSampleBuffer から UIImage へのコードは次のとおりです。

AVCaptureVideoDataOutput セットアップ: