H.264SoftwereEncord + RTMFP + StageVideo


FlashPlayer11がリリースされて、wonderflなどで続々とサンプルが登場していますね。
なので、僕もそれに便乗してFlashPlayer11から搭載された新機能のテストをしてみました。
といっても、Stage3DはAGALがまだ理解できていないためサンプルをどうにか読み解くくらいが関の山なので…
今回はカメラからの映像をH.264にエンコードできる「flash.media.H264VideoStreamSetting」を使ったサンプルを作成してみました。

FP_11 H.264SoftwereEncord + StageVideo SimpleExample
画像をクリックでwonderflでのデモが開きます。
※ カメラ映像のストリーミングにRTMFPを使用しているので、複数台のPCで同時に開くか、同一マシン上だとブラウザの複数のウィンドウか複数のタブで開かないと映像が出ませんのでご注意ください。(同一マシンで開くときは音量に注意してください。音量が大きいとハウります…)

H.264のソフトウェアエンコードについては

 // H.264VideoCodec
var h264Settings:H264VideoStreamSettings = new H264VideoStreamSettings();
h264Settings.setProfileLevel(H264Profile.MAIN, H264Level.LEVEL_3);
_ns.videoStreamSettings = h264Settings;

と簡単なんですが…
カメラからの映像をH.264としてエンコードするためには、そのセッティングを規格に合わせる必要があるらしく、setProfileLeveのパラメータとカメラのパラメータがH.264のプロファイルに一致しないと映像が出ませんでした。
そういえばたしか、AfterEffectsを使ってH.264でレンダリングするときもいい加減な設定ではエラーが出ていたので、映像をH.264でエンコードするときはプロファイルをきちんと規格に合わせましょうということなんでしょうね。