問題タブ [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 投票する
1 に答える
1056 参照

iphone - AVAssetReader によるスクラブ

ここで説明したようにシークを実装しました ( AVAssetReader Seeking )。ただし、もちろん、AVAssetReader が取り壊されて新しいものが構築されるまでの顕著な遅延があります (データの読み取りを開始すると timeRange プロパティを変更できないため)。

データを読み取ってスキップするだけで、時間を先に進むことがかなりきれいにできると想像できますが、時間を遡って探すことは常にこの問題によって制約されます...

ユーザーがオーディオトラックのスクラブを楽しめるように、これを最適化する方法はありますか?

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

objective-c - AVAssetReader から AudioQueueBuffer へ

現在、AVAssetReader からサンプルを取得して、iOS で AudioQueue を使用して再生できるかどうかを確認するための小さなテスト プロジェクトを行っています。

私はこれを読みました:(AudioQueueで未加工の非圧縮サウンドを再生します、音はありません)およびこれ:(AVAssetReaderを使用してiOSでデコードされたPCMサンプルを正しく読み取る方法-現在は正しくないデコード)、

どちらも実際に役に立ちました。読む前は、まったく音が出ませんでした。今、私は音を出していますが、オーディオは超高速で再生されています. これはオーディオ プログラミングへの私の最初の進出なので、どんな助けも大歓迎です。

このようにリーダーを初期化します。

そして、次のようにデータを取得します。

最終的に、次のように設定された Audio Queue に移動します。

したがって、キューに入れます

誰でも簡単に私がバカなところを指摘できるように、できるだけコードを含めるようにしました。そうは言っても、トラック リーダーの出力設定宣言または AudioQueue の実際の宣言 (送信するオーディオの種類をキューに記述する場所) のいずれかで問題が発生していると感じています。実際のところ、これらの数値 (パケットあたりのバイト数、パケットあたりのフレーム数、何を持っているか) を実際に生成する方法を数学的にはよく知りません。その説明は大歓迎です。事前に助けてくれてありがとう。

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

ios - AVAssetReader を使用して、bluetooth/wifi 経由でオーディオ データをストリーミングできますか?

AVAssetReader のドキュメントによると

それでも、Audio Queue サービスと連携しているを目にします。これはリアルタイムですよね? AVAssetReader を使用してデータをストリーミングし、GKSession などで送信できますか?

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

ios - AVAssetWriterダウンサンプリング/圧縮されたm4a/mp3ファイルを書き込む方法

ローカルのm4aまたはmp3ファイルを取得して、このファイルを圧縮/ダウンサンプリングしようとしています(小さいファイルを作成するため)。

元々、AVAssetExportSessionを使用してAVAssetを一時ディレクトリにエクスポートしていましたが、圧縮/ダウンサンプリングを制御できませんでした(プリセットのみを使用できます。プリセットのみを使用できます。.wavファイル形式のみが品質の低下をサポートします) 。

次に、SOに関するいくつかの例に従って、AVAssetReader/AVAssetWriterを使用してこの「エクスポート」を実行してみました。

私は自分のリーダー/ライターをそのように作成します:

そして、私は書き始めます...

書き込みが完了すると、exportURLに書き込んだと思われるデータはnullになり、ライターは正常に完了したことを報告します。何がうまくいかない可能性があるアイデアはありますか?

更新呼び出し後のライターのステータスappendSampleBuffer:はAVAssetWriterStatusFailedですが、リーダーのステータスは成功しており、ファイル全体を読み取っているようです。

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

objective-c - CIImage:imageWithCVPixelBuffer: copyNextSampleBuffer からのバッファで動作しませんか?

久しぶりの潜伏者、初めてのポスター。

ビデオをデコードし、各フレームを画像として保存しようとしています。(ビデオは、以前に録画したもので、iPhone で正常に再生されます。) 最初のステップは、正しい画像データを取得していることを確認することです。したがって、この小さなスニペットは、UIImageView で表示するだけです。

最初の 2 つの手順は正常に機能します (有効なバッファーとピクセル バッファーを取得します) が、cIImage:imageWithCVPixelBuffer:何らかの理由で機能しません (get (null))。ここに私の出力があります:

誰が私が間違っているのか分かりますか? スタック オーバーフローを検索したところ、(ライブ フィードから) これが機能する多くの例が見つかりましたが、AVAssetReader を使用してバッファを copyNextSampleBuffer から CIImage に変換する例はありません。

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

ios - AVAssetReaderで使用するピクセルフォーマットタイプ(kCVPixelBufferPixelFormatTypeKey)を選択するにはどうすればよいですか?

AVAssetWriterを使用したビデオエンコーディングAVAssetReader記載AVAssetWriterされているスタイルを使用しています-クラッシュは基本的に、フォトギャラリー/アセットライブラリから取得したビデオを読み取り、サイズを小さくするために異なるビットレートで書き込みます(最終的なネットワークアップロード用) 。

これを機能させる秘訣は、上のkCVPixelBufferPixelFormatTypeKeyキーと値を次のように指定することでした。outputSettingsAVAssetReaderTrackOutput

したがって、基本的にはキーのkCVPixelFormatType_32BGRA値を使用しました。kCVPixelBufferPixelFormatTypeKey

しかし、どうやら私たちが選択できる多くの可能なピクセルフォーマットタイプがあります。テクニカルQ&A QA1501:コアビデオ-iOS 6.0.1 iPhoneデバイスで利用可能なピクセルフォーマットに記載されているコードを実行すると、サポートされているピクセルフォーマットタイプのリストが表示されます。

kCVPixelFormatType_32BGRA(少なくとも一見)私たちのために働いたとしても、上記のリストからそれよりも良い選択があるかどうかについて興味があります。適切なピクセルフォーマットタイプを選択するにはどうすればよいですか?

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

ios - AVAssetReader クラッシュ: トラックはすべてメディア タイプ AVMediaTypeAudio を持つ必要があります。

私は AVURLAsset を読んでいて、次の呼び出しでリーダーを初期化しています

songAsset (AVURLAsset) は、MPMediaItems URLAsset プロパティで初期化されます。

これにより、特定のアセットでクラッシュが発生します。

MPMediaItem がオーディオ アセットであり、iTunes で再生されるのはなぜですか?

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

objective-c - 動画ループを再現するAVFoundation

OpenGL アプリケーションでビデオを無期限に再生する必要があります (終了時にビデオを再開する)。そのためにAVファンデーションを活用しようと思っています。AVAssetReader と AVAssetReaderTrackOutput を作成し、copyNextSampleBuffer メソッドを使用して CMSampleBufferRef を取得し、各フレームの OpenGL テクスチャを作成します。

そして、GLKViewController の -update メソッドで、次のように呼び出します。

AVAssetReader が読み取り状態になるまではすべて正常に動作しますが、読み取りが終了し、新しい呼び出し [_assetReader startReading] で AVAssetReading を再起動しようとすると、出力なしでアプリケーションがクラッシュします。私が間違っていることは何ですか?読み取りが完了したら AVAssetReading を再開するのは正しいですか?