問題タブ [cmsamplebufferref]

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 に答える
470 参照

ios - 現在のフレームの AVAssetReader/AVAssetWriter プレビュー

AVAssetReader/AVAssetWriter iOSでビデオを変換するために使用しています。私の質問は、リアルタイム変換で現在のフレームのプレビューを表示する最も効率的な方法は何ですか. UIImageに変換CMSampleBufferRefしてからUIImageViewに適用することを考えていました。より良い方法はありますか?

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

objective-c - デリゲート コールバックの CMSampleBufferRef パラメータが空です

このコードを使用して AVCaptureSession を作成していますが、-(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection呼び出されたときの sampleBuffer サイズは 0 です

私の方法に何か問題がありますか?間違いが別の場所にある可能性はありますか?ARCを使用しています。

編集 バッファは空ではありませんでしたが、すぐに割り当てが解除されました。バッファを保持することで解決。ありがとう

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

ios - iOS での正方形のビデオ出力

AVFoundationiOS で正方形のビデオ出力を取得する方法はありますか?

CMSampleBufferビデオのすべてのフレーム ( ) の処理に OpenGL を使用しています。すべてのフレーム
が回転するので、トリミングして回転する必要がありCMSampleBufferます。しかし、私はそれを行う方法がわからないので、プロパティ(videoSettings)を設定することで、すでにトリミングおよび回転されたフレームを取得する方法があると信じていAVCaptureVideoDataOutputます.

私はそれをグーグル、グーグル、グーグルで検索しましたが、何も見つかりませんでした。迅速なコード例は素晴らしいでしょう。

アップデート:

Swift での私の完全な最終的な解決策:

それは私にとって完全にビデオ出力をミラーリングおよび回転させます! しかし、それはトリミングではありません!

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

objective-c - サイレント CMSampleBuffer を書き込むとクラッシュが発生する: CrashIfClientProvidedBogusAudioBufferList

AVAssetwriter を使用してビデオ/オーディオを録音しており、サイレント サンプル バッファーを書き込めるようにしたいと考えています。私は CoreAudio の経験があまりないので、実用的な解決策を思いつくのに苦労しています。

アイデアは、オーディオ デバイスが切断されても、再接続されるまでビデオを録画し続けることです。問題は、AVFoundation がどういうわけかオーディオを前面に押し出すため、結果のムービー ファイルが大幅に同期されないことです。

私の現在の実装では、オーディオ デバイスが接続されていないセグメントの間に配置するために、空の/サイレント CMSampleBuffer を作成しようとしています。

上部の sampleBuffer は、オーディオ デバイスが再接続された後の最初のサンプル バッファーです。これにより、埋めなければならないギャップの長さに関する情報が得られます。LastAudioDisconnect は、最後に書き込まれたオーディオ サンプル バッファからのプレゼンテーション タイムスタンプを常に保持します。

Guard Malloc を有効にすると、プログラムが次のようにクラッシュします: CrashIfClientProvidedBogusAudioBufferList

編集: Guard Malloc を無効にすると、録音中にオーディオ デバイスを複数回再接続できます。録音を停止すると、問題なくギャップが生じます。

問題は、AVAssetWriter がエラー コード 11800 (AVErrorUnknown) でランダムに失敗するため、デバイスを再接続した後、記録を停止するのに数分しかないことです。

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

ios - 写真アプリのようなタイム ラプス ビデオを作成するにはどうすればよいですか?

iOS 9 を実行している iPhone で長時間のタイム ラプス ビデオを作成する方法を探しています。理想的には、1 時間の映像を 1 分に圧縮するので、倍率は 60 です。60 から 1 フレームを取り出してつなぎ合わせますよね?

AVFoundation キャプチャ イメージを使用するプロジェクトがあります。captureOutput:idOutputSampleBuffer:fromConnection:

ただし、数時間にわたるタイム ラプスを作成するためのより良いアプローチがあるかどうかはわかりません

  • 個々の写真を撮り、それらをつなぎ合わせる (数秒ごとにカメラを起動する) ことは理にかなっていますか?

  • それとも、CMSampleBufferRef からフレームを取り出すだけですか?

  • カメラ画像のキャプチャに使用できる他の A​​PI はありますか?

    どのアプローチが最高の品質とバッテリー寿命をもたらすかを理解したいと思っています.

画像をステッチするためのコードがあるように見えるこの質問を見ていますが、プロジェクトに他に何か必要かどうかわかりません。

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

ios - QuickTime で音声が再生されず、VLC で音声が再生されるビデオ

まず、AVCaptureSession を使用して、camero と micophone から vedio とオーディオをキャプチャします。次に、以下のメソッド コードをデリゲートします。

以下のコードに転送AudioBufferListします。CMSampleBuffer

最後に、ビデオとオーディオ データをtest.movファイルとして保存します。VLC でファイルを再生し、音を出します。また、ffmpeg で aac 形式のオーディオ ファイルを剥がすことができます。

AudioBufferList問題は への転送だと思いCMSampleBufferます。いくつかの情報が欠落しているため、Quicktime が正しく再生できません。