問題タブ [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.

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

iphone - iPod ライブラリの音楽でビデオを録画

マイクの代わりに iPod ライブラリからオーディオを再生しながら、AVFoundation (AVCaptureOutput + AVAssetWriter) を使用してビデオを録画しようとしています。RosyWriter のサンプル コードを使用して AudioInput を削除し、代わりに AVAssetReader を設定して非圧縮形式で曲を読み取るようにしました。

次に、オーディオ サンプルを定期的にポーリングします。しかし、それは正しく機能していません。VideoStar や Blux Movie などのアプリがそれを達成する方法について何かアドバイスはありますか?

0 投票する
3 に答える
7567 参照

macos - CMSampleBufferGetImageBuffer が NULL を返す理由

OSX でビデオ ファイルをフレームごとに処理するコードを作成しました。以下は、正常にビルドされ、ファイルが開かれ、ビデオ トラック (トラックのみ) が特定され、問題なく CMSampleBuffers の読み取りが開始されるコードからの抜粋です。ただし、取得した各 CMSampleBufferRef は、ピクセル バッファー フレームを抽出しようとすると NULL を返します。iOS のドキュメントには、なぜ NULL の戻り値が期待できるのか、または問題をどのように修正できるのかについては示されていません。キャプチャ ソースや CODEC に関係なく、テストしたすべてのビデオで発生します。

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

明確にするために、すべてのエラー チェック コードを取り除きましたが、そのコードには問題が示されていませんでした。つまり、AVAssetReader が読み取られている、CMSampleBufferRef が問題ないように見えるなどです。

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

ios - AVAssetReader iOS を使用して h.264 フレーム データをデコードする

AVAssetReader についていくつか質問があります。
現在、IPカメラが提供するAPIを使用して、IPカメラから送信されたビューデータを読み取っています。API から、

以下は、各フレームの API から返されます

1.フレーム生データを含むバッファ

2.フレームタイプIまたはBフレーム

3.コーデック情報:H.264

4. FrameInfo オブジェクトからのその他のフレーム情報

上記の情報は、AVAssetReader を使用してデコードするのに十分ですか?

これまでのところ、ほとんどの例では URL またはファイルからビデオ ソースを取得しています。フレーム バッファから生データをデコードするサンプル コードは誰でも提供できます。

あなたの助けに感謝します

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

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 は圧縮されたオーディオ形式を読み取ることができません。

ご協力いただきありがとうございます :)

0 投票する
4 に答える
3495 参照

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 に違いをもたらすかどうかはわかりません。