スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 内部構造を変更中 | トップページ | 環境は整いつつある »

有効期間の指定は可能に

今は、AmuseGraphics Ver1.4.1の開発フェーズで、macOS版AGMPlayerに引き続き、macOS版AG-ムービーカッターの変更作業中なのだが、今日も、今回の目玉である所のトランジション効果の追加用に内部構造の変更作業を続けていた。

実現しようとしているトランジション効果というのは、連続する二つの動画ファイルの最後と最初を指定時間分だけ重なり合わせ、例えば、それぞれの動画映像に、フェードアウト/イン効果を適用しつつ、合成する様な効果になる。

多分、普通の動画編集ソフトでは、読み込まれる素材動画はレイヤー毎に独立させていて、編集結果を表示/出力する場合には、単純に、それらを合成した映像を生成している感じになる筈だ。

これに対して、AG-ムービーカッターでは、最近のバージョンで映像の合成も可能にはしたのだが、元々、レイヤーの概念は無かったので、ベースとする動画ファイルは、常に一つだけ、という感じの内部構造になっている。

なので、二つの動画ファイルを重ね合わせる必要があるトランジション効果を実現しようとすると、タイムラインに動画ファイルを縦に並べていく様な、一般的な動画編集ソフトと似た様な内部構造にするのが楽なのかもしれないのだが、そもそも、そんな形態の動画編集ソフトは巷に溢れているので、作者的にはAG-ムービーカッターの様な、一見、動画プレイヤーに見える単純明快なソフトを開発した訳だ。

と、言うことで、この辺りの拘りを捨ててしまうと、AG-ムービーカッターの存在意義が無くなってしまうので、AG-ムービーカッター的には、あくまでも、タイムライン方式の動画編集ソフトとは異なるアプローチを取ろうとしている訳だ。

で、その方法としては、トランジション効果というのは、仮想的な別ファイル扱いにする予定だ。

例えば、1分の動画が2本あり、その切り替えタイミングで、5秒間のフェードアウト/イン効果を入れようとする場合、1本目の動画の最後の5秒間の映像はフェードアウトさせ、2本目の動画の最初の5秒間にはフェードイン効果を入れる。

で、トランジション効果としては、それぞれの動画映像を独立に表示させる場合もあるのだが、重なり合わせる場合もある。

そして、上記の様に、AG-ムービーカッターの内部構造的には、常に、ベースになる動画ファイルは一つだけなので、二つの動画を重なり合わせる処理を実装するのは大変になる訳だ。

もっとも、現行版にも、動画映像の合成機能は存在するので、上記の例では、2つ目の動画ファイルの最初の5秒間を内部的に合成映像に指定し、一つ目の動画の最後の5秒間に合成する格好にしてしまう、という方法もあった。

しかし、現行版で合成可能な動画映像はAGM形式動画に限っているのだが、これは、動画を合成するにあたっては、ベース動画の再生位置に相当する合成動画のフレームを高速に取得できる様にしたかったからだ。

なので、現行版の合成処理を使う格好にすると、トランジション効果を追加できるのはAGM形式動画に限られることになる。

まあ、この点については、トランジション効果の再生/エンコードは重い、という事を許容してしまえば、別形式の動画ファイルを合成可能にする事も出来ない話ではなかったのだが、そうした場合、トランジション効果の適用状況をどうやって表示/管理するか、という問題もあった訳だ。

と、言う事なので、どの道、トランジション効果を現行の内部処理に追加するのは面倒なので、内部的には、この効果を表現するフレーム画像の生成処理は別出しする事にしたのだが、そうすると、自ずと、ユーザーに対する見せ方も、別ファイル扱いするのが解りやすいかなあ、という事になった訳だ。

具体的には、前述の例では、1つ目の動画ファイルを長さ(1分-5秒)のファイルとして見せ、2つ目の動画ファイルの長さも(1分-5秒)に見せてしまって、その間に、トランジション効果時間分の別ファイルがある様に見せようか、という感じになった。

で、上記を実現するためには、まず、読み込んだ動画ファイルに対して、有効期間を設定し、内部的には、その有効期間のみを使用する様な処理が必要になるのだが、今日の表題は、今日の時点で、この処理については、動作する様になった、という事だ。

なので、次は、2つのファイルを使ったトランジション効果用に仮想ファイルを内部的に実現する格好になるのだが、この作業は、それなりに大変になるかもしれないのだが、すぐに終わるかもしれない。

« 内部構造を変更中 | トップページ | 環境は整いつつある »

2019年9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google