問題タブ [cmsamplebuffer]
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 - オーディオ付きCVPixelBuffer
AVFoundationを使用CMSampleBufferRef
してカメラからキャプチャし、それを変換しCVPixelBufferRef
てビデオに書き込みます。私がやりたいのは、ビデオフレーム内のいくつかのピクセルを変更することです。だから私CVPixelBufferRef
は自分のから抜け出す必要がありますCMSampleBuffer
。私の問題は、オリジナルのオーディオデータをCMSampleBuffer
新しいものに含めることができなかったことですCVPixelBufferRef
私もで再作成しようとしましCMSampleBuffer
たCVPixelBufferRef
が、エラーが返されます:
iphone - CVPixelBufferリファレンスから目的のデータを取得する
カメラ入力をリアルタイムで表示し、中央のピクセルのカラー値を取得するプログラムがあります。私はcaptureOutput:メソッドを使用してAVCaptureSession出力(CVPixelBufferとして読み取られる)からCMSampleBufferを取得し、次のコードを使用してピクセルのrgb値を取得します。
その式((width * height)* 4)/ 2で中央のピクセルが得られますが、画像の上部の中央のピクセルが得られます。画面中央のピクセルにアクセスするには、どの式を使用する必要があるのでしょうか。これらのピクセルバッファの内部構造を本当に知らないので、私はちょっと立ち往生しています。
将来的には、真ん中の4つのピクセルを取得して平均化し、より正確な色の読み取りを行いたいと思いますが、今のところ、これらがどのように機能するかを理解したいと思います。
ios - captureOutput:didOutputSampleBuffer:fromConnection: は方向情報を持っていますか?
OpenGL を介して大量の画像処理をカメラ ライブ プレビュー レイヤーに適用します。OpenGL から画像を要求する前に (対応する変換を適用するために)、入力の向きに関する情報を取得したいと考えています。
キャプチャは縦向きのみのviewControllerで行われ、デバイスの向きからの通知があるか、実際の画像の向きと同期していない可能性があります。
CMSampleBuffer には方向情報がありますか? またはAVCaptureConnection?
ffmpeg - CMSampleBufferRef (AVFoundation) から取得したデータでオーディオ AVFrame (ffmpeg) を埋める方法は?
ウェブカメラから rtmp-server にライブ オーディオとビデオをストリーミングするためのプログラムを作成しています。私は MacOS X 10.8 で作業しているので、AVFoundation フレームワークを使用して、入力デバイスからオーディオ フレームとビデオ フレームを取得しています。このフレームは委任されます:
-(void) captureOutput:(AVCaptureOutput*)captureOutput didOutputSampleBuffer: (CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection*)connection
、
sampleBuffer
オーディオまたはビデオ データ が含まれています。
でオーディオ データを受信すると、このデータを libavcodecsampleBuffer
に変換しAVFrame
てエンコードしようとしています。AVFrame
問題は、そのように形成されたフレームを取得すると、必要な音が聞こえるが、速度が低下し、不連続になることです (各データ フレームの後に同じ無音のフレームが来るかのように)。CMSampleBuffer
からへの変換に何か問題があるようで AVFrame
、同じサンプル バッファから AVFoundation で作成されたマイクからのプレビューが正常に再生されました。
あなたの助けに感謝します。
UPD: AVCodceContext 構造の作成と初期化
ios - CMSampleBuffer から露出時間 (EXIF) を取得する
を使用してキャプチャした画像から露光時間を取得しようとしていAVFoundation
ます。次のような有用な画像メタデータの取得に関する2010年のWWDC指示に従ったときCMSampleBuffer
:
CFDictionaryRef
次の行でエラーが発生しました。
そこで、次のようにキャストして、インターネットのソリューションに従いました。
そして今、別のエラーが表示されます: アーキテクチャ armv7s の未定義シンボル
プログラムで何が問題になったのかわかりません。誰にもアイデアはありますか?
macos - AVFoundation (OSX) を使用してビデオにフィルターを追加する - 結果の画像を AVWriter に書き戻すにはどうすればよいですか?
シーンの設定
コマンドラインから実行してビデオを読み込み、処理してからエクスポートするビデオ処理アプリに取り組んでいます。私は4つのトラックで作業しています。
- 1 つのビデオを作成するために 1 つのトラックに追加する多数のクリップ。これを ugcVideoComposition と呼びましょう。
- 2 番目のトラックに配置され、レイヤー命令を使用するアルファ付きのクリップは、エクスポート時に合成され、ugcVideoComposition の上で再生されるように設定されます。
- 音楽のオーディオ トラック。
- 1 つのトラックに追加されたクリップからのオーディオを含む ugcVideoComposition のオーディオ トラック。
AVExportSessionを使用して、これをすべて機能させ、合成して正しくエクスポートできます。
問題
ここでやりたいことは、フィルターとグラデーションを ugcVideoComposition に適用することです。
私のこれまでの調査によると、これは AVReader と AVWriter を使用して CIImage を抽出し、それをフィルターで操作してから書き出すことによって行われることが示唆されています。
上記のすべての機能がまだ動作していませんが、アセットリーダーとアセットライターを使用して、ugcVideoComposition を読み込んでディスクに書き戻すことができました。
ご覧のとおり、CMSampleBuffer から CIImage を取得することもできます。イメージを操作して、必要な効果などを適用する方法を理解できると確信しています。どうすればよいかわからないのは、結果の操作された画像を SampleBuffer に戻して、もう一度書き出せるようにすることです。
質問
CIImage が与えられた場合、それを sampleBuffer に入れて assetWriter に追加するにはどうすればよいですか?
助けていただければ幸いです - AVFoundation のドキュメントはひどいものであり、重要なポイント (画像を抽出した後に画像を元に戻す方法など) が欠けているか、または私がやりたいことではない iPhone 画面への画像のレンダリングに焦点を当てています。
ありがとうございます!
ios - CMSampleBufferRef のスケーリングとトリミング
AvFoundation と AVCaptureVideoDataOutputSampleBufferDelegate を使用してビデオを録画しています。
録画中のビデオにズーム機能を実装する必要があります。次のデリゲート メソッドを使用しています。
AVAssetWriterInput に追加する前に、後でテキストと画像を追加する必要があるため、ビデオ フレームを取得するためにこれを使用しています。
ズームを実行すると考えることができる唯一の方法は、デリゲート メソッドから取得した「(CMSampleBufferRef)sampleBuffer」をスケーリングしてトリミングすることです。
これについて私を助けてください。「CMSampleBufferRef」をスケーリングおよびトリミングする方法を知る必要があります。
objective-c - CMSampleBuffer の再生
ビデオとオーディオを他のコンピューターにストリーミングするアプリケーションを作成しようとしています。
「サーバー」側では、(を使用してAVCaptureSession
) ビデオとオーディオをキャプチャし、それらをプレビューして、デリゲートを使用してネットワーク経由で送信し、反対側ですべてを再構築することができます。
「クライアント」側では、CMSampleBuffer
オーディオとビデオを含む を使用しましたが、それを再生する方法が見つかりません。と は確認AVPlayer
しましたが、 for 入力AVCaptureSession
の仕組みがわかりません。CMSampleBuffer
アイデア、リンクはありますか?ありがとうございました!
ios8 - iOS ビデオ ツールボックスに「enqueueSampleBuffer を無視しています: ステータスが「失敗」のため」と表示される
iOS8 でビデオ ツールボックスを使用して、PCM オーディオ ストリームと共に h264 ストリームを再生しています。オーディオ ストリームを開始しない限り、ビデオは問題なく表示されます。AudioQueueStart を呼び出すとすぐに、すべての enqueueSampleBuffer 呼び出しがビデオの表示を停止し、「enqueueSampleBuffer を無視します: ステータスが "失敗" であるため」というエラーが出力されます。
CMBlockBuffer 呼び出しから返されるエラーはありません。enqueueSampleBuffer は何も返さないため、このエラーでビデオ レイヤーを再作成するコードを書くことができません。
これは iOS デバイスでのみ発生し、シミュレーターでは発生しません。オーディオとビデオは、シミュレーターで完全に正常に再生されます。オーディオとビデオを別々のスレッドで実行して、一方が他方をブロックしないようにしています。誰かが同じ問題に直面しましたか?