問題タブ [avcapturesession]
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.
iphone - カメラでフォーカス (オートフォーカス) が機能しない (AVFoundation AVCaptureSession)
ビデオをキャプチャしてプレビューを表示するために、標準の AVFoundation クラスを使用しています ( http://developer.apple.com/library/ios/#qa/qa1702/_index.html )
これが私のコードです:
すべて正常に動作していますが、いくつかの問題が発生する場合があります。
- カメラのフォーカスが機能しない - ランダムで、機能する場合と機能しない場合があります。iPhone 4 と 3GS の両方の異なるデバイスで試しました。私はそれをグーグルで試しましたが、結果はありませんでした。人々は壊れたデバイスについてのみ言及していますが、私は 3 台の iPhone 4 と 1 台の iPhone 3GS を調べました。問題はどこにでもあります。
- カメラのロードにかなり時間がかかります。同じ理由でカメラも使用している ScannerKit API を使用しており、実装よりも約 2 倍高速にロードされます。
何が問題になる可能性がありますか?最初の問題は間違いなくより重要です。
iphone - セッションを再作成せずに、2 番目の AVCaptureSession でオートフォーカスを機能させるにはどうすればよいですか?
2 番目の AVCaptureSession を作成すると、最初の AVCaptureSession でオートフォーカスが機能しません。作成される 2 番目のセッションは、オートフォーカスが機能するセッションであり、最初に作成されたセッションはオートフォーカスではありません。
自動ホワイトバランスと自動露出が両方のセッションで機能するのと同じように、どちらのセッションも、もう一方のセッションが停止した後に開始するとオートフォーカスできると思います. 以下のサンプル コードでログ ウィンドウを観察すると、キー値を観察するメッセージが送信されていることがわかります。ただし、トップセッションの実行中にフォーカスメッセージが変更されることはありません。
補足: 残念ながら、使用しているサードパーティ ライブラリにバグがあり、セッションを切り替えるときにセッションを完全に再作成することができません (AVCaptureSessions がリークされ、最終的にアプリが強制終了されます)。完全な話は、このライブラリが私のためにキャプチャ セッションの 1 つを作成しているということです。セッションを開始および停止するためのパブリック API があり、別のセッションを作成したいと考えています。以下のコードは、サードパーティのライブラリを使用せずに問題を示しています。
以下にリストされたコードと、上下に 2 つのビューを持つ XIB ファイルと、問題を示す switchSessions メソッドに接続されたボタンを使用して、テスト アプリケーションを作成しました。
ここで説明されている問題、 Focus (Autofocus) not working in camera (AVFoundation AVCaptureSession)に関連している可能性がありますが、2 つのキャプチャ セッションについては言及されていません。
ヘッダー ファイル:
実装ファイル:
iphone - AVCaptureVideoPreviewLayerミラーリングiPhone4およびiPad2
AVCaptureVideoPreviewLayerでミラーリングを切り替えるための優れたサンプルコードを探しています。WWDC '10の元のAVCamプロジェクトはサポートされていましたが、他に好みの実装手法やサンプルプロジェクトがあるかどうか疑問に思っています。現在のAVCamプロジェクト(1.2)では、ミラーリングのサポートが削除されました。
助けてくれてありがとう!
iphone - CATransform3D を使用してフリップ アニメーションを作成する
UIViewAnimationTransitionFlipFromRight (および左) を再作成しようとしています。以下に示すように、そうする理由は、レイヤーが遮られているときに、アニメーションの途中で AVCaptureVideoPreviewLayer に変更を加えることです。UIViewAnimationTransitionFlipFromRight では、アニメーションを途中で停止したり、セッションを変更したり、続行したりすることはできません。
これは機能しますが、UIViewAnimationTransitionFlipFromRight と同じではありません。レイヤーが回転し始めますが、スライドのように後方および斜めに (説明するのは非常に困難です)、アニメーションの 2 番目の部分で反転します。レイヤーの右側を探して背面に反転し、次に左側に進みます。代わりに、右側は右側から始まり、後ろに回転してから、再び右に回転します。
私は何を間違っていますか?
更新: 最初は正しく回転します。その後、上記の問題は解決しません。リセットする必要がある AVCaptureVideoPreviewLayer と関係がありますか? わかりません、ただの推測です。
iphone - AVCaptureSessionPresetMedium画像サイズ?
AVCaptureSessionPresetMediumを使用する場合
これが幅x高さで何に解決されるかを動的に伝える方法はありますか?明らかに、私は次のような代表者まで待つことができます
呼び出されてそこで決定されますが、パフォーマンス上の理由からいくつかの値を事前に計算できるように、事前に実行したいと思います。
ios - AVCaptureSession出力サンプルバッファをCoreDataに保存
AVCaptureSessionを使用して、AVCaptureVideoDataOutputクラスのsetSampleBufferDelegateメソッドを使用してカメラからフレームをキャプチャしています。デリゲートメソッドは次のようになります。UIImageに変換して、UIImageViewに配置していることがわかります。各UIImageをディスクに保存し、URLを新しいmanagedObjectに保存したいのですが、各呼び出しがシリアルディスパッチキューを使用して新しいスレッドを生成するため、managedObjectContextを適切に取得する方法がわかりません。ディスクに保存され、managedObjectに対応するイメージのコレクションを構築できる方法でCoreDataとディスパッチキューを使用するソリューションを誰かが提案できますか?
iphone - 2 つの CMSampleBufferRef ファイルを結合するには?
AV Foundation API を使用してビデオをキャプチャしようとしています。ビデオを一時停止して再開する機能を提供したいと考えています。一時停止機能を実装する方法を見つけようとしています。[session stopRunning] メソッドを呼び出すボタンを追加することを考えていました。AVCaptureVideoDataOutput を実装し、ビデオが停止するたびに CMSampleBufferRef をキャプチャします。次に、これらすべてを 1 つのファイルに結合して、カメラ ロールに出力したいと思います。これは正しいアプローチのように思えますか?
また
一時停止ボタンを実装してビデオを継続的にキャプチャし、ユーザーが一時停止ボタンをクリックしたときにフレームを破棄する必要がありますか? もしそうなら、どうすればいいですか?
前もって感謝します!
iphone - AVCaptureConnections の使用方法
私は AVFoundation を初めて使用し、AVFoundation を使用してビデオ カメラを実装しようとしています。これが私の基本的なセットアップです。基本的に、ボタンをクリックすると、showCamera メソッドが呼び出されます。ここでは、セッションを作成し、オーディオ入力とビデオ入力を追加してから、ビデオ出力を追加します。
AVCaptureConnection を追加する場所とその方法を教えてください。接続の使用方法を示すチュートリアルはありますか? どんな助けでも大歓迎です。
}
iphone - AVFoundationを使用してiPhoneカメラロールにビデオを書き込むにはどうすればよいですか?
私は現在、AVFoundation apiを使用してビデオを録画しており、書き込み先のfileUrlを指定しています。
ただし、現在、一時ディレクトリへの記録です。このファイルをカメラロールに書き込むにはどうすればよいですか?カメラロールディレクトリは何ですか?
ありがとう!
iphone - 開いている gl フィルターを使用して遅いビデオを保存する iPhone
ビデオをキャプチャするためにプリセット AVCaptureSessionPresetMedium で avcapturesession を使用しています。シェーダーを使用して opengl でこのビデオに効果を適用しています。assetWriter を使用して、ビデオを mp4 ファイルに書き込みます。問題は、オーディオ出力を追加すると、結果のビデオが特に遅くなることです。
これが私のコードの仕組みです:
- - (void)captureOutput:(AVCaptureOutput *)captureOutput... 関数では、キャプチャされたフレームに opengl フィルターを適用します
- 次に、キャプチャ出力がビデオかオーディオかを確認します。ビデオの場合は、glReadPixels を使用して CVPixelBufferRef を作成し、それを AVAssetWriterInputPixelBufferAdaptor に送信して書き込みます。
- オーディオの場合は、CMSampleBufferRef を直接書き込みます
誰かが私のアプローチの何が問題なのか、または結果のビデオを遅くするのはどの部分なのか教えてもらえますか?