Flash Playerの最近のブログ記事

アドビのエバンジェリストとして Flash には十年来関わってきたマイクチェンバースが、今回の Flash Player を巡る決定の背景を説明する記事を書いています。

Clarifications on Flash Player for Mobile Browsers, the Flash Platform, and the Future of Flash

今日は、記事の翻訳ではなく、この記事の内容を元に、何故デバイス向け Flash Player 中止という決定がされたのか、勝手に考察してみます。

発表内容の再確認

マイクによると、先日なされた発表は、以下のような内容だったということです。

  1. Flash プラットフォームの中でも以下の領域に注力する
    • モバイル環境向けの AIR ベースのアプリケーション
    • デスクトップブラウザ内の Flash Player 上のリッチコンテンツ(特にゲームとビデオ)
  2. HTML5 関連のツール、ソリューション、ブラウザへの投資を増やす(お金も人も)
  3. モバイルブラウザ向けの Flash Player の積極的な開発を行わない

 

今後デバイス環境向けに Flash Player の新規開発は行わないという発表がありました。
Flash to Focus on PC Browsing and Mobile Apps; Adobe to More Aggressively Contribute to HTML5

要約すると、

  • PC 環境に対しては従来通り Flash Player の開発を継続する
  • デバイス環境に対しては AIR のみ開発を継続する
  • Flash Player が新しいデバイス用の OS に対応するのは Flash Player 11.1 が最後。
    ただし、既存の環境に対するサポートは継続

という内容で、それに伴い、HTML5 への投資を一層強化するとのことです。

Adobe MAX 20111 から Falsh 関連情報をまとめるシリーズの最終回です。 (前回:機能編 その 2前々回:機能編 その 1前々々回:言語編

今回は、開発作業の効率化関連で提供が予定されているものを紹介します。例によって、以下の項目が 2012 年中に公開されるかどうかは保証の限りではありません。また、永遠に出てこないかもしれません。その点ご了解の上お読み下さい。

Telemetry

パフォーマンスチューニングの際に、「いま、何が原因でフレームレートが落ちたんだろう?」 って苦労している人に朗報です。 (たぶん)

Flash Player に新しく搭載される Telemetry は、コンテンツ再生中の詳細な状況を Flash Player が報告してくれる機能です。フーレムごと、Flash Player の具体的なパフォーマンス情報が通知されるという話なので、今までブラックボックスだった Flash Player 内部の動きも、少し見通しが良くなりそうです。

Adobe MAX 20111 から Falsh 関連情報をまとめるシリーズの 3 回目です。 (前回:機能編 その 1前々回:言語編

今回は、新しく追加が検討されている機能の紹介の続きです。毎度ながら、以下の項目が 2012 年中に公開されるかどうかは保証の限りではありません。また、永遠に出てこないかもしれません。その点ご了解の上お読み下さい。

BitmapData の新機能

デバイスが普及したことなどにより、Flash 制作でもビットマップを利用する機会が増えてきたようです。ということで Flash Professional CS 5.5 では、シンボルをビットマップとして書き出すオプションなどが追加されたりしました。

さらに、Flash Player 11 から Stage3D が使えるようになったことで、今後はぐっとビットマップを操うケースが増えそうです。そうすると、効率的にビットマップを扱えること、高速にビットマップ操作のできることが、より重要になってきます。

前回の記事 "言語編" の続きです。

前回は開発言語に関連する話題が中心でしたが、今回は新しく追加が検討されている機能を中心に扱います。

例によって、以下の項目が 2012 年中に公開されるかどうかは保証の限りではありません。また、永遠に出てこないかもしれません。その点ご了解の上お読み下さい。

Flash Player の並列処理

Flash Player では、スクリプトの実行も描画処理も、みんなおんなじ 1 つのスレッド上で順番に実行するのが基本的なモデルです。そのため、スクリプトの実行に時間がかかると、画面の更新が遅れたり、場合によっては画面がしばらく固まった状態になることもあります。

この問題を解決するため、時間のかかる処理はメインスレッド外で並列処理できるように Flash Player の改良が行われてきました。例えば I/O 関連では、既に、非同期の読み込みや書き出しに対応した API が提供されています。

最新の Flash Player 11 では、画像のデコード処理も非同期で行えるようになりました。従来は、大きな画像をステージに読み込むタイミングで一瞬アニメーションが止まる、となっていた場面でも、この変更によりスムースに再生できるようになるでしょう。

今年の MAX では Flash ランタイムの新機能、Stage3D が大きく扱われていました。従来の千倍のポリゴン描写ができるということで、新しい可能性が開けそうです。

でも、Stage3D により強化されるのは描画性能だけです。かつ、新しい書き方を覚えないとメリットを享受することができませんし、Flash なのにビットマップに縛られるのも窮屈です。

「Stage3D に不満な訳ではないけれど、これだけでは... 」 と思った人のために、MAX から Flash の今後についての情報です。

以下、ご紹介する項目は 2012 年公開を目標にしているものが殆どのようです。もちろん遅れることもあるでしょうし、機能が削られることもあると思います。ですが、もし、本当に以下の機能を揃えられのであれば、来年はずいぶんと楽しい年になりそうです。 

先週行われた Flash Camp Brazil で、Flash ランタイムの方向性についていくつか情報が公開されました。そのときの資料はこちらからダウンロードできます。

まず、大きなニュースはこれです。

Flash ランタイムの公開時期

今後は Flash ランタイムの公開が定期的に行われるようになります。更新間隔は、3 ヶ月で、大きな機能追加が行われるバージョンは 1 回おきになります。

実は、Flash Player 10.2 (冬バージョン) から既にこのサイクルは始まっていて、なので、早くも Flash Player 10.3 (春バージョン) のベータも公開されている、という訳です。この流れだと、夏バージョンは大きな機能追加があるバージョンということになります。

Flash ランタイムの新しい機能

機能強化の方向性については、以下のようなトピックが話されました。

Adobe Labs に Pixel Bender 3D のプレリリースが公開されました。(Pixel Bender 3D@Labs

Pixel Bender 3D は Pixel Bender に 3D 描画用の機能を持たせたバージョンです。先日公開された Flash Player 11 インキュベーターリリースの 3D API "Molehill" を利用するプログラムを記述できます。

ダウンロードはこちらです。(Pixel Bender 3D@Labs Downloads

プレリリース版がサポートする環境は、以下の通りです.

  • Windows: Windows XP SP2, Windows Vista, Windows 7
    (DirectX 9 に対応したカードが必要)
  • Mac OS: OS X 10.6

Flash Player の 3D API "Molehill" を使った 3D 描画をするには、頂点及びフラグメントシェーダ作成してそれを Molehill に渡します。このとき、シェーダを記述するのに使われるのは AGAL と呼ばれるアセンブラ言語です。

これに対して、Pixel Bender 3D を使えば、より "高級" な言語を使って Molehill 用のシェーダを開発できるようになります。

Pixel Bender 3D を記述する文法は、従来の Pixel Bender と同じです。Pixel Bender 3D で記述したプログラムは、コマンドを使って Molehill API で読み込める形に変換します。必要なコマンドはダウンロードファイルに含まれています。

具体的な開発方法や API は、ダウンロードファイルの docs ディレクトリ下に含まれています(英語ですが)。加えて、サンプルコードも提供されています。

 

先週の Adobe MAX 2010 で発表された Flash Player の 3D API (コード名 "Molehill") の情報が Adobe Labs に公開されています。 (3D APIs for Adobe Flash Player and Adobe AIR@Labs

Molehill は GPU を活用した本格的な 3D 描画を実現する API です。HD の解像度に秒 60 コマで数十万ポリゴンを描写することが可能になるそうです。

Molehill は、パフォーマンスを重視して、ごく低レベルの API (ほぼアセンブラ)となっています。一般の開発者に対する使いやすさはあまり考慮されていません。通常は、Alternativa3D や Away3D といったフレームワークを経由して利用することになるでしょう。Adobe からは、PixelBender の 3D 対応版が提供される予定です。

Molehill の API によりアクセスできるようになる機能としては、Z バッファ、ステンシルバッファ、カラーバッファ、フラグメントシェーダ、頂点シェーダ、キューブテクスチャなどがあります。前提となる環境は、Windows では DirectX 9、Mac と Linux では OpenGL 1.3 です。モバイル環境では OpenGL ES 2.0 が前提です。

サポートされない GPU 環境では、ソフトウェアによる描画機能にフォールバックします。その際に使われるのは、TransGaming の SwiftShader です。

Molihill のパブリックベータは、2011 年の前半を予定しているとのことで、正式に Molehill がFlash Player や AIR 上で利用できるようになるのは、少し先のことになりそうです。ベータ期間中は、Flash Builder と Flex SDK が 3D の開発に対応する予定、とのことです。

既存の 3D API について

Adobe Labs に 新しい Flash Player (コード名 "Square" ) が公開されました。 (Square@Labs

Flash Player "Square" の主な新機能は以下の 2 点です。

  • 64 bit サポート (Windows, Mac OS, Linux)
  • MS IE9 Beta の新しい GPU 描画機能への対応

Linux 用には以前から 64 bit Flash Player 10 のアルファ版が公開されていましたが、これで Linux 環境でも、最新版 Flash Player の正式な公開がようやく実現しそうです。

Square のダウンロードはこちらから。 (Download/Square preview release

今回から、32 bit 版、64 bit 版が用意されています。インストール前に、現在インストールされている Flash Player を全て削除する必要がありますので、上記ダウンロードページからアンインストーラーをダウンロードしてお使いください。Linux の場合は、libflashplayer.so を削除すれば OK です。

一旦 Square をインストールした後に Flash Player 10.1 に戻す場合も、そのまま上書きするのではなく、Square を削除してからインストールを行う必要があります。

プレビュー版はおおよそ安定した動作を見せているそうですが、まだ十分な動作確認をした訳ではないとのことなので、テスト用の環境以外にインストールする場合は注意してご利用ください。

さて、本日 MS から IE9 ベータに関する発表がありましたが、その中でも触れられていた新しい GPU サポートに Square は対応します。Adobe 社内のテストでは、旧バージョンの IE に比べ 35% 以上高速化された例もあるということで、特に、ビットマップを多用するコンテンツが高速化される傾向があるそうです。

また、HTML と Flash コンテンツの合成が GPU で行われるようになるため、wmode="transparent" を指定した時の動作が以前よりも効率よくなる、という利点もあるようです。

詳細はリリースノート(英語)をご覧ください。 (Flash Player "Square" release notes: PDF 21.4 KB)

バグや何か気になる点を見つけた場合は、こちらのサイトに登録をして下さい。 (Adobe Bug and Issue Management System) 日本語でも (たぶん) 大丈夫です。

 

今週の Google I/O で Flash 関連の発表がいくつか行われました。以下、簡単なまとめです。

Android 向け Flash Player 10.1 パブリックベータ

Android 2.2 公開後に、Android マーケットから Flash Player 10.1 のベータ版がダウンロード可能になります。ブラウザ内で Web サイトを閲覧する際、デスクトップと同様に Flash コンテンツを表示可能です。既に発表されていた通り、Flash Player が対応するのは Android 2.2 以降の OS です。

環境をお持ちの方は、動作確認はもちろんパフォーマンスやバッテリーの消費具合なども確認してみてください。過去のブログに書いたように、デバイス向け Flash Player にはパフォーマンス向上のため、デスクトップ版には無い機能がいくつも実装されています。

Android 向け AIR プレリリースプログラム

AIR for Android の開発者向けプレリリースプログラムが始まりました。(Adobe AIR for Android@Labs) このプログラムに参加すると誰でもベータ版の AIR SDK を入手することができます。

ただし、このプログラム内で入手できる情報を一般に公開することはできません。誰でも参加はできますが、プライベートなプログラムのため、情報共有は参加者間のみに限定されます。この点 Flash Player パブリックベータとは異なりますのでご注意ください。また、このプログラムは英語のみでの提供になります。

プレリリースプログラムへの参加はこちらからどうぞ。(Adobe AIR - Android Developer Prerelease

プリリリースプログラムでは、Flash Professional CS5 から直接 Android 用にパブリッシュする環境を追加する機能拡張も提供されます。

VP8 のサポート

Google I/O で WevM プロジェクトの開始と VP8 ビデオコーデックのオープンソース化についての発表がありました。これに対し、同じく Google I/O のキーノートで、将来の Flash Player での VP8 対応について Kevin Lynch からポジティブな発言がされています。

Vorbis や Matroska については特に言及されていませんが、サウンドもライセンスフリーに向かうのでしょうか?あと、個人的には、VP8 ベースのエンコーダーが Flash Player に載ったりすると嬉しいのですが。(比較的軽いという噂なので)

Google TV の Flash Player 10.1 対応

Google I/O では Android ベースの家電である Google TV が発表されましたが、Google TV でも Flash Player がサポートされます。Google TV には Chrome がブラウザとしてインストールされており、Chrome には Flash Player が含まれることになっているため、Google TV では Flash Player が利用できるということのようです。これにより Google TV では殆ど全ての Web コンテンツが再生できることになります。 (Chrome に Flash Player を統合したのはむしろこっちのためではないかとちょっと勘ぐってしまったり)

下は、実際のデモで Flash Player 10.1 が Google TV 上で実行されている場面です。


ともあれ、Flash Player 10.1 から H.264 ビデオの再生にハードウェアの機能を利用できるようになったことで、映像を扱う家電やデバイスで採用しやすくなったことは確かのようです。Flash ユーザーにとってはより活躍できる場が増えそうですね。

 

ちょっと遅くなりましたが、新しいMac 用の Flash Player のプレビュー版が Adobe Labs に公開されています。(Flash Player "Gala" Preview Release@Labs

Flash Player 10.1 から Windows とデバイス上ではハードウェアを用いたビデオ再生機能が追加されますが、Gala はこの機能を Mac 上でも実現するものです。Apple から今年 3 月頃に公開された、H.264 ビデオデコード用 API (Technical Note TN2267 Video Decode Acceleration Framework Reference) に対応することでハードウェアを利用した HD の H.254 ビデオ再生を実現しています。H.264 のデコードは CPU リソースを消費しがちなため、Mac でもバッテリーの持ちが良くなることが期待されます。

Mac 上でのハードウェアデコード機能はまだあまりテストされていない状態ということもあり、一般的に利用できるようになるのはちょっと先になりそうです。おそらく Flash Player 10.1 公開後のアップデート版で追加されるものと思われます。

Apple の新しい API が利用できる環境は、Mac OS X 10.6.3 がインストールされ、NVIDIA GeForce 9400M, GeForce 320M または GeForce GT 330M の装備されたモデルに限定されます。ということで、Gala がサポートされるモデルは以下に限定されます。

  • 2009 年 1 月 21 日以降に出荷された MacBook
  • 2009 年 3 月 3 日以降に出荷された Mac Mini
  • 2008 年 10 月 14 日以降に出荷された MacBook Pro
  • 2009 年最初の 4 半期以降に出荷された iMac

Mac Pro は対象外です。

Gala のダウンロードはこちらから。(Adobe Labs Downloads/Flash Player) 必ず今インストールされているバージョンを Uninstaller を使って削除してからインストールするようにとのことです。

記事の元ネタとなっている Optimizing Performance for the Flash Platform が更新されました。前のバージョンより 15 ページほど増えています。とりあえず、CPU 編の 「Timer と ENTER_FRAME イベント」 を更新しておきましたのでよろしければご覧ください。その他には主に AIR 関連のトピックが追加されています。

では、Optimizing Performance for the Flash Platform から最後の Tips です。

まず、Flash Player 10.1 から追加された新しいネットワーク関連の機能 2 点です。

サーキュラーバッファリング (circular buffering)

  • ビデオをプログレッシブダウンロードで再生する場合、デスクトップ環境では (Flash Player 10.1 含む) ロードした FLV ファイル全体をローカルディスクにキャッシュする。Flash Player はキャッシュから再生を行う
  • デバイス上では、
    1. FLV のキャッシュに必要な領域が不足
    2. 20 MB 以上のディスク領域 (もし無ければ 4 MB 以上のメモリ) が利用できる - この値はコンパイル時に設定可能
    の条件でサーキュラーバッファリングが行わる
  • サーキュラーバッファリングでは、キャッシュファイルが一杯になると、ファイルの先頭から再利用される
  • ファイル全体がキャッシュされないと再生できないファイル (MP4 の一部のファイル等) を保存する領域が足りないと Flash Player はそのファイルをダウンロードしない

スマートシーク (smart seeking)

  • Flash Media Server 3.5.3 から Flash Player 10.1 にストリーミングを行うとスマートシークが使える
  • 従来の動作は、シークが行われると、バッファされたデータは全て捨てられる
  • スマートシークでは、シーク先がバッファされている範囲内だった場合、再利用できるデータはそのまま使われる。そのため、すぐに再生が開始され、ストリーミングに必要な帯域も削減することができる

あとは、Tips が 3 つあります。

SWF の分割

  • SWF を複数に分割することで読み込みから起動までを高速化できる
  • その際、アセットやロジックが重複してダウンロードされないように注意する
  • RSL (Runtime Shared Library) を使って共通部分をダウンロードし、それを複数の SWF から getDefinition() メソッドを使って利用することが可能 - クラス定義、フォント、ビットマップ、サウンドなどが RSL 化できる

入出力エラー

  • ネットワーク接続が不安定な場合に備えて IOErrorEvent.IO_ERROR イベントのリスナーを定義することが望ましい
  • その際、エラーの発生をユーザーに知らせ、リトライができるようにすることを推奨

Flash リモーティング

  • XML を使った通信はデータ量が多くなり、処理時間もかかるため、少量のデータを送受信するのに適している
  • 大量のデータを送受信する場合は、AMF の使用をするべき
  • AMF を使用する場合、サーバ側には ZendAMF, FluorineFx, WebORB, BlazeDS などのモジュールが必要
  • Flex SDK を使うと、AMF が簡単に利用できる (Flash Professional でも Flex フレームワークの SWC を利用可能)

今回は Optimizing Performance for the Flash Platform から、描画パフォーマンスに関連する Tips です。

StageQuality

  • デバイスは画面サイズが小さいため、イメージの品質の差がデスクトップ環境に比べて分かりにくい
  • デバイスの画面は解像度が高いため、アンチエイリアス無しでも画像の質はあまり低下しない
  • そのため、デバイスでは通常 StageQuality は MEDIUM で十分
    StageQuality.LOW: アンチエイリアスは一切行われない、もっとも高速
    StageQuality.MEDIUM: 一部アンチエイリアスが行われるがビットマップは対象外
    StageQuality.HIGH: アニメーションされるビットマップのみアンチエイリアスされない
    StageQuality.BEST: すべてのビットマップがアンチエイリアスされる、もっとも低速
  • テキストのアンチエイリアスを "読みやすさ優先" にすると、StageQuality の値に係わらず、常にテキストはアンチエイリアス処理される

アルファブレンド

  • アルファ属性を設定した場合、アルファブレンドを必要とするエフェクトの使用は避ける
  • アルファ属性の使用も必要なときのみにするべき

ビットマップキャッシュ

  • ビットマップキャッシュはベクター画像を内部的にビットマップデータに変換してから描画する機能、いったん作成されたビットマップはメモリ上にキャッシュされ再利用される
  • ビットマップキャッシュ機能を利用するには、cashAsBitmap 属性に true を設定する
  • 複雑なベクター図形やテキストの描画に効果がある
  • 図形が変化するごとにビットマップを生成する、そのため頻繁に変更される図形は、ビットマップキャッシュするとかえって遅くなる
  • ビットマップを保持するため、メモリをたくさん必要とする
  • 図形の位置が変化してもキャッシュされたビットマップは再利用されるが、回転したり大きさを変えるとビットマップは再作成される
  • アルファの値が変わった場合もビットマップは再作成される
  • AIR と Packager for iPhone では、回転や大きさの変更でもキャッシュされたビットマップが使えるよう cashAsBitmapMatrix 属性が提供されている
  • cashAsBitmap = true のとき、opaqueBackground 属性を設定すると、さらに処理を高速化できる
  • cashAsBitmap は個々のオブジェクトに設定した方が、親オブジェクトに設定するよりも、使用するメモリ量を削減できるケースが多い (画面上で閉める領域の大きさに比例する)
  • フィルターは自動的に cashAsBitmap = true を設定する。これによりパフォーマンスに影響が出る

GPU

こちらの記事をご参照ください Flash Player 10.1 のハードウェアを利用した描画機能 (グラフィックス編)

すでにあちこちで書かれている話ですが、いちおうメモということで。

Mozilla や Google を中心とするグループが、ブラウザーのプラグインインターフェースとして広く採用されている NPAPI を拡張しようという議論を行っているそうです。

現在議論されている仕様がこちらの wiki にあります。

PlatformIndependentNPAPI

これによると、現在の NPAPI の持つ限界として以下のものが挙げられています。

  • ブラウザーとは別プロセスでのプラグイン実行など、新しい機能への対応が必要
  • 多くのプラグインが NPAPI 以外にも OS やブラウザー固有の API を利用せざるを得ない状況になっている (特に画面描画系)
  • プラグインと HTML のレイヤーを正確に合成する事が困難で、OS やブラウザごとに異なる表示がされる原因となっている

これらの問題に対応するため、次世代の NPAPI では以下の 4 点の変更が検討されているようです。

  1. ブラウザーと別のプロセスでプラグインを実行するための明確なセマンティクスの定義を追加
  2. プラグインの描画とブラウザーの画面合成プロセスを統合
  3. OS とブラウザーから独立した、2D および 基本的な 3D 描画に必要な API やイベントの定義を追加
  4. プラグインを読み込む事無しに利用可能なプラグインを判定する機能

新しい NPAPI のために Pepper と呼ばれる新しいプラットフォームが定義され、OS やブラウザー非依存の環境を実現しようとしているとのことです。

この件に関して、Flash Player チームのブログ (Improved Flash Player Support in Chrome) では、以下のようなコメントが寄せられています。

  • 新しい API は OS やブラウザー中立のため、プラットフォーム間での、動きやパフォーマンスに関する一貫性の無さは最小化されるだろう
  • 新しい API はプラグインをより柔軟にかつ緊密にブラウザーと統合できるように設計されている
  • 新しい API はパフォーマンスや安定性も改善するだろう、なぜならブラウザーはより多くの情報を直接共有できるようになるからだ
  • 新しい API はブラウザとプラグインのセキュリティモデルの統合を容易にすることで、より安全な閲覧環境実現を可能にする

その他にも、パスワード管理や SEO 対策などにも利用できそうですし、HTML レイヤーを Flash レイヤーの上に描画することができるようになるかもしれません。(ならないかもしれませんが)

デバイス向けのコンテンツを開発するときは、少なくとも当面の間はデスクトップ向けのコンテンツよりも軽くする努力が必要になりそうです。その際、例えば:

  • フレームレートを出来るだけ遅くする
  • タイマーの多重利用を避ける
  • コールバックの処理は軽く
  • 可能なものは MovieClip ではなく Graphics にする

などは分かりやすい最適化かもしれませんが、

  • ベクター描画よりもビットマップ

は、今までの感覚とは違うところかもしれません。

(将来の Flash Player では新しい最適化機能 & API が提供されて、ベクターでも大丈夫ってことになるかもしれませんけれど)

DisplayObject.cacheAsBitmap を使った最適化

cacheAsBitmap に true を設定すると実行時に DisplayObject をビットマップ化することが出来ます。複雑なベクターデータの描画を纏められるため、複雑な図形ほど描画パフォーマンスを向上させることが出来ます。

デバイス上ではこれによる高速化は特に効いてくるところなのですが、

  • もし DisplayObject がそもそも変化しないものであれば、ビットマップデータを使用したほうがより効果的
  • 頻繁に変化する DisplayObject に対して cacheAsBitmap = true をセットすると、ビットマップ化のオーバーヘッドにより逆効果になることも

という点もあります。ご参考まで。

ビットマップの使用とミップマッピング

改めて書くほどのことでもないですけれど、ビットマップを使うときは、予め小さく軽くしたものを使用して、出来るだけ実行時に縮小するといったことの無いようにします。

もし、実行時にビットマップを縮小する必要がある場合は、可能であればビットマップの大きさをミットマッピングが出来る大きさにすることが望ましいとされています。ミットマッピングは Flash Player 9 から追加されている機能で、ビットマップを描画する際の品質とパフォーマンスを向上するものです。品質に関してはこちらのデモが分かりやすいかもです。

Flash Player に搭載されているミップマッピングは box filtering と言われる一番単純なものです。PNG, JPEG 等の静的なビットマップにのみ適用され、実行時に cacheAsBitmap の指定により作られるビットマップには適用されません。詳しくは ActionScript のヘルプをご覧ください。(Adobe ActionScript 3.0 * ミップマッピングの利用

Mip マップを有効に活用するには、画像の幅と高さを 2 で何回も割れる数値にします。例えば、512 × 256 は非常にミップマッピング向きですが、510 × 256 はそうでもありません (一度しか割れないので)。

デバイスは機種により PPI が大きく異なります。例えば Experia X10 のインチあたりのピクセル数は iPhone 3GS のほぼ倍、そのため同じ画像でも Experia X10 では iPhone 3GS の半分程度の大きさで表示されることになります。

デバイス向けコンテンツでは、同じ画像を縮小率を変えながら使いまわすケースも多くなるかもしれません。心に留めておくと少しは役に立つことがあるかもです。

バルセロナで開催中の Mobile World Congress で Adobe からデバイス向け Flash Player 10.1 及び AIR に関する公式なアナウンスがありました。(Adobe Unveils AIR on Mobile Devices; Readies Flash Player 10.1 for Launch

Flash Player 10.1 と AIR 2.0 はデスクトップだけでなくデバイス上でも一貫した体験を提供するプラットフォームとして開発されています。Flash CS5 と Flash Player 10.1 / AIR が揃うと携帯やデバイス向けコンテンツ制作もずいぶん変わりそうですね。

デバイス向けは、まずは Android 用 からリリースされるようで、2010 年の後半までには Flash Player, AIR 共に正式版を公開予定との事です。とりあえずは、ベータ版を使った Android 上の AIR アプリデモがこちらのページからご覧になれます。(Flash Player 10.1 and AIR 2 mobile preview videos) 最初の 3 つくらいが Android です。iPhone アプリのビデオも載っています。

ちなみに iPhone 用アプリは Adobe Labs に公開されている Packager for iPhone を使ってiPhone 向けアプリとしてパッケージングします。このページ (Preview of AIR on Android) の下のほうにも新しい iPhone アプリがいくつかリストアップされています。

Packager for iPhone の方が Android 用 Flash Player より先に出るようなので、まずは iPhone アプリで新しい Flash Player の API を試してみるのがよさそうです。

Adobe のセキュリティチームより、

  • 今出荷中の Snow Loepard には旧バージョンの Flash Player が含まれている
  • そのため該当する環境ではセキュリティフィックスの適用された最新のバージョンである 10.0.32.18 へアップデートを推奨する

という記事がポストされました。(Flash Player update and Snow Leopard

最新の Flash Player のダウンロードはこちらです。(http://www.adobe.com/go/getflashplayer_jp

RTMP のスペックが公開されました。Adobe サイトからダウンロードできます。(Real-Time Messaging Protocol specification v1.0@Adobe developer connection) 公開された仕様は誰でも無償で (ライセンスに記述された範囲で) 利用可能です。

公開された仕様は、TCP 上で映像・音声・データを送信するためのプロトコルです。ハンドシェイクの手順やストリーム上を送信されるデータの作り方、コマンドメッセージのフォーマット等が記述されています。

セキュリティ関連の仕様 (RTMPE や SWF verification) は含まれていません。また、UDP ベースの RTMFP も公開された仕様には含まれていません。

今回の発表にあわせて、RTMP を使って FMS にデータをパブリッシュするアプリケーションを実装したい人のために FMS Connector for C++ SDK が提供されるようです。

RTMP のプロトコル仕様が公開される旨が発表されました。RTMP は Flash Player へのビデオストリーミングやリアルタイムデータプッシュを実現するのに使われているプロトコルです。Flash 関連では SWF, FLV/F4V, AMF に続く仕様公開になります。

RTMP の仕様は 2009 年の前半に公開される予定で、公開時には Adobe Develolper Connection (http://www.adobe.com/devnet/rtmp - まだありません) からダウンロードできるようになるようです。今のところオープンソースの実装の提供は予定されていないとのこと。

仕様公開後は、ほぼ自由に独自の実装を行うことができるようになりますが、コンテンツの不正配信やストリーミングのリッピング等を目的とした利用は制限されます。この辺りについては公開時のライセンス条項を詳しくご参照ください。

RTMP 上で暗号化通信を行う RTMPE や P2P を実現する RTMFP は今回公開される仕様には含まれません。

2012年1月

Sun Mon Tue Wed Thu Fri Sat
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 31        
レンタルサーバー
Powered by Movable Type 4.261