現状、Ut Video Codec Suite は、VCM、DMO、QuickTime(Mac のみ)インターフェースに対応しています。で、以前から他の環境への移植は無いの?と聞かれることがあります。具体的には FFmpeg (libavcodec) や gstreamer ですね。

自分としては「余計な」手間をかけたくないので、最低限以下の条件を敷いています。

  • 自分の都合でリリースできること
  • API/ABI が十分に安定していること

「自分の都合でリリースできる」というのは、自分がコーデックを修正したときに、リリースする意思があるのであれば、それが即座にコーデック利用者が利用可能になる、という意味です。FFmpeg においては、コーデックを修正したとしても、それが FFmpeg としてリリースされるのは先ですし、リリースされた FFmpeg が編集ソフト等に取り込まれるのはさらに先になります。この条件は、現実的には「コーデックがプラグインインターフェースを介して使用される」ということを意味します。

「API/ABI が十分に安定していること」というのは、上で言ったプラグインインターフェースが安定している、という意味です。たとえば、VCM コーデックである Huffyuv 2.1.1 は 10 年以上前にビルドされたバイナリが「そのまま」今の OS である Windows 7 でも使えていて、VCM インターフェースの ABI はそれぐらい安定しているわけです。この条件は「他人の都合でリリースする必要がない」と表現することもできます。

gstreamer は詳細に調査したわけではないのですが、プラグインの ABI がコロコロ変わるらしい(Wikipedia-ja 情報。今どうなってるかはもちろん知らない)のであまり近づきたくありません。API が安定していたらいいかというと必ずしもそうではなくて、確かにコード修正の手間はなくて良いのですが、gstreamer 側の ABI バージョンに対応したプラグインをそれぞれリリースしなければならないので、それはそれで面倒なことになります。ABI の一致しないバージョンをインストールしたユーザーからの質問に答えなければいけないとか悪夢でしかありません。

あなたが移植を希望するその環境、条件は満たしますか?

Trackback

only 1 comment untill now

  1. [UtVideo] Linux 版?

    むかーしから Linux 版は無いのと言われることはあります。今だと FFmpeg/Libav に彼らが書いた UtVideo 互換実装があるので、追従にタイムラグが若干存在しますがそれを使えます。性能がどう…

Add your comment now