(原因が少し分かったので、記事を書き換えました)
新サイトのためにflvプレイヤーをAS3でチマチマ進めているのですが、
2つほど改善に苦戦している問題が出てきました。
1点目
- 映像を途中で一時停止
- どっかにシーク
- 映像再開
2点目
再生を一度もしていない状態で、先にシークしてしまうと音が出ません。
散々苦戦して、ここでも助けを求めていたのですが。。。
どうやらこれはプレイヤー側の処理の問題ではなく、ファイル側の問題だったようです。
---------------------------------
自分がプレイヤーのテスト時に使っていたflvの元がこれ(アイマスw)なんですが、ニコニコでも上に挙げた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つの問題