問題タブ [avcomposition]
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 - AVSynchronizedLayerがAVAssetExportSessionの出力と一致しないのはなぜですか?
問題はこれです:titleLayer(CATextLayer)を持つAVMutableVideoCompositionがあります。
AVPlayerLayerとAVSynchronizedLayerを使用して、このタイトルを含むプレビューをユーザーに表示したいと思います。私は次のようにレイヤーを設定します:
コンポジションをセットアップするとき、私はこれを行います:
1つの例外を除いて、すべてが期待どおりに実行されます。
iPhoneシミュレーターで最終結果(ビデオ+タイトル)をプレビューすると、次の出力が得られます。
AVAssetExportSessionを使用してビデオをレンダリングすると、次の出力が得られます(したがって、ビデオラベルは下部にあります)。
誰かがトリックが何であるか知っていますか?私は何が欠けている/間違っているのですか?
ありがとう!
objective-c - 簡単な AVFoundation のトラブルシューティング 状況
いくつかのビデオ編集ツールを備えたアプリがあります。写真とビデオを混在させていますが、奇妙な問題が発生しています。ビデオ、次に写真を使用してビデオ構成を配置し、次にビデオに戻ると、ビデオに戻るまで正常に再生され、その時点でフリーズします! オーディオはまだ聞こえますが、シークするとビデオの再生が再開されます。これをエラーチェックする方法がわかりません!誰にもアイデアはありますか?
ios - 一時停止時に AVComposition のトラックの時間が失われる
特定の時間に開始する一連のオーディオ トラックで構成される AVMutableComposition を作成しました。そこから、Apple の推奨に従って、AVPlayer で再生する前に AVComposition に変換しました。
この AVPlayer アイテムの再生はすべて正常に機能しますが、一時停止してから続行すると、コンポジション内のすべてのトラックが互いに約 0.2 秒遅れて表示されます (つまり、束になります)。一時停止を押して数回続けると、効果が倍増し、オーバーラップがより重要になります (基本的に、十分にヒットすると、8 つのトラックすべてが同時に再生されます)。
ありがとう
ios - AVPlayer と AVMutableComposition を使用した不整合なサウンド再生
AVCompositionを使用して、複数の楽器サンプルから曲を作成しようとしています。
で 2 つのサウンド アセットを再生すると、同時に再生されると思いますが、わずかにずれがありますkCMTimeZero
。AVMutableComposition
これは最初のプレイスルーでのみ発生するため、何らかの読み込みの遅延のように見えますが、何を試しても解消されません.
サウンド アセット トラックをプリロードし、コンポジション トラックをプリロードし、playerItem
準備が整うのを待ち、プレーヤーが再生できるようになるのを待ちます。プレーヤーをプリロールしたり、再生/一時停止したりしてみました。最初に再生するときは、常にトラック間にわずかなオフセットがあります。
ここで効果を実証するために、小さなサンプル プロジェクトを作成しました。
メインコードはこちら
最初にアプリケーションをロードして再生を押すと、サウンドがわずかにオフセットされることに注意してください。その後のサウンドの繰り返し (および同じ playerItem のリプレイ) には、この問題はありません。
最初の音を少し遅らせると問題が解決するように見えますが、これはあまり良いオプションではありません。
これを修正できるかどうか、または何か不足している場合はどうすればよいですか?
ありがとう
ios - AVPlayer を使用した複数の動画
画面の一部でビデオを再生する必要がある iPad 用の iOS アプリを開発しています。コンパイル時に指定されていない順序で次々に再生する必要があるビデオ ファイルがいくつかあります。1 つのビデオが再生されているように見える必要があります。あるビデオから次のビデオに移動するときに、2 つのビデオの最後のフレームまたは最初のフレームが表示されるときに多少の遅延が発生することは問題ありませんが、ちらつきやコンテンツのない白い画面があってはなりません。ビデオには音声が含まれていません。メモリ使用量を考慮することが重要です。ビデオの解像度は非常に高く、複数の異なるビデオ シーケンスを同時に並べて再生できます。
これを得るために、私はこれまでいくつかの解決策を試してきました。以下にそれらを示します。
1.すべてのビデオを含むAVCompositionを備えたAVPlayer
このソリューションでは、隣り合わせに配置されたすべてのビデオを含む AVComposition を使用して作成された AVPlayerItem でのみ使用する AVPlayer があります。特定のビデオに移動するとき、コンポジション内で次のビデオが始まる時間をシークします。このソリューションの問題は、プレーヤーをシークするときに、シークしているフレームの一部がすぐに表示されることです。これは受け入れられません。コンポジションの特定の時間に直接ジャンプする方法はないようです。ちょうど終了したビデオの最後のフレームの画像を作成し、シーク中にAVPLayerの前に表示し、シークが完了した後に最後に削除することで、これを解決しようとしました。AVAssetImageGeneratorを使って画像を作っているのですが、なぜか画質が動画と同じではなく、そのため、ビデオの上に画像を表示したり隠したりすると、顕著な変化があります。もう 1 つの問題は、単一の AVPlayerItem がすべてのビデオを保持するため、AVPlayer が大量のメモリを使用することです。
2. 複数の AVPlayerItem を持つ AVPlayer
このソリューションは、各ビデオに AVPlayerItem を使用し、新しいビデオに切り替えるときに AVPlayer のアイテムを置き換えます。これに伴う問題は、AVPlayer のアイテムを切り替えると、新しいアイテムをロードしている間、短時間白い画面が表示されることです。これを修正するには、ロード中に最後のフレームの前に画像を配置するソリューションを使用できますが、それでも画像とビデオの品質が異なり、注目に値するという問題があります。
3. AVPlayerItem を順番に再生する互いの上にある 2 つの AVPlayer
私が試した次の解決策は、AVPlayerItem を交互に再生する 2 つの AVPlayer を重ね合わせることでした。そのため、プレーヤーの再生が完了すると、ビデオの最後のフレームにとどまります。もう一方の AVPlayer が前面に表示され (項目が nil に設定されているため、透明になります)、次の AVPlayerItem がその AVPlayer に挿入されます。ロードされるとすぐに再生が開始され、2 つのビデオ間のスムーズなトランザクションの錯覚は損なわれません。このソリューションの問題は、メモリ使用量です。場合によっては、画面上で同時に 2 つのビデオを再生する必要があります。その結果、AVPlayerItem がロードされた 4 つの AVPlayer が同時に発生します。ビデオは非常に高解像度になる可能性があるため、これは単純にメモリが多すぎます。
全体的な問題と上記の解決策に関する考え、提案、コメント、または何かがある人はいますか。
ios - AVURLAssets を使用した AVPlayer およびプログレッシブ ビデオ ダウンロード
AVPlayerを介してビデオ ファイルの再生を提供する必要があるアプリを開発中です。ファイルはユーザーのデバイスに保存する必要がありますが、ダウンロード中に再生する必要もあります。
現時点では、ASIHTTPRequestライブラリを使用して PHP 経由でビデオ ファイルを取得し (パブリック URL 経由でメディアをリンク可能にしたくありません)、それらを非同期的にディスクに書き込むダウンロード モジュールを作成しました。
次に、 AV Foundation Programming Guideに従って AVPlayer をセットアップし、AVURLAsset を使用してファイルを取得し、アセットを使用して AVPlayerItem を作成し、アイテムを使用して AVPlayer を構築し、プレーヤーを AVPlayerLayer に設定しました。プレーヤーは、完全にダウンロードされたビデオ ファイルで正常に動作し、プログレッシブにダウンロードされたファイルもシミュレーターで完全に正常に動作します。
残念ながら、実際のデバイスでは、プレーヤーの動作が変わります。代わりに、ビデオを 1 回ロードし、ディスクから新しいパケットを取得しようとしないように見えます。その結果、プレーヤーは、アセットがロードされた時点でダウンロードの進行状況を示すビデオのポイントまでビデオとオーディオを再生します(たとえば、2MB のデータがバッファリングされてからプレーヤーが作成される場合、プレーヤーは最大 2MB 分のデータを再生できます)。ビデオのヘッダーがあるため、プレーヤーはビデオの全期間にわたって再生されていると喜んで考え続けますが、他のビデオが画面にレンダリングされることはありません。
最後の問題は、ビデオが AVComposition に挿入され、それを使用して AVPlayer が作成された場合、プログレッシブ ビデオが正常に再生されることです。これは素晴らしい解決策です (また、場合によってはアプリに必要です) が、アプリのクライアントは、ビデオが AirPlay 経由で Apple TV で再生可能であることを要求しますが、AVCompositions はこれができません。
AVURLAssets から構築された AVPlayer を使用して、プログレッシブ ダウンロード ビデオ ファイルを再生する方法があるかどうかは誰にもわかりませんか? ビデオをメモリにキャッシュしているように見えるのではなく、AVURLAsset を使用して、AVComposition で行うように、player/playerItem を強制的にディスクから読み取る方法はありますか?
ありがとう!
objective-c - AVComposition の AVPlayer 再生速度
を使用してAVPlayer
、複数のアセットをすべて に入れ、それらの再生を処理していAVMutableComposition
ます。通常の再生ではすべてが機能し[player play]
ます[player setRate:0.5]
。そのため、まだ 2 つのトラックを同時に再生していますが、1 つは半分の速度で、もう 1 つは全速です。
両方を目的の再生速度まで遅くする方法を知っている人はいますか? ありがとう
video - ios AVMutuableComposition トラック リストとデバッグ
iOS 6.1のAVPlayerItemのAVMutuableCompositionがトラックリストを正しくロードしない理由をデバッグするのを助けるために、誰かが私を正しい方向に向けることができますか?
私がやっていることは、AVMutableCompositionTrack を作成し、再生のために同じ mp4 から時間範囲を追加することです。これは他のファイルでは正しく機能しますが、720p、毎秒 30 フレームでエンコードされたファイルがいくつかあり、トラック リストが正しく作成されません。シームレスに順番に表示したい。
これが私のコードの一部です:
トラックをロード:
これらのファイルを作成するデスクトップ アプリは、ビデオ ファイルのフレーム番号と長さによって情報をエクスポートします。だから私はこれらから始めて、トラックリストに追加するために秒に変換します.
そして、実際に時間範囲を AVMutuableComposition に追加する方法は次のとおりです。
したがって、このコードはいくつかのビデオ ファイルで機能しますが、一部のビデオ ファイルでは最初のトラックだけが読み込まれ、他のトラックは読み込まれません。黒いフレームまたはビデオが停止するだけです。基本的に、トラック リストを正しく構築していません。では、ロードから戻ってくる警告コードやエラー コードをデバッグして、TimeRanges が有効かどうかなどを教えてもらうにはどうすればよいでしょうか。
読み込みプロセスを説明できるアップルのドキュメント以外に、他に良いリソースはありますか。アップルのドキュメントはまばらです。私はすでにいくつかの wwdc セッションも見てきました。どんな助けでも大歓迎です。ありがとう!
ios - iOS: AV ビデオの上に描画し、描画をビデオ ファイルに保存します。
AVFoundation クラスを使用してビデオを記録および再生する iPad アプリに取り組んでいます。基本的な録画/再生用のコードはすべて用意できたので、ユーザーがビデオに描画して注釈を付けられるようにする機能を追加したいと考えています。これはそれほど難しくないと思います。難しいのは、例を見つけることができなかった部分ですが、描画と注釈をビデオ ファイル自体に結合することです。これは AVComposition で達成される部分だと思いますが、正確な方法はわかりません。どうぞよろしくお願いいたします。
マーク