(原因が少し分かったので、記事を書き換えました)

新サイトのためにflvプレイヤーをAS3でチマチマ進めているのですが、
2つほど改善に苦戦している問題が出てきました。

1点目

  1. 映像を途中で一時停止
  2. どっかにシーク
  3. 映像再開
の手順を踏んで再生すると、シーク前の時間の音が再生直後に一瞬入ってしまいます


2点目
再生を一度もしていない状態で、先にシークしてしまうと音が出ません。


散々苦戦して、ここでも助けを求めていたのですが。。。
どうやらこれはプレイヤー側の処理の問題ではなく、ファイル側の問題だったようです。


---------------------------------


自分がプレイヤーのテスト時に使っていたflvの元がこれ(アイマスw)なんですが、ニコニコでも上に挙げた2つのバグが次の方法で確認できます。

  1. 途中まで再生して、一時停止したら、「再生ボタン」の横の「最初に戻るボタン」をクリック。そしてまた再生。
  2. ページを最初に開いて、まだ動画部分にタイトルが書かれている状態で、下のシークバーを操作した後、再生ボタンをクリック

最初はニコニコで別の動画を見て、全くバグが起こらないので「やっぱプロの作るものは違うなあ」と感心していたのですが・・・ファイル側とは盲点でした。同じflvでもコーデックが異なる場合があるので、デコード処理の違いが出てしまったんですね。

ちなみに、動画で使用されていたコーデックはこんな感じ。

512x288 24Bit MPEG4(AVC)
MPEG4-AAC 22.05kHz 16Bit 2ch

・・・mp4ですね、これはw
自分でflvにしていて気付きませんでしたorz そういえば当時はH.264の綺麗さに感動して保存した気が...。 そして気になる音声部分はAACでした。確かにデコードは重そうですね。

拡張子をmp4に直して、WMPで見てみるとそこでも全く同じバグが。開けば勝手に再生されてしまうので2点目は無いですが、1点目は確かに確認できます。これはもうASで改善できるレベルじゃないなあと、諦めが付きましたw

とりあえずプレイヤーに問題が無かったのは良かったんですが、これはどうしようもないですね。気になるようならエンコード時に別のコーデックを使うしか無さそうです。もしくはシーク時にwinampみたいにフェード効果を付けてごまかすとか。

Home > AS3 > | Design > [AS3] flv(mp4)シーク時の2つの問題

Comments:0

Comment Form