2010-11-24 31 views
11

ビデオトラックにAVMutableCompositionがあります。ビデオトラックに静止画像を追加して、一定の時間表示させたいと思います。静止画は単なるPNGです。イメージをアセットとして読み込むことはできますが、結果はアセットにトラックがないため、単にinsertTimeRange…メソッドを使用して挿入することができないためです。AVコンポーネントに静止画像を追加するにはどうすればよいですか?

静止画をコンポジションに追加する方法はありますか?答えはCore Animationのどこかにあるように見えますが、全体が私の頭より少し上にあるようですが、コードサンプルや情報ポインタがあれば感謝します。

+0

写真が入っているトラックに空の時間範囲を追加しましたか?指示を設定するときに、トラックにコンテンツがあるかのように扱いますか? – box86rowh

+0

私は最後にビデオ合成+コアアニメーションのルートを行っていない、私は静止フレームからビデオを作成し、ビデオを使用するためのクラスを作成しました。 – zoul

+0

私は自分の裁量でビデオと写真をミックスできるプロジェクトに取り組んでいます。そのため、コンパイルコードは柔軟でなければなりません。私はコードに写真の終わりを今作業しています。 – box86rowh

答えて

12

OK。 AV Foundationでメディア編集WWDCから多くのことを説明する素晴らしいビデオがあります。 AVCompositionタイムラインに画像を挿入することはできません。少なくとも、その方法はありませんでした。しかし、資産をエクスポートまたは再生する場合は、AVVideoCompositionを参照することができます。これは、クラスの完全な名前ではないかもしれません。アセット内のさまざまなビデオトラックをミックスすることができます。これは、オーディオの場合はAVAudioMixと非常によく似ています。 AVVideoCompositionにはanimationToolというプロパティがあり、コアアニメーションレイヤー(CALayer)をミックスに投げることができます。 CALayerにはcontentsプロパティが割り当てられ、CGImageRefに割り当てられます。私の場合は助けにならない、他人を助けるかもしれない。

+0

私はビデオ編集から始めます。あなたの答えに応じて、私が間違っている場合は私を修正し、ライブビデオ録画とビデオ録画の間にイメージのレイヤーを投げていると言っていますか? – Nil

+0

ビデオが記録された後。 'AVVideoComposition'はビデオ編集ツールのようなものです。もしあなたがそうするなら、プログラマブルなFinal Cut Proの一種です。コアアニメーションレイヤーと一緒にいくつかのビデオセグメントをステッチすることができます。 – zoul

+0

私は録画したビデオ全体に画像を挿入することに成功しました。しかし、これはビデオに静的オブジェクトを編集/挿入する場合は問題ありません。私が色相や彩度などで遊びたいのであればどうでしょうか?同時に、ユーザーは録音中に結果を見ることになります。 App StoreのVideo Starアプリのようなもの。私はリアルタイムのビデオ処理がそれに対する答えだと思うが、ユーザがそれを見る前にビデオのフレーム/カメラ入力を編集するのが良い考えになるかどうかはわからない。 QQかなりリソースが集中しています。このトピックで指し示すことができるリンクはどれですか? – Nil

0

また、自分の構図に静止画が必要です。私の考え方は少し違う。画像が表示されるはずの場所に黒のオン・ザ・フライ・ムービーを挿入します(そのようなビデオでも十分です)。そのような各インサートにディクショナリの参照を追加し、構成の時間範囲を真に目的の画像に結びつけます。フルタイムカスタムコンポーザーに正しい時間範囲が到着したら、目的の画像を取り出して出力ピクセルバッファにペイントし、コンポジションから入ってくる黒いフレームを無視します。それがもう一つのやり方だと思う。

関連する問題