Elis Colorsがフリーウェアである理由

 Elis Colorsオープンソース・ソフトウェアです。

 この記事ではElisが無料である理由を説明します。色んな人から値段について突っ込まれることが多いので、α版の前にそこらへんのポリシーについて記述しておきます。

前提

まず大前提として、Elisの開発にはお金が1円もかかっていません。
Cocoaプログラミングを扱った書籍なんて一冊も買ってませんし、ADCの有料会員になったわけでもありません。
α版を作る上で必要な知識は全てwebから得られました。今後もそうであろうと予想されるので、おそらく開発費は0円のままです。

前提その2

Elisは世界初の「Snow Leopardに最適化された動画編集ソフトウェア」です。
iMovieもFinal CutもPremiereも、Snow Leopardで動きます*1。ですが設計からビルドまで、Snow Leopardのパワーをフル活用するべく作られた動画編集ソフトウェアは世界でElisだけです。

「世界初」は、iMovieでもFinal CutでもPremiereでもありません。Elis Colorsです。

無料である理由1「お金を取ると世界で勝負できない」

上で述べた通りElisは世界初のソフトウェアです。世界で勝負したいソフトウェアです。
でも、もし仮にElisを有償にしたとすると、世界レベルで頒布するのが大変になります。
iPhoneアプリならApp Storeで販売すればいいですが、デスクトップ市場ではApp Storeは使えません。でも他の代理販売・決済サービスはマーケットの大きさに難があって、全世界にソフトウェアを頒布できません。
なのでElisは「世界で勝負するために」お金を取りません。

というか、App Storeでもたった4000万人にしかアタックできないしね。

無料である理由2「有名になりたい」

僕は有名になりたいです。僕の名前を世界に響かせたいです。
Elis Colorsにはそんな僕の願いを叶えてくれる可能性があります。
世界初と無償という2つの看板を掲げてElisをリリースすれば、世界初という看板だけでリリースするよりも大きなインパクトで世に認知されるはずです。
インパクトが強ければ強いほど僕の認知度も上がっていくはずです。
なのでElisは「僕が有名になるために」お金を取りません。

無料である理由3「サポートをする気が無い」

Elis Colorsは無保証・ノンサポートです。金出したんだからサポート云々はもう爆発しろって感じなのでElisはお金を取りません。

まとめ

Elis Colorsを使ってみんな僕を褒め称えるといいよ。
寄付とかの話も一部であったけど、そんなのどうでもいいから、僕を褒めて欲しい。認めて欲しい。

*1:未確認。

Elis進展 #10 そろそろα版

そろそろα版をリリースします。

α版リリースの意図

OSSでα版も何もなくね? って感じですが、今リリースしたい理由があります。

ふつうのMacでのパフォーマンスを知りたい

僕が使っているMacは現行のiMac(24インチ、Core2Duo 2.93GHz、GeForce GT 120)です。コンシューマ向けモデルでは上から二番目のスペックです。
このMacを使っている限りはElisが重いとは思わないんですが、性能がふつうのMacでどう感じるかはわかりません。

場合によっては今の富豪的なコード*1を書き直さないといけないので、なるべく早く他のMacでのパフォーマンスを知りたいです。

ソフトウェアをリリースするということはどういうことなのかを知りたい

僕は大きなソフトウェアをリリースした経験がありません。リリースした時に何が起こるか全くわかりません。
だから実際にリリースしてみて、どういうことが起こるかを見てみたいです。

客観的に見てElis Colorsはイケてるのかイケてないのかを知りたい

僕はイケてると思ってます。まだ機能も貧弱でバグもたくさんあるけれど、"楽しさ"なら他のどのソフトウェアにも負けません。

Leopardをサポートするのか切り捨てるのかを決めたい

"for Only Snow Leopard"っていう言葉にはインパクトがあります。でもGCDを使ったらむしろ遅くなってしまったり、QuickTime Xのデコーダが腐ってたりするので、Snow Leopard限定じゃなくてもいいかな? と最近思ってます。Elisは32bitだし。

でも実際にLeopardでぬるぬる動くのかはわからないので、α版の評判を見てどうするかを決めたいです。

まとめ

Elis Colorsのα版はSnow Leopard/Leopard両対応版で出します。

*1:探索が全て線形探索だったり、GC使ってたり、Cに展開できるところをしてなかったり、メモリを湯水のように使ってたり。

QTMovieのaddImage:forDuration: withAttributes:で使えるコーデック

QTKitを使うと簡単に動画を書き出せるよ! とQTKitのリファレンスに書いてあるけど、書き出しに使えるコーデックの記述がどこにもない。
なんでだろう? Appleプログラマに動画ソフトウェアを書かせたくないのかな? ドキュメント作らなければみんなQuickTime Proを買うと思ってるのかな? まあなんでもいいけど。

addImage:forDuration:withAttributesの概要

使い方はこんな感じ。

QTMovie* movie = [[QTMovie alloc] initToWritableFile:path error:nil];
NSDictionary* attrs = [NSDictionary dictionaryWithObjectsAndKeys:
                       imageCodec, QTAddImageCodecType, // imageCodecはNSString
                       imageQuality, QTAddImageCodecQuality, // imageQualityはNSNumber
                       nil];
[movie addImage:image forDuration:QTMakeTime(1, 30) withAttributes:attrs]; // imageはNSImage

これでmovieに1フレーム分imageが追加される。問題はattrsに何を入れるか。

QTAddImageCodecQuality

これはサンプルを読んでればすぐ見つかる。

NSNumber* imageQuality = [NSNumber numberWithLong:codecMaxQuality];

codecMaxQualityは定数でQTKitDefines.hに入ってる。他にもロスレスとかある。

QTAddImageCodecType

これが問題。本当に定数あるの? っていう感じに見つからない。
サンプルを読むと

NSString* imageCodec = @"mp4v";

とかやってて、即値とかふざけんなwwwってなる。

一応QTKitDefines.hにそれっぽい定数群はあるけど、使えるやつと使えないやつが混じってる。

片っ端から試す

混じってるんなら全部試せばいいんじゃね。以下は試した結果。

imageCodec 使えるかどうか 補足
"mp4v" YES ほどよく縮む。エンコード速度も速い。色味がシフトする。
"png " YES 少しだけ縮む。可逆。遅い。シフトなし。
"mjpa" YES かなり縮む。おそらく不可逆。速い。画質は残念。 シフトなし。
"mjpb" YES mjpaと何が違うんだ。 シフトなし。
"h263" YES すごい縮む。強制的にサイズ変更。スーパー低画質。シフトなし。
"h264" NO どういうことなの。
"avc1" NO おそらくH264コーデック。だが書き出し途中にmmap失敗してクラッシュ。さすがです。
"mjp2" YES 縮む。不可逆。速い。fpsが落ちた。シフトなし。
"yuv2" NO それっぽい名前のくせに使えない。
"raw " YES 縮まない。可逆。速い。シフトなし。
"dvpp" YES 縮む。強制的にサイズ変更。スーパー低画質。シフトなし。
"y420" YES 縮まない。可逆。速い。シフトなし。


ここまで調べて力尽きた。Elisはもう"raw "でいいや。

Elis進展 #9 キーフレームのUI

キーフレームをCore Animationで可視化しようとしたらすさまじいものができてしまった。

画像はトラックの上にキーフレームの状態を表示したところ。これを表示しながらキーフレームを追加すると、この表示全体がアニメーションします。

……言葉じゃ伝わらないよね。詳しくは動画でということで。

うごくサンプル


動いているサンプルをニコニコに上げました。コンセプトビデオみたいなノリ。
α版リリースは来週くらいにできるとうれしいなあ。

ライセンス

公開する時はzlibライセンスにします。
NYSLでも良かったんですが、sf.jpに申請するとき面倒なのでzlibです。

現時点で想定しているスペック

GeForce 9400M以上のGPUを搭載したインテルMac
たぶんOnly Snow Leopard。GCD使いたいし。

らくさんPのJavieとの違い


id:butyricacidがじつにKYなタイミングで動画を投下してたのでついでに。

  • ElisはMacネイティブ。(OS Xの機能を全て使えるが、Macでないと動かない)
  • Elisは編集ソフト。(After EffectsではなくPremiere)
  • Elisのほうがずっとかわいい。(名前から明らか)

まあコンポジットソフトと編集ソフトとを比べるのはアレなんですが、ElisはパフォーマンスでJavieに負けないようがんばります。

その他思ったこと

ジャンルは違えど競争相手が見つかってマジうれしい。