FLV/F4Vのキューポイント

動画をそのまま再生させて終わりというのではなく、動画の最後までいったらちょっと戻してループさせるとか、映像の特定のタイミングで関数を呼び出したりするときは、

  1. FLV動画をタイムラインに貼付け、タイムライン上で所定の場所にフレームスクリプトを書いて制御する
  2. 動画にキューポイントを設定し、制御する

が思い浮かびます。
ただ、1の方法は動画がFLVならOKですが、F4Vだと駄目です。FLVに変換する必要があります。手元にあったのがF4Vだったので2をやってみようと思いました。(結局キューポイントを埋め込むのでFLV変換してもいいんですけどね。)

次に、SWF上にビデオを埋め込むには

  1. Videoクラスを作って自力でいろいろ実装していく
  2. FLVPlaybackコンポーネントを使う
    • 方法があって、(いろいろ不評ポイントはあるものの)コンポーネントを使う方が簡単なのでここも2にする。

      さて、F4VってのはCS4の時に採用した動画形式で、要はH.264なんですが、H.264と違ってキューポイントが埋め込めるのがメリット。
      キューポイントといっても

      1. ナビゲーションキューポイント
      2. イベントキューポイント
      3. ActionScriptキューポイント

      の3タイプがあり、1と2はFLV/F4Vに直接埋め込むキューポイントでAdobeMediaEncoderを使って埋め込みます。3はASやFlashIDE上であとから設定できます。

      ただ、動画再生ヘッダを所定位置に移動させるseek系の指定先は(時間を直接指定する方法もありますが、キューポイントを指定先に使う場合は)ナビゲーションキューポイントしか使えません。

      キューポイントによるナビゲーションの移動は

      FLVPlaybackインスタンス.seekToNavCuePoint("キューポイント名")

      でいけるとあるが、これが”Invalid seek”だと怒られる。ちゃんとナビゲーションキューポイントを指定しており、他につまづくような箇所はなさそうに思える。

      なんだこれと1時間ぐらい格闘したけどわからんかったので、結局seekSeconds(秒数)メソッドを使うようにした。seekSecondsメソッドはseekと違い、引数に小数点以下 3 桁までの精度 (ミリ秒精度)で設定できる。もちろん分は秒に直して指定。1分23秒04(1:23:04)なら、83.04と指定。seekSeconds直後はコンポーネントが停止するみたいなんでmyFLVblayback.play();で再開させる。

      それにしてもseekToNavCuePointが使えないのが気になる。海外でも同じInvalid seek症状な人を散見。今後deliciousして情報を追います。

      追記:

      FLVPlaybackコンポーネントを含む子swfをアンロードした時にFLVの音が残り続ける現象に遭遇。ipuhekeさんと同様の現象だと考え、activeVideoPlayerIndexを設定しようとするも、コンポーネントのプロパティパネルからは設定できないらしく、スクリプトから設定することになる。
      もはや設計を見直した方が早そうなので、FLVPlaybackコンポーネント1個用意して、このあたりのサンプルコードを参考に作り直すことにした。

      追記:

      MetadataEvent.CUE_POINTイベントを監視して、ハンドラ内でキューポイント名分岐させたいとする。
      eventObject.vpでインデックス(チャンネル番号的なもの)は取得できるが、eventObject.infoだと[Object Object]が返ってくるので Spark の Dumper を使って

      import org.libspark.utils.Dumper;
      trace(Dumper.toString(eventObject.info));

      のようにして中身を覗くと、

      $var = {
                 'type' =< actionscript,←キューのタイプ
                 'name' =< showTitle,←キュー名
                 'time' =< 3,←キュー設定した時間
             }

      が入っている。よってキューポイント名は eventObject.info.name で取得できる。

      このエントリーをはてなブックマークに追加
      はてなブックマーク - FLV/F4Vのキューポイント

Comments:0

Comment Form
Remember personal info

Return to page top