問題タブ [avassetreader]
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 - iPod ライブラリの音楽でビデオを録画
マイクの代わりに iPod ライブラリからオーディオを再生しながら、AVFoundation (AVCaptureOutput + AVAssetWriter) を使用してビデオを録画しようとしています。RosyWriter のサンプル コードを使用して AudioInput を削除し、代わりに AVAssetReader を設定して非圧縮形式で曲を読み取るようにしました。
次に、オーディオ サンプルを定期的にポーリングします。しかし、それは正しく機能していません。VideoStar や Blux Movie などのアプリがそれを達成する方法について何かアドバイスはありますか?
macos - CMSampleBufferGetImageBuffer が NULL を返す理由
OSX でビデオ ファイルをフレームごとに処理するコードを作成しました。以下は、正常にビルドされ、ファイルが開かれ、ビデオ トラック (トラックのみ) が特定され、問題なく CMSampleBuffers の読み取りが開始されるコードからの抜粋です。ただし、取得した各 CMSampleBufferRef は、ピクセル バッファー フレームを抽出しようとすると NULL を返します。iOS のドキュメントには、なぜ NULL の戻り値が期待できるのか、または問題をどのように修正できるのかについては示されていません。キャプチャ ソースや CODEC に関係なく、テストしたすべてのビデオで発生します。
どんな助けでも大歓迎です。
明確にするために、すべてのエラー チェック コードを取り除きましたが、そのコードには問題が示されていませんでした。つまり、AVAssetReader が読み取られている、CMSampleBufferRef が問題ないように見えるなどです。
ios - AVAssetReader iOS を使用して h.264 フレーム データをデコードする
AVAssetReader についていくつか質問があります。
現在、IPカメラが提供するAPIを使用して、IPカメラから送信されたビューデータを読み取っています。API から、
以下は、各フレームの API から返されます
1.フレーム生データを含むバッファ
2.フレームタイプIまたはBフレーム
3.コーデック情報:H.264
4. FrameInfo オブジェクトからのその他のフレーム情報
上記の情報は、AVAssetReader を使用してデコードするのに十分ですか?
これまでのところ、ほとんどの例では URL またはファイルからビデオ ソースを取得しています。フレーム バッファから生データをデコードするサンプル コードは誰でも提供できます。
あなたの助けに感謝します
ios - iOS で AVAssetReader を使用しているときに、1 秒あたり数個のオーディオ サンプルしか受信しないのはなぜですか?
私は何かをコーディングしています:
- 内蔵カメラとマイク(AVCaptureSession)で動画+音声を記録し、
- ビデオとオーディオのサンプルバッファをリアルタイムで処理し、
- AVAssetWritter を使用して、結果をローカルの .mp4 ファイルに保存します。
- 次に(後で)AVAssetReaderを使用してファイル(ビデオ+オーディオ)を読み取り、
- サンプルバッファで他のことを行います(今のところ何もしません)。
- AVAssetWriter を使用して、結果を最終的なビデオ ファイルに書き込みます。
すべて正常に動作しますが、オーディオ形式に問題があります。
キャプチャ セッションからオーディオ サンプルをキャプチャすると、約 44 サンプル/秒をログに記録できます。これは正常な継ぎ目です。.mp4 ファイルを読むと、1 秒あたり約 3 ~ 5 のオーディオ サンプルしかログに記録されません。ただし、2 つのファイルの外観とサウンドはまったく同じです (QuickTime で)。
- キャプチャ セッションのオーディオ設定は行いませんでした (Apple が許可していないため)。
2 つのオーディオ AVAssetWriterInput の outputSettings を次のように構成しました。
/li>トラックに保存されているサンプルを受け取るために、オーディオ AVAssetReaderTrackOutput の outputSettings に nil を渡します (ドキュメントによると)。
したがって、CaptureSession から最終ファイルまでのサンプル レートは 44100Hz である必要があります。いくつかのオーディオ サンプルしか読み取っていないのはなぜですか? そして、なぜそれはとにかく働いているのですか?サンプルを操作する必要がある場合、うまく機能しないという直感があります (たとえば、タイムスタンプを更新する必要があります)。
他のいくつかの設定 (kAudioFormatMPEG4AAC など) を試しましたが、AVAssetReader は圧縮されたオーディオ形式を読み取ることができません。
ご協力いただきありがとうございます :)
ios - AVAssetReaderOutput copyNextSampleBuffer は、デバイスでオーディオ付きのビデオをエンコードするときにハングします
この質問でビデオ (オーディオ付き) をエンコードするためのソリューション、AVAssetWriter を使用したビデオ エンコーディング - CRASHES を実装した後、コードが iPhone シミュレーターで正しく動作することがわかりました。残念ながら、特定のビデオは、実際の iPhone 5 (およびその他のデバイス) で実行中にオーディオのエンコードに失敗します。
たとえば、WWDC 2011 のサンプル コード RosyWriter ( https://developer.apple.com/library/IOS/samplecode/RosyWriter/Introduction/Intro.html-[AVAssetReaderOutput copyNextSampleBuffer]
) から生成されたビデオは、関数が返されないため、完全にはエンコードされません。
ビデオ バッファは正しく取得されますが、最初のオーディオ CMSampleBufferRef をコピーしようとするとすぐに、呼び出しがハングします。ネイティブの iOS カメラ アプリで記録されたものなど、他のソースからのビデオでこれを試してみると、オーディオは正しくインポートされます。
このスレッドhttps://groups.google.com/forum/#!topic/coreaudio-api/F4cqCu99nUIは、AudioQueues で使用すると関数がハングすることを指摘copyNextSampleBuffer
し、単一のスレッドで操作を維持することを提案しています。メインスレッドの別のスレッドにすべてを保持しようとしましたが、うまくいきませんでした。
他の誰かがこれを経験し、可能な解決策を持っていましたか?
編集: RosyWriter から生成されたビデオは、ネイティブのカメラ アプリからのビデオに対してトラックが逆になっているようです。つまり、オーディオ ストリームはストリーム 0、ビデオ ストリームはストリーム 1 です。
これが AVAssetReader に違いをもたらすかどうかはわかりません。