問題タブ [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.
iphone - iOS用のcvShowImageのようなものは存在しますか?
(iOSでAVFoundationとOpenCVを使用して)画像を処理していて、CMSampleBufferRef(またはIplImage)のコンテンツを画面に表示したいだけです。
簡単に言うと、変換されていない画像を(OpenCVのようにcvShowImage()
)表示して、破損した画像や何らかの形で変形した画像を処理していないかどうかを確認したいだけです。
iphone - iOS用のビデオ通話アプリで助けが必要
オーディオ/ビデオが1つのデバイスから別のデバイスにストリーミングされる単純なビデオ通話アプリを作成していますが、問題は、ビデオ通話がどのように機能するか、特にでどのように使用するかがわからないことですiOS
。AVCaptureSession
これまで、このデリゲートメソッドのバッファを使用してビデオをキャプチャしてきました
テストのために、を使用してオーディオとビデオのバッファをドキュメントディレクトリに書き込みましたAVAssetWriter
。その後、ビデオをiPhoneギャラリーに簡単に保存したり、MPMoviecontroller
プレーヤーで再生したりしました。
今、私は以下の問題を抱えています
- これらのバッファをサーバーに継続的に送信してから、他のデバイスにサーバーを送信する方法がわかりません。
他のデバイスへのデータ送信に成功した場合、他のデバイスでビデオを表示するためにデータをデコードするにはどうすればよいですか。
私はそれについて検索しました。udpパケットを介してデータを送信するようなものですが、私もそれについて何も知りません。
私が何をすべきかについて適切な知識を得るならば、私はそれをすることができると確信しています。これを達成するために私が何をすべきかについてのあなたの見解を教えてください。私はあなたの助けに感謝します
ios - AVWriter 書き込み用の CMSampleBuffer のタイムスタンプを設定する方法
オーディオのキャプチャと録音のために AVFoundation を使用しています。よく分からない問題があります。
基本的に、AVCaptureSession からオーディオをキャプチャし、AVWriter を使用して書き込みたいのですが、AVCaptureSession から取得した CMSampleBuffer のタイムスタンプをシフトする必要があります。CMSampleBuffer のドキュメントを読みましたが、タイムスタンプには「プレゼンテーション タイムスタンプ」と「出力プレゼンテーション タイムスタンプ」という 2 つの異なる用語があります。2つの違いは何ですか?
AVCaptureSession から CMSampleBuffer (オーディオ用) インスタンスを取得し、それを AVWriter を使用してファイルに書き込みたいとします。CMTime をバッファに「挿入」してプレゼンテーション タイムスタンプを設定するには、どの関数を使用すればよいですか?結果のファイル?
ありがとう。
ios - (CMSampleBufferRefから)圧縮せずにUIImageをキャプチャしますか?
CMSampleBufferRefUIImage
から非圧縮画像データを取得する必要があります。私はコードを使用しています:
http://developer.apple.com/library/ios/#qa/qa1702/_index.htmlは関数へのリンクimageFromSampleBuffer
です。
しかし、それは正しく機能しません。:(
方法はありますがjpegStillImageNSDataRepresentation:imageSampleBuffer
、圧縮されたデータが得られます(JPEGのため)。
UIImage
静止画像をキャプチャした後、最も生の非圧縮データで作成するにはどうすればよいですか?
たぶん、私はビデオ出力にいくつかの設定を指定する必要がありますか?私は現在それらを使用しています:
私は、出力のデフォルト値がであることに気づきましAVVideoCodecKey
たAVVideoCodecJPEG
。なんらかの方法で回避できますか、それとも静止画をキャプチャするときにも問題になりますか?
そこで何かを見つけました。 「645PRO 」のようなカメラからの生の画像データですが、OpenCVやOGLES、その他のサードパーティを使用せずに、UIImageだけが必要です。
iphone - 生の NAL ユニットで AVAssetWriter を使用する
入力データを再エンコードしないように指定するために辞書をAVAssetWriterInput
渡すことができるiOS ドキュメントで気付きました。nil
outputSettings
出力に追加されるメディアのエンコードに使用される設定。追加されたサンプルを再エンコードしないことを指定するには、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
どんな助けでも大歓迎です。
ios - CMSampleBufferRef のトリミング
CMSampleBufferRef
画像を特定のサイズにトリミングしようとしています。私は5つのステップを作っています - 1. 2から取得PixelBuffer
. 3にSampleBuffer
変換. これまでのところ、ステップ4で問題が発生しています-画像をレンダリングして戻します(この時点を超えてチェックできません)バッファには何もレンダリングされません(同じものを使用してチェックし、戻り値としてNULLを取得します)。ヒントや助けをいただければ幸いです。PixelBuffer
CIImage
CIImage
CIImage
PixelBuffer
PixelBuffer
SampleBuffer
PixelBuffer
CIImage imageWithCVPixelBuffer
avfoundation - AVAssetWriter の使用時に PixelBuffer が解放されない
ビデオフレームをムービーに書き込むために、単一のビデオ入力で AVAssetWriter を使用しています。書き込みループの仕組みは問題ではありませんが、メモリ管理が問題であることがわかりました。
追加している CMSampleBufferRef に関して: a) いくつかの画像データ (生のバイト) から CVPixelBufferRef を作成します。したがって、CVPBR がデータを所有します。b) 次に、これを次のように CMSampleBufferRef にラップします (簡潔にするためにエラー チェックを削除しました)。
これにより、AVWriter に渡すことができるバッファーが作成されます。ここまでは順調ですね。問題は、バッファーをライターに追加した後で単純にバッファーを解放すると、奇妙な歪みが発生することです。
私がこれを行う場合:
その後、動作し、メモリ リークはありませんが、破損したフレームが表示されることがあります。フレーム 391,394 で時々同期フレームが外れていること、および明らかなメモリ破損があることに注意してください。私には、AVF がエンコードを完了する前にメモリ バッファが解放されているように見えます。
CFRelease(pixelBuffer) を削除すると、問題は解決します。結果のムービーは完全に滑らかで、破損はまったくありません。もちろん; 次に、数GBのメモリリークの問題があります!
他の誰かがこのようなものに出くわしましたか?
ところで: AVAssetWriterInputPixelBufferAdaptor を使用しても問題ありません。同じ結果が得られます。
問題を再現する完全なコード スニペットを次に示します。
ios - AVAssetWriter で使用されるサンプル バッファの期間を決定する方法
AVAssetWriter のビデオをキャプチャするために使用しているサンプル バッファーがあります。キャプチャしたビデオ (時間) の量を判断する方法を見つけようとしています。現在、次を使用して現在のバッファのタイムスタンプにアクセスできます
私はバッファの期間を決定する方法を探しています、私は試しました
何らかの理由で.002333とnanの間
objective-c - CMSampleBufferRef からの NSData またはバイト
こんにちはCMSampleBufferRef
、ネットワーク経由で を送信する必要があります。その後、クライアントCMSampleBufferRef
は Audio Queue Services 経由で を再生します。スタック オーバーフローの例をいくつか見てきましたが、ほとんどはバッファを送信するだけです。しかし、その後、いくつかの情報が失われます。私はそれが構造体[AVAssetReaderOutput copyNextSampleBuffer]
への参照を返すことを発見しましたopaqueCMSampleBuffer
。のメモリアドレスを取得する方法は知っていますopaqueCMSampleBuffer
が、アドレスの内容を配列にコピーして、ネットワーク経由で送信するにはどうすればよいですか? CMSampleBuffer
または、ネットワーク経由で送信するためのよりエレガントなアプローチはありますか。または、どうにかしてにアクセスできますopaqueCMSampleBuffer
か?
あなたの時間と助けてくれてありがとう