iPhoneからiPhoneにネットワーク動画配信するアプリを作るには

以前に組み込みLinuxからWindowsのクライアントに有線LANでRAWイメージを20fpsくらいで流す動画配信システムを作ったことはありました。今回はサーバー側がiPhoneに、ネットワークがWiFiになります。

いまは情報収集段階ですが、Blackfin Fast JPEG Encoding – Frank's Random Wanderingsを見つけました。

これは、BlackFinでMotionJPEGで画像配信を試みた方のログです。libjpegは遅い、ffmpegは見た目早いけどそれは本当のフレームレートじゃない、AnalogDevicesの中の人が最適化している、malloc周りの実装は1週間とかの連続使用だと問題だろうとか、血と汗の結晶たる経験を明々と書かれています。

自分の経験でも、組み込みLinuxでの無停止連続運転向け開発にて、malloc/freeをループ内で使うなって泣きながら言ったのを思い出します。

実際に、オープンソースだから散々使われていて実績があるだろうと思い込んで、数日程度の評価試験をしてから採用したら、実運用すると連続使用1週間過ぎたあたりで"ひっかかる"しかも再現性を取りづらいみたいな、クリティカルなところで致命傷になるトラブルに落とされて、最初からコーダ自作したほうがましだった、なんて経験があるもので、涙なくしては読めないものでした。

でも、こうしてウェブカメラとかのオープンソースプロジェクトを見ていると、ハードウェアはDSP搭載とかコーデック搭載と、かなり豪華になってきているのに、その折角のリソースを使いこなしているプロジェクトって殆どないのですね。モッタイナイと思う一方で、コーデック開発は数人で1年かかりの仕事だし、(専業じゃないエンジニアが)汎用性を持たせて設計したのだったら、そうなってしまうだろうと変に納得です。

メモ:Android G1はGPUにハードウェアJPEGエンコーダがあるみたいです。