問題タブ [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 に答える
373 参照

iphone - iOS用のcvShowImageのようなものは存在しますか?

(iOSでAVFoundationとOpenCVを使用して)画像を処理していて、CMSampleBufferRef(またはIplImage)のコンテンツを画面に表示したいだけです。

簡単に言うと、変換されていない画像を(OpenCVのようにcvShowImage())表示して、破損した画像や何らかの形で変形した画像を処理していないかどうかを確認したいだけです。

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

iphone - iOS用のビデオ通話アプリで助けが必要

オーディオ/ビデオが1つのデバイスから別のデバイスにストリーミングされる単純なビデオ通話アプリを作成していますが、問題は、ビデオ通話がどのように機能するか、特にでどのように使用するかがわからないことですiOSAVCaptureSessionこれまで、このデリゲートメソッドのバッファを使用してビデオをキャプチャしてきました

テストのために、を使用してオーディオとビデオのバッファをドキュメントディレクトリに書き込みましたAVAssetWriter。その後、ビデオをiPhoneギャラリーに簡単に保存したり、MPMoviecontrollerプレーヤーで再生したりしました。

今、私は以下の問題を抱えています

  1. これらのバッファをサーバーに継続的に送信してから、他のデバイスにサーバーを送信する方法がわかりません。
  2. 他のデバイスへのデータ送信に成功した場合、他のデバイスでビデオを表示するためにデータをデコードするにはどうすればよいですか。

    私はそれについて検索しました。udpパケットを介してデータを送信するようなものですが、私もそれについて何も知りません。

    私が何をすべきかについて適切な知識を得るならば、私はそれをすることができると確信しています。これを達成するために私が何をすべきかについてのあなたの見解を教えてください。私はあなたの助けに感謝します

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

ios - AVWriter 書き込み用の CMSampleBuffer のタイムスタンプを設定する方法

オーディオのキャプチャと録音のために AVFoundation を使用しています。よく分からない問題があります。

基本的に、AVCaptureSession からオーディオをキャプチャし、AVWriter を使用して書き込みたいのですが、AVCaptureSession から取得した CMSampleBuffer のタイムスタンプをシフトする必要があります。CMSampleBuffer のドキュメントを読みましたが、タイムスタンプには「プレゼンテーション タイムスタンプ」と「出力プレゼンテーション タイムスタンプ」という 2 つの異なる用語があります。2つの違いは何ですか?

AVCaptureSession から CMSampleBuffer (オーディオ用) インスタンスを取得し、それを AVWriter を使用してファイルに書き込みたいとします。CMTime をバッファに「挿入」してプレゼンテーション タイムスタンプを設定するには、どの関数を使用すればよいですか?結果のファイル?

ありがとう。

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

ios - (CMSampleBufferRefから)圧縮せずにUIImageをキャプチャしますか?

CMSampleBufferRefUIImageから非圧縮画像データを取得する必要があります。私はコードを使用しています:

http://developer.apple.com/library/ios/#qa/qa1702/_index.htmlは関数へのリンクimageFromSampleBufferです。

しかし、それは正しく機能しません。:(

方法はありますがjpegStillImageNSDataRepresentation:imageSampleBuffer、圧縮されたデータが得られます(JPEGのため)。

UIImage静止画像をキャプチャした後、最も生の非圧縮データで作成するにはどうすればよいですか?

たぶん、私はビデオ出力にいくつかの設定を指定する必要がありますか?私は現在それらを使用しています:

私は、出力のデフォルト値がであることに気づきましAVVideoCodecKeyAVVideoCodecJPEG。なんらかの方法で回避できますか、それとも静止画をキャプチャするときにも問題になりますか?

そこで何かを見つけました。 「645PRO 」のようなカメラからの生の画像データですが、OpenCVやOGLES、その他のサードパーティを使用せずに、UIImageだけが必要です。

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

iphone - 生の NAL ユニットで AVAssetWriter を使用する

入力データを再エンコードしないように指定するために辞書をAVAssetWriterInput渡すことができるiOS ドキュメントで気付きました。niloutputSettings

出力に追加されるメディアのエンコードに使用される設定。追加されたサンプルを再エンコードしないことを指定するには、nil を渡します。

この機能を利用して生の H.264 NAL のストリームを渡したいのですが、生のバイト ストリームCMSampleBufferを AVAssetWriterInput のappendSampleBufferメソッドに渡すことができる に適応させるのに問題があります。NAL のストリームには、SPS/PPS/IDR/P NAL (1、5、7、8) のみが含まれています。AVAssetWriter で事前にエンコードされた H264 データを使用する方法に関するドキュメントや決定的な回答を見つけることができませんでした。結果のビデオ ファイルは再生できません。

NALユニットを適切にパッケージ化するにはどうすればよいCMSampleBuffersですか? 開始コードのプレフィックスを使用する必要がありますか? 長さのプレフィックス?1 つにつき NAL を 1 つだけ配置する必要がありCMSampleBufferますか? 私の最終目標は、H264/AAC で MP4 または MOV コンテナーを作成することです。

これが私が遊んでいるコードです:

実際に追加しようとする前に、有効な時間と思われるメソッドCMSampleBufferSetOutputPresentationTimeStamp内のサンプルバッファーを呼び出していることに注意してください。writeSampleBuffer

どんな助けでも大歓迎です。

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

ios - CMSampleBufferRef のトリミング

CMSampleBufferRef画像を特定のサイズにトリミングしようとしています。私は5つのステップを作っています - 1. 2から取得PixelBuffer. 3にSampleBuffer変換. これまでのところ、ステップ4で問題が発生しています-画像をレンダリングして戻します(この時点を超えてチェックできません)バッファには何もレンダリングされません(同じものを使用してチェックし、戻り値としてNULLを取得します)。ヒントや助けをいただければ幸いです。PixelBufferCIImageCIImageCIImagePixelBufferPixelBufferSampleBufferPixelBufferCIImage imageWithCVPixelBuffer

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

avfoundation - AVAssetWriter の使用時に PixelBuffer が解放されない

ビデオフレームをムービーに書き込むために、単一のビデオ入力で AVAssetWriter を使用しています。書き込みループの仕組みは問題ではありませんが、メモリ管理が問題であることがわかりました。

追加している CMSampleBufferRef に関して: a) いくつかの画像データ (生のバイト) から CVPixelBufferRef を作成します。したがって、CVPBR がデータを所有します。b) 次に、これを次のように CMSampleBufferRef にラップします (簡潔にするためにエラー チェックを削除しました)。

これにより、AVWriter に渡すことができるバッファーが作成されます。ここまでは順調ですね。問題は、バッファーをライターに追加した後で単純にバッファーを解放すると、奇妙な歪みが発生することです。

私がこれを行う場合:

その後、動作し、メモリ リークはありませんが、破損したフレームが表示されることがあります。フレーム 391,394 で時々同期フレームが外れていること、および明らかなメモリ破損があることに注意してください。私には、AVF がエンコードを完了する前にメモリ バッファが解放されているように見えます。

CFRelease(pixelBuffer) を削除すると、問題は解決します。結果のムービーは完全に滑らかで、破損はまったくありません。もちろん; 次に、数GBのメモリリークの問題があります!

他の誰かがこのようなものに出くわしましたか?

ところで: AVAssetWriterInputPixelBufferAdaptor を使用しても問題ありません。同じ結果が得られます。

問題を再現する完全なコード スニペットを次に示します。

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

ios - AVAssetWriter で使用されるサンプル バッファの期間を決定する方法

AVAssetWriter のビデオをキャプチャするために使用しているサンプル バッファーがあります。キャプチャしたビデオ (時間) の量を判断する方法を見つけようとしています。現在、次を使用して現在のバッファのタイムスタンプにアクセスできます

私はバッファの期間を決定する方法を探しています、私は試しました

何らかの理由で.002333とnanの間

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

objective-c - CMSampleBufferRef からの NSData またはバイト

こんにちはCMSampleBufferRef、ネットワーク経由で を送信する必要があります。その後、クライアントCMSampleBufferRefは Audio Queue Services 経由で を再生します。スタック オーバーフローの例をいくつか見てきましたが、ほとんどはバッファを送信するだけです。しかし、その後、いくつかの情報が失われます。私はそれが構造体[AVAssetReaderOutput copyNextSampleBuffer]への参照を返すことを発見しましたopaqueCMSampleBuffer。のメモリアドレスを取得する方法は知っていますopaqueCMSampleBufferが、アドレスの内容を配列にコピーして、ネットワーク経由で送信するにはどうすればよいですか? CMSampleBufferまたは、ネットワーク経由で送信するためのよりエレガントなアプローチはありますか。または、どうにかしてにアクセスできますopaqueCMSampleBufferか?

あなたの時間と助けてくれてありがとう